Altova MapForce 2025 Professional Edition

Composants à cibles multiples

Accueil Préc Haut Suivant

Un mappage peut avoir plusieurs composants de source et de cible. Lorsqu’il y a plusieurs composants de cible, vous pouvez prévisualiser uniquement une sortie de composant à la fois dans MapForce, celui que vous indiquez en cliquant sur la touche mf_ic_preview Preview. Dans d’autres environnement d’exécution (MapForce Server ou code généré), tous les composants de cible seront exécutés séquentiellement, et la sortie respective de chaque composant sera produite.

 

Par défaut, les composants de cible sont traités du haut en bas et de gauche à droite. Si nécessaire, vous pouvez influer sur cet ordre en changeant la position des composants de cible dans la fenêtre de mappage. Le point de référence est le coin gauche supérieur de chaque composant. Veuillez noter les points suivants :

 

Si deux composants ont la même position verticale, alors celui placé à l’extrême gauche prend précédence.

Si deux composants ont la même position horizontale, alors celui placé à le plus haut prend précédence.

Dans la situation improbable que les composants aient exactement la même position, une ID de composant interne unique sera utilisée automatiquement, ce qui garantit un ordre bien défini mais qui ne peut pas être changé.

 

Pour voir un exemple de son fonctionnement, ouvrir la démo de mappage suivante : <Documents>\Altova\MapForce2025\MapForceExamples\Tutorial\GroupingFunctions.mfd. Ce mappage consiste en plusieurs sources et plusieurs composants de cible ; seul un fragment est affiché ci-dessous.

mf_semantics_07

Conformément aux règles, l’ordre de traitement par défaut de ce mappage dans MapForce Server et dans le code généré va du haut en bas. Vous pouvez vérifier que cela est bien le cas en générant un code XSLT 2.0, par exemple.

 

1.Dans le menu Fichier, cliquer sur Générer du code dans | XSLT 2.0.

2.Lorsque vous êtes invité à le faire, sélectionner un répertoire de cible pour le code généré.

 

Après la génération, le répertoire de cible inclut plusieurs fichiers XSLT et un fichier DoTransform.bat. Ce dernier peut être exécuté par RaptorXML Server (nécessite une licence séparée). Le fichier DoTransform.bat traite des composants dans le même ordre qu’ils ont été définis dans le mappage, du haut en bas. Cela peut être vérifié en regardant le paramètre --output de chaque transformation.

 

RaptorXML xslt --xslt-version=2 --input="records.xml" --output="group-by.xml" --xml-validation-error-as-warning=true %* "MappingMapTogroups.xslt"
IF ERRORLEVEL 1 EXIT/B %ERRORLEVEL%
RaptorXML xslt --xslt-version=2 --input="records.xml" --output="group-adjacent.xml" --xml-validation-error-as-warning=true %* "MappingMapTogroups2.xslt"
IF ERRORLEVEL 1 EXIT/B %ERRORLEVEL%
RaptorXML xslt --xslt-version=2 --input="records.xml" --output="group-into-blocks.xml" --xml-validation-error-as-warning=true %* "MappingMapTogroups3.xslt"
IF ERRORLEVEL 1 EXIT/B %ERRORLEVEL%
RaptorXML xslt --xslt-version=2 --input="records-v2.xml" --output="group-starting-with.xml" --xml-validation-error-as-warning=true %* "MappingMapTogroups4.xslt"
IF ERRORLEVEL 1 EXIT/B %ERRORLEVEL%
RaptorXML xslt --xslt-version=2 --input="records-v3.xml" --output="group_ending_with.xml" --xml-validation-error-as-warning=true %* "MappingMapTogroups5.xslt"
IF ERRORLEVEL 1 EXIT/B %ERRORLEVEL%

 

La dernière transformation produit un fichier de sortie appelée group-ending-with.xml. Déplaçons ce composant de cible sur le mappage tout en haut :

mf_semantics_08

Si vous générez à nouveau le code XSLT 2.0, l’ordre de traitement change en conséquence :

 

RaptorXML xslt --xslt-version=2 --input="records-v3.xml" --output="group_ending_with.xml" --xml-validation-error-as-warning=true %* "MappingMapTogroups.xslt"

IF ERRORLEVEL 1 EXIT/B %ERRORLEVEL%

RaptorXML xslt --xslt-version=2 --input="records.xml" --output="group-by.xml" --xml-validation-error-as-warning=true %* "MappingMapTogroups2.xslt"

IF ERRORLEVEL 1 EXIT/B %ERRORLEVEL%

RaptorXML xslt --xslt-version=2 --input="records.xml" --output="group-adjacent.xml" --xml-validation-error-as-warning=true %* "MappingMapTogroups3.xslt"

IF ERRORLEVEL 1 EXIT/B %ERRORLEVEL%

RaptorXML xslt --xslt-version=2 --input="records.xml" --output="group-into-blocks.xml" --xml-validation-error-as-warning=true %* "MappingMapTogroups4.xslt"

IF ERRORLEVEL 1 EXIT/B %ERRORLEVEL%

RaptorXML xslt --xslt-version=2 --input="records-v2.xml" --output="group-starting-with.xml" --xml-validation-error-as-warning=true %* "MappingMapTogroups5.xslt"

IF ERRORLEVEL 1 EXIT/B %ERRORLEVEL%

 

Dans l’extrait de code ci-dessus, le premier appel produit maintenant group-ending-with.xml.

 

Vous pouvez changer l’ordre de traitement d’une manière semblable que dans d’autres langages de code et dans les fichiers d’exécution compilés de MapForceServer (.mfx).

 

Mappages enchaînés

La même séquence de traitement telle que décrite ci-dessus, est suivie pour les mappages enchaînés. Néanmoins, le groupe de mappage enchaîné est pris en tant qu’une unité. Le repositionnement du composant intermédiaire ou de cible final d’un seul mappage enchaîné n’a pas d’effet sur la séquence de traitement. Ce n’est que si plusieurs "chaînes" ou plusieurs composants de cible existent dans un mappage que la position des composants de cible finaux de chaque groupe détermine lequel est traité en premier.

 

Si deux composants finaux de cible ont la même position verticale, alors celui placé à l’extrême gauche prend précédence.

Si deux composants finaux de cible ont la même position horizontale, alors celui placé à le plus haut prend précédence.

Dans la situation improbable que les composants aient exactement la même position, une ID de composant interne unique sera utilisée automatiquement, ce qui garantit un ordre bien défini mais qui ne peut pas être changé.

© 2018-2024 Altova GmbH