Altova MapForce 2025 Enterprise Edition

Der Prioritätskontext ist eine Methode, mit der Sie festlegen können, in welcher Reihenfolge die Input-Parameter einer Funktion ausgewertet werden. Unter Umständen muss ein Prioritätskontext definiert werden, wenn in Ihrem Mapping Daten aus zwei nicht miteinander in Zusammenhang stehenden Quelldateien verbunden werden müssen.

 

Um zu verstehen, wie der Prioritätskontext funktioniert, denken Sie daran, dass bei Ausführung eines Mappings die Verbindung zu einem Input-Datenelement eine Sequenz aus mehreren Werten übertragen kann. Bei Funktionen mit zwei Input-Parametern bedeutet dies, dass zwei Schleifen erstellt werden müssen, von denen eine zuerst verarbeitet werden muss. Die zuerst verarbeitete Schleife ist die äußere Schleife. So erhält z.B. die equal-Funktion zwei Parameter: a und b. Wenn sowohl a als auch b eine Wertesequenz erhält, verarbeitet MapForce diese folgendermaßen:

 

Für jede Instanz von a

oFür jede Instanz von b

Ist a gleich b?

 

Wie Sie oben sehen, wird jedes b im Kontext eines jeden a ausgewertet. Mit Hilfe des Prioritätskontexts können Sie die Verarbeitungslogik ändern, sodass jedes a im Kontext eines jeden b ausgewertet wird, d.h. Sie können die innere Schleife mit der äußeren vertauschen, z.B:

 

Für jede Instanz von b

oFür jede Instanz von a

Ist a gleich b?

 

Betrachten wir nun ein Mapping, in dem sich der Prioritätskontext auf die Mapping-Ausgabe auswirkt. Die concat-Funktion im unten gezeigten Mapping hat zwei Input-Parameter. Jeder Input-Parameter ist eine Sequenz, die mit Hilfe der generate-sequence-Funktion generiert wurde. Die erste Sequenz ist "1,2"und die zweite Sequenz ist "3,4".

mf_semantics_03

Führen wir das Mapping zuerst aus, ohne einen Prioritätskontext zu definieren. Die concat-Funktion beginnt zuerst mit der Auswertung der obersten Sequenz, daher werden die Werte in der folgenden Reihenfolge miteinander kombiniert:

 

1 mit 3

1 mit 4

2 mit 3

2 mit 4

 

Dies wirkt sich auf die Mapping-Ausgabe folgendermaßen aus:

 

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

 

Wenn Sie mit der rechten Maustaste auf den zweiten Input-Parameter klicken und im Kontextmenü den Eintrag Prioritätskontext auswählen, wird dieser zum Prioritätskontext. Wie Sie in der Abbildung unten sehen, ist der Prioritätskontext-Input mit einem Kreis umrandet.

mf_semantics_04

Dieses Mal wird der zweite Input-Parameter zuerst ausgewertet. Die concat-Funktion verkettet nach wie vor dieselben Werte, diesmal wird jedoch die Sequenz '3,4' zuerst ausgewertet. Die Ausgabe wird folglich zu:

 

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

 

Bisher wurde nur der theoretische Hintergrund des Prioritätskontexts beschrieben. Ein praktisches Anwendungsszenario finden Sie im Beispiel: Filtern mit Prioritätskontext.

 

© 2018-2024 Altova GmbH