Altova MapForce 2027 Professional Edition

Exemple : Utiliser des noms de fichier comme paramètres de mappage

Accueil Préc Haut Suivant

Cet exemple vous guide à travers les étapes nécessaires à l'exécution d'un mappage qui prend des paramètres d'entrée lors de l'exécution. Le fichier de conception du mappage utilisé dans cet exemple est disponible à l'emplacement suivant : <Documents>\Altova\MapForce2027\MapForceExamples\FileNamesAsParameters.mfd.

 

Ce mappage lit les données d'un fichier XML source et les écrit dans un fichier XML cible. Les données sont écrites dans le fichier cible pratiquement sans modification ; seuls les attributs PrimaryKey et Name sont renseignés avec certaines valeurs constantes issues du mappage. L'objectif principal de ce mappage est de permettre à l'appelant de spécifier le nom du fichier d'entrée et celui du fichier de sortie, en tant que paramètres de mappage, lors de l'exécution du mappage.

 

Pour ce faire, le mappage comporte deux composants d'entrée : InputFileName et OutputFileName. Ces paramètres fournissent le nom du fichier d'entrée (et, respectivement, le nom du fichier de sortie) des fichiers XML source et cible. C'est pourquoi ils sont liés à l'élément File : Item <dynamic>. Vous pouvez basculer un composant dans ce mode en cliquant sur le bouton Fichier/Chaîne ( btn_file_string ), puis en sélectionnant Utiliser les noms de fichiers dynamiques fournis par le mappage.

mf_simple_input_03

FileNamesAsParameters.mfd (MapForce Enterprise Edition)

Si vous double-cliquez sur la barre de titre de l’un des composants InputFileName et OutputFileName, vous pouvez afficher ou modifier leurs propriétés. Par exemple, vous pouvez spécifier le type de données du paramètre d’entrée ou modifier le nom du paramètre d’entrée, comme décrit dans la section Paramètres des composants à entrée simple. Dans cet exemple, les paramètres d'entrée et de sortie sont configurés comme suit :

 

•Le paramètre InputFileName est de type "string" et sa valeur par défaut est fournie par une constante définie dans le même mappage. La constante est de type "string" et sa valeur est "Altova_Hierarchical.xml". Par conséquent, lors de l'exécution de ce mappage, celui-ci tentera de lire les données à partir d'un fichier nommé "Altova_Hierarchical.xml", à condition que vous ne fournissiez pas d'autre valeur en tant que paramètre.

•Le paramètre OutputFileName est de type "string" et possède également une valeur par défaut fournie par une constante définie dans le même mappage. La constante est de type "string" et sa valeur est "Altova_Hierarchical_output.xml". Par conséquent, le mappage créera un fichier de sortie XML nommé "Altova_Hierarchical_output.xml" lors de son exécution, à condition que vous ne fournissiez pas une autre valeur en tant que paramètre.

 

Les sections suivantes expliquent comment exécuter le mappage et fournir des paramètres dans les langages de transformation suivants :

 

•XSLT 2.0, avec RaptorXML Server

•Intégré (fichier d’exécution MapForce Server), avec MapForce Server

•Java

•C#

•C++

 

XSLT 2.0

Si vous générez du code en XSLT 1.0, XSLT 2.0 ou XSLT 3.0, un fichier batch DoTransform.bat est créé dans le répertoire cible choisi, en plus du fichier XSLT. Le fichier DoTransform.bat vous permet d’exécuter le mappage avec RaptorXML Server ; voir Automatisation avec RaptorXML Server.

 

Pour utiliser un fichier d’entrée (ou de sortie) différent, modifiez le fichier DoTransform.bat afin d’y inclure les paramètres requis, comme suit :

 

1.Commencez par générer le code XSLT. Par exemple, pour générer du code XSLT 2.0, sélectionnez la commande de menu Fichier | Générer le code en | XSLT 2.0.

2.Copiez le fichier Altova_Hierarchical.xml depuis <Documents>\Altova\MapForce2027\MapForceExamples\ vers le répertoire dans lequel vous avez généré le code XSLT 2.0 (dans cet exemple, c:\codegen\examples\xslt2). Comme indiqué précédemment, le mappage tentera de lire ce fichier si vous ne fournissez pas de valeur personnalisée au paramètre InputFileName.

3.Modifiez le fichier DoTransform.bat afin d’inclure le paramètre d’entrée personnalisé avant ou après %*. Notez que la valeur du paramètre est placée entre des guillemets simples. Les paramètres d’entrée disponibles sont répertoriés dans la section rem (Remarque). Supposons que vous souhaitiez générer un fichier de sortie nommé output.xml. Pour ce faire, modifiez le fichier DoTransform.bat comme suit :

@echo off

 

RaptorXML xslt --xslt-version=2
 --input="MappingMapToAltova_Hierarchical.xslt"
 --param=OutputFileName:'output.xml' %* "MappingMapToAltova_Hierarchical.xslt"

rem --param=InputFileName:

rem --param=OutputFileName:

IF ERRORLEVEL 1 EXIT/B %ERRORLEVEL%

Lorsque vous exécutez le fichier DoTransform.bat, RaptorXML Server effectue la transformation en utilisant Altova_Hierarchical.xml comme fichier d'entrée. Si vous avez suivi les étapes ci-dessus, le nom du fichier de sortie généré sera output.xml.

mf_simple_input_04

 

Fichier d’exécution MapForce Server

Pour fournir des paramètres d’entrée personnalisés à un fichier d’exécution MapForce Server :

 

1.Si ce n’est pas déjà fait, ouvrez l’exemple FileNamesAsParameters.mfd situé dans le répertoire <Documents>\Altova\MapForce2027\MapForceExamples\.

2.Dans le menu Fichier, cliquez sur Compiler sur Fichier d’exécution MapForce Server ; voir également Compiler des mappages en fichiers d’exécution MapForce Server. Lorsque vous y êtes invité, enregistrez le fichier d’exécution .mfx dans un répertoire de votre ordinateur (dans cet exemple, c:\codegen\examples\mfx).

3.Copiez le fichier Altova_Hierarchical.xml du répertoire <Documents>\Altova\MapForce2027\MapForceExamples\ vers le répertoire dans lequel vous avez enregistré le fichier .mfx.

4.Lancez MapForce Server à l'aide de la commande suivante :

MapForceServer.exe run "C:\codegen\examples\mfx\FileNamesAsParameters.mfx"
 -p=InputFileName:"C:\codegen\examples\mfx\Altova_Hierarchical.xml"
 -p=OutputFileName:"C:\codegen\examples\mfx\OutputFile.xml"

Dans la commande MapForce Server ci-dessus, -p=InputFileName et -p=OutputFileName sont les paramètres d'entrée du mappage. Vous pouvez utiliser n'importe quel nom de fichier comme valeur de -OutputFileName. Toutefois, le nom de fichier fourni dans le paramètre -InputFileName doit correspondre à un fichier physique ; dans le cas contraire, le mappage échouera.

 

Note : Si le message "MapForceServer.exe n'est pas reconnu comme une commande interne ou externe, un programme exécutable ou un fichier batch" s'affiche, placez-vous dans le répertoire où l'exécutable MapForce Server est installé. Pour éviter de modifier le chemin d'accès à chaque fois que vous exécutez un mappage, ajoutez à la variable d'environnement PATH de votre système d'exploitation le chemin d'accès au répertoire dans lequel l'exécutable de MapForce Server est installé (par exemple, C:\Program Files (x86)\Altova\MapForceServer2027\bin).

 

Avec MapForce Server, il est également possible d’exécuter un mappage en appelant l’API MapForce Server (accessible depuis des langages tels que C++, C# ou Java). Pour plus d'informations sur ce scénario, consultez la documentation de MapForce Server (https://www.altova.com/fr/documentation).

 

Java

Pour fournir un paramètre d’entrée personnalisé à une application Java .jar :

 

1.Si ce n’est pas déjà fait, ouvrez l’exemple FileNamesAsParameters.mfd situé dans le répertoire <Documents>\Altova\MapForce2027\MapForceExamples\.

2.Dans le menu Fichier, cliquez sur Générer code dans | Java.

3.Compilez le code Java en un fichier JAR exécutable. Pour un exemple illustrant comment procéder dans Eclipse, voir Exemple : Générer et exécuter du Code Java.

4.Copiez le fichier Altova_Hierarchical.xml depuis <Documents>\Altova\MapForce2027\MapForceExamples\ vers le répertoire contenant le fichier .jar. Comme indiqué précédemment, le mappage tentera de lire ce fichier si vous ne fournissez pas de valeur personnalisée au paramètre InputFileName.

5.Lancez l’application Java à l’aide de la commande suivante :

 

java -jar Mapping.jar /OutputFileName "output.xml"

 

Dans la commande ci-dessus, le paramètre d’entrée /OutputFileName indique le nom du fichier de sortie à générer.

 

Note : si vous utilisez des caractères génériques lors de la transmission de paramètres aux fichiers .jar, placez les paramètres contenant des caractères génériques entre guillemets, par exemple :

 

java -jar Mapping.jar /InputFileName "altova-*.xml"

 

C#

Pour fournir un paramètre d'entrée personnalisé à une application en ligne de commande C# générée par MapForce :

 

1.Si ce n’est pas déjà fait, ouvrez l’exemple FileNamesAsParameters.mfd situé dans le répertoire <Documents>\Altova\MapForce2027\MapForceExamples\.

2.Dans le menu Fichier, cliquez sur Générer code en | C#, puis sélectionnez un répertoire de destination (C:\codegen\examples\cs, dans cet exemple).

3.Ouvrez la solution dans Visual Studio et compilez-la (Ctrl + Maj + B).

4.Copiez le fichier Altova_Hierarchical.xml depuis <Documents>\Altova\MapForce2027\MapForceExamples\ vers le répertoire dans lequel Mapping.exe a été généré (dans cet exemple, C:\codegen\examples\cs\Mapping\bin\Debug). Comme indiqué précédemment, le mappage tentera de lire ce fichier si vous ne fournissez pas de valeur personnalisée au paramètre InputFileName.

5.Ouvrez une fenêtre d'invite de commande et accédez au répertoire dans lequel se trouve le fichier Mapping.exe.

 

cd C:\codegen\examples\cs\Mapping\bin\Debug

 

6.Lancez l'application à l'aide de la commande suivante :

 

Mapping.exe /OutputFileName output.xml

 

Dans la commande ci-dessus, le paramètre d’entrée /OutputFileName indique le nom du fichier de sortie à générer.

 

C++

Pour fournir un paramètre d'entrée personnalisé à une application en ligne de commande C++ générée par MapForce :

 

1.Si ce n’est pas déjà fait, ouvrez l’exemple FileNamesAsParameters.mfd situé dans le répertoire <Documents>\Altova\MapForce2027\MapForceExamples\.

2.Dans le menu Fichier, cliquez sur Générer code en | C++, puis sélectionnez un répertoire de destination (C:\codegen\examples\cpp, dans cet exemple).

3.Ouvrez la solution dans Visual Studio et compilez-la (Ctrl + Maj + B).

4.Copiez le fichier Altova_Hierarchical.xml depuis <Documents>\Altova\MapForce2027\MapForceExamples\ vers le répertoire dans lequel Mapping.exe a été généré (dans cet exemple, C:\codegen\examples\cpp\Mapping\Debug). Comme indiqué précédemment, le mappage tentera de lire ce fichier si vous ne fournissez pas de valeur personnalisée au paramètre InputFileName.

5.Ouvrez une fenêtre d'invite de commande et accédez au répertoire dans lequel se trouve le fichier Mapping.exe.

 

cd C:\codegen\examples\cpp\Mapping\Debug

 

6.Lancez l'application à l'aide de la commande suivante :

 

Mapping.exe /OutputFileName output.xml

 

Dans la commande ci-dessus, le paramètre d’entrée /OutputFileName indique le nom du fichier de sortie à générer.

© 2020-2026 Altova GmbH