Altova MapForce 2024 Enterprise Edition

Exemple : Utiliser les noms de fichier en tant que paramètres de mappage

Accueil Préc Haut Suivant

Cet exemple vous guide dans les étapes nécessaires pour exécuter un mappage qui prend les paramètres d'entrée lors du runtime. Le fichier de conception de mappage utilisé dans cet exemple est disponible dans le chemin suivant : <Documents>\Altova\MapForce2024\MapForceExamples\FileNamesAsParameters.mfd.

 

Ce mappage lit des données depuis un fichier XML de source et l'écrit dans un fichier XML cible. Les données sont écrites dans le fichier cible de manière presque inchangée ; seuls les attributs PrimaryKey sont Name remplis avec des valeurs constantes depuis le mappage. L'objectif principal du mappage est de permettre à l'appelant de spécifier le nom du fichier d'entrée, en tant que paramètres de mappage, au moment du runtime du mappage.

 

Pour ce faire, le mappage a deux composants d'entrée : InputFileName et OutputFileName. Ceux-ci apportent le nom d'entrée du fichier (et le nom du fichier de sortie respectivement) du fichier XML de source et de cible. Pour cette raison, ils sont connectés à l'item Fichier : <dynamic>. Vous pouvez passer un composant dans ce mode en cliquant sur la touche File/String ( btn_file_string ) , et en sélectionnant Utiliser Noms de fichier dynamique fournis par le mappage.

mf_simple_input_03

FileNamesAsParameters.mfd (MapForce Enterprise Edition)

Si vous double-cliquez sur la barre de titre du composant InputFileName ou OutputFileName, vous pouvez consulter ou éditer leurs propriétés. Par exemple, vous pouvez spécifier le type de données du paramètres d'entrée ou changer le nom de paramètre d'entrée, comme décrit dans Paramètres de composant d'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 il a une valeur par défaut fourni par une constante définie dans le même mappage. La constante est de type "string" et sa valeur est "Altova_Hierarchical.xml". Ainsi, lorsque ce mappage est exécuté, il tentera de lire des données depuis un fichier nommé "Altova_Hierarchical.xml", en partant du principe que vous ne fournissez pas d'autres valeurs en tant que paramètre.

Le paramètre OutputFileName est de type "string" et il a aussi 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". C'est pourquoi le mappage créera un fichier de sortie XML appelé "Altova_Hierarchical_output.xml" lorsqu'il est exécuté, en partant du principe que vous ne fournissez pas d'autres valeurs en tant que paramètres.

 

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

 

XSLT 2.0, utiliser RaptorXML Server

Built-in (fichier d'exécution MapForce Server), avec MapForce Server

Java

C#

C++

 

XSLT 2.0

Si vous générez du code dans XSLT 1.0, XSLT 2.0 ou XSLT 3.0, un fichier batch DoTransform.bat est généré dans le répertoire de 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, éditer le fichier DoTransform.bat pour inclure les paramètres requis, comme suit :

 

1.Tout d'abord, générer le code XSLT. Par exemple, pour générer XSLT 2.0, sélectionner la commande de menu Fichier  | Générer du Code dans | XSLT 2.0.

2.Copier le fichier Altova_Hierarchical.xml depuis <Documents>\Altova\MapForce2024\MapForceExamples\ dans le répertoire où 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 dans le paramètre InputFileName.

3.Éditer DoTransform.bat pour inclure le paramètre d'entrée personnalisé soit avant soit après %*. Veuillez noter que la valeur de paramètre est contenue entre des guillemets simples. Les paramètres d'entrée disponibles sont recensés dans la section rem (Remarque). Supposons que vous souhaitez générer un fichier de sortie appelé output.xml. Pour ce faire, changer 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 termine la transformation en utilisant Altova_Hierarchical.xml en tant que paramètres 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 vers un fichier d'exécution MapForce Server :

 

1.Si vous ne l'avez pas encore fait, ouvrir l'exemple FileNamesAsParameters.mfd depuis le répertoire <Documents>\Altova\MapForce2024\MapForceExamples\.

2.Dans le menu Fichier, cliquer sur Compiler sur le fichier d'exécution MapForce, voir aussi Compiler des Mappages dans les fichiers d'exécution MapForce Server. Sur invitation, enregistrer le fichier d'exécution .mfx dans un répertoire sur votre ordinateur (dans cet exemple, c:\codegen\examples\mfx ).

3.Copier le fichier Altova_Hierarchical.xml depuis le répertoire <Documents>\Altova\MapForce2024\MapForceExamples\ vers le répertoire dans lequel vous avez enregistré le fichier .mfx.

4.Exécuter MapForce Server avec 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 dans le mappage. Vous pouvez utiliser tout nom de fichier en tant que la valeur de -OutputFileName. Néanmoins le nom de fichier fourni dans le paramètre dans -InputFileName doit exister en tant que fichier physique ; sinon le mappage échouera.

 

Note :Si vous voyez le message "MapForceServer.exe n'est pas reconnu en tant que commande interne ou externe, programme opérable, ou le fichier batch", changer le répertoire actuel sur celui dans lequel l'exécutable de MapForce Server est installé. Pour éviter de changer de chemin à chaque fois que vous exécutez un mappage, ajouter à la variable d'environnement PATH du système d'exploitation le chemin du répertoire dans lequel l'exécutable MapForce Server est installé (par exemple, C:\Program Files (x86)\Altova\MapForceServer2024\bin).

 

Avec MapForce Server, l'exécution d'un mappage est aussi possible en appelant l'API de MapForce Server (qui est invocable depuis des langages comme C++, C#, ou Java). Pour plus d'informations concernant ce scénario, se référer à la documentation MapForce Server (https://www.altova.com/fr/documentation).

 

Java

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

 

1.Si vous ne l'avez pas encore fait, ouvrir l'exemple FileNamesAsParameters.mfd depuis le répertoire <Documents>\Altova\MapForce2024\MapForceExamples\.

2.Dans le menu Fichier, cliquer sur Générer du Code dans | Java.

3.Compiler code Java dans un fichier JAR exécutable. Pour un exemple de la manière de procéder dans Eclipse, voir Exemple : Générer et exécuter du code Java.

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

5.Exécuter l'application Java avec la commande suivante :

 

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

 

Dans la commande ci-dessus, le paramètre d'entrée /OutputFileName fournit 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 vers des fichiers .jar, il faut contenir les paramètres de 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é dans une application de ligne de commande C# générée par MapForce :

 

1.Si vous ne l'avez pas encore fait, ouvrir l'exemple FileNamesAsParameters.mfd depuis le répertoire <Documents>\Altova\MapForce2024\MapForceExamples\.

2.Dans le menu Fichier, cliquer sur Générer du Code dans | C#, et sélectionner un répertoire cible (C:\codegen\examples\cs, dans cet exemple).

3.Ouvrir la solution dans Visual Studio et la construire (Ctrl + Shift + B).

4.Copier le fichier Altova_Hierarchical.xml depuis <Documents>\Altova\MapForce2024\MapForceExamples\ dans le répertoire où 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 dans le paramètre InputFileName.

5.Ouvrir une fenêtre d'Invite de commande et passer au répertoire dans lequel se trouve Mapping.exe.

 

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

 

6.Exécuter l'application avec la commande suivante :

 

Mapping.exe /OutputFileName output.xml

 

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

 

C++

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

 

 

1.Si vous ne l'avez pas encore fait, ouvrir l'exemple FileNamesAsParameters.mfd depuis le répertoire <Documents>\Altova\MapForce2024\MapForceExamples\.

1.Dans le menu Fichier, cliquer sur Générer du Code dans | C++, et sélectionner un répertoire cible (C:\codegen\examples\cpp, dans cet exemple).

2.Ouvrir la solution dans Visual Studio et la construire (Ctrl + Shift + B).

3.Copier le fichier Altova_Hierarchical.xml depuis <Documents>\Altova\MapForce2024\MapForceExamples\ dans le répertoire où 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 dans le paramètre InputFileName.

4.Ouvrir une fenêtre d'Invite de commande et passer au répertoire dans lequel se trouve Mapping.exe.

 

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

 

5.Exécuter l'application avec la commande suivante :

 

Mapping.exe /OutputFileName output.xml

 

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

© 2018-2024 Altova GmbH