Altova MapForce 2024 Enterprise Edition

Le contexte de priorité est une méthode d'influencer l'ordre dans lequel les paramètres d'entrée d'une fonction sont évalués. La configuration d'un contexte de priorité peut être nécessaire si votre mappage rejoint des données provenant de deux sources non liées.

 

Afin de comprendre comment le contexte de priorité fonctionne, souvenez-vous que, lorsqu'un mappage est exécuté, la connexion à un item d'entrée peut porter une séquence de plusieurs valeurs. En ce qui concerne les fonctions avec deux paramètres d'entrée, cela signifie que MapForce doit créer deux boucles, dont une doit être traitée en premier. Cette boucle est la boucle "extérieure". Par exemple, la fonction equal reçoit deux paramètres : a et b. si a et b obtiennent tous deux une séquence de valeurs, alors MapForce traite comme suit :

 

Pour chaque occurrence de a

oPour chaque occurrence de b

a est-il égal à b?

 

Comme vous pouvez le voir dans l'exemple ci-dessus, chaque b est évalué dans le contexte de chaque a. Le contexte de priorité vous permet de modifier la logique de traitement de manière à ce que chaque a est évalué dans le contexte de chaque b. En d'autres termes, il vous permet d'échanger la boucle intérieure avec la boucle extérieure, par exemple :

 

Pour chaque occurrence de b

oPour chaque occurrence de a

a est-il égal à b?

 

Examinons à présent un mappage dans lequel le contexte de priorité touche la sortie du mappage. Dans le mappage ci-dessous, la fonction concat a deux paramètres d'entrée. Chaque paramètre d'entrée est une séquence qui a été générée avec l'aide de la fonction generate-sequence. La première séquence est "1,2" et la seconde séquence est "3,4".

mf_semantics_03

Tout d'abord, examinons le mappage sans déterminer de contexte de priorité. La fonction concat commence à évaluer la première séquence en premier, donc elle combine des valeurs dans l'ordre suivant :

 

1 avec 3

1 avec 4

2 avec 3

2 avec 4

 

Cela est également reflété dans le résultat de mappage :

 

<data>
  <value>13</value>
  <value>14</value>
  <value>23</value>
  <value>24</value>
</data>

 

Si vous cliquez avec la touche de droite dans le deuxième paramètre d'entrée et que vous choisissez Contexte de priorité depuis le menu contextuel, celui-ci deviendra le contexte de priorité. Comme illustré ci-dessous, l'entrée du contexte de priorité est encerclé.

mf_semantics_04

Cette fois, le deuxième paramètre d'entrée sera évalué en premier. La fonction `concat` concatènera toujours les mêmes valeurs, mais cette fois elle traitera la séquence `3,4` en premier. Par conséquent, le résultat donne :

 

<data>
  <value>13</value>
  <value>23</value>
  <value>14</value>
  <value>24</value>
</data>

 

Jusqu'à présent, vous n'avez vu que la partie théorique derrière le contexte de priorité. Pour consulter un scénario plus pratique, voir Exemple: Filtrer avec un contexte de priorité.

© 2018-2024 Altova GmbH