Altova MapForce 2027 Enterprise Edition

Der Kontext bestimmt, welche Quelldaten und Zwischenergebnisse für den aktuellen Ziel-Node und seine Nachfahren zur Verfügung stehen.

 

MapForce ermittelt den aktuellen Kontext vom Root-Ziel-Node aus. Die Mapping-Ausführung beginnt hier. Nachdem der Ziel-Node verarbeitet wurde, arbeitet sich MapForce von oben nach unten durch die Hierarchie durch und wertet jeden Node und dessen Nachfahren aus. Für jeden Ziel-Node werden die Verbindungen durch alle eventuell zwischengeschalteten Verarbeitungskomponenten wie Funktionen und Filter hindurch zur Quellkomponente zurückverfolgt.

 

Wenn ein Ziel-Node ausgewertet wird, ermittelt MapForce einen Kontext, der die Quell-Nodes erbt, sowie im Parent-Kontext verfügbare Zwischenergebnisse. Gleichrangige Ziel-Nodes werden unabhängig von einander ausgewertet, doch erbt jeder die Quelldaten des Parent-Kontexts. Nähere Informationen zum Parent-Kontext finden Sie unter Parent-Kontext.

 

Nähere Informationen zu den grundlegenden Regeln der Mapping-Ausführung finden Sie unter Grundlegende Regeln und Strategien.

 

Verarbeitungsreihenfolge im mehreren Zielkomponenten

Wenn ein Mapping mehrere Zielkomponenten hat, können Sie immer nur eine Vorschau auf die Ausgabe nur einer Komponente anzeigen. Klicken Sie dazu auf die mf_ic_preview Vorschau-Schaltfläche der gewünschten Zielkomponente (Abbildung unten).

mf_semantics_07_zoom70

Verarbeitungsreihenfolge in MapForce Server und generiertem Code

In anderen Ausführungsumgebungen (MapForce Server und generierter Code) werden Zielkomponente der Reihe nach ausgeführt und es wird die entsprechende Ausgabe für die einzelnen Komponente erzeugt.

 

Standardmäßig werden Zielkomponenten von oben nach unten und von links nach rechts verarbeitet. Bei Bedarf können Sie diese Reihenfolge durch Ändern der Position der Zielkomponenten im Mapping-Fenster beeinflussen.

 

Verkettete Mappings

Wenn Sie die Zwischen- oder Endkomponente eines einzigen verketteten Mappings verschieben, hat dies keine Auswirkung auf die Verarbeitungsreihenfolge. Nähere Informationen zu verkettete Mappings finden Sie unter Tutorial: Verkettete Mappings.

 

Beispiel

Um die oben beschriebenen Regeln in die Praxis umzusetzen, wird hier das unten gezeigte Mapping behandelt (MapForceExamples\PersonListByBranchOffice.mfd). Hauptaufgabe des Mappings ist es, eine Liste der Angestellten einer bestimmten Niederlassung mit ihren persönlichen Daten zu erhalten.

mf_udf_19

Quell- und Zielstruktur

Das Mapping in unserem Beispiel enthält eine XML-Quellkomponente und eine XML-Zielkomponente. Zusätzlich dazu gibt es eine einfache Input-Komponente, die ebenfalls als Quellkomponente dient und den Namen der gewünschten Niederlassung, deren Angestellten wir benötigen, bereitstellt. Außerdem enthält das Mapping verschiedene Datenverarbeitungskomponenten wie Filter und einige Funktionen.

 

 

Kontext und Verarbeitungsreihenfolge

Die Verarbeitung beginnt beim Ziel-Root-Node PersonList. Wir können die Verbindung über den Filter und die equal-Funktion zurück zum Quelldatenelement Office verfolgen. Während MapForce den Root-Node und anschließend seine Nachfahren verarbeitet, wird jeder Ziel-Node im Rahmen des durch seinen Parent-Node ermittelten Kontexts ausgewertet.

 

Eine einzelne Niederlassung (office) als Kontext für die Zielkomponente

Da die Verbindung vom Element Office zum Element PersonList einen Filter durchläuft, werden nur die Daten, die der Booleschen Bedingung entsprechen, auf das Zieldatenelement gemappt. Diese Bedingung trifft nur einmal zu, da die XML-Quelldatei nur eine Niederlassung (office) namens Nanonull, Inc. enthält. Folglich definiert die Verbindung vom Element PersonList durch den Filter zum Element Office eine einzige Niederlassung (office) als Kontext für das gesamte Zieldokument. D.h. alle weiteren Verbindungen zu den Nachfahren des Root-Elements haben nur Zugriff auf die Daten der Niederlassung Nanonull, Inc. Daten aus jeder anderen Niederlassung werden aus dem aktuellen Kontext ausgeschlossen.

 

Ein Person-Element pro Contact-Element

Die nächste Verbindung ist die zwischen den Elementen Contact und Person. Gemäß der allgemeinen Mapping-Regel wird mit dieser Verbindung für jedes Contact-Quelldatenelement ein Person-Zieldatenelement erstellt. Bei jeder Iteration wird durch diese Verbindung ein einziges aktuelles Contact-Element für die Verbindungen zu den Children des Elements Person ermittelt. Daher werden für die Child-Verbindungen (first mit First, last mit Last) der Vor- (first) und Nachname (last) des aktuellen Contact-Elements ausgewählt und in die Zielkomponente geschrieben.

 

Benutzerdefinierte Funktion

Das Weiteren enthält das Mapping eine benutzerdefinierte Funktion namens LookupPerson. Aufgrund der übergeordneten Verbindung zwischen Contact und Person wird die benutzerdefinierte Funktion ebenfalls im Kontext der einzelnen Person-Datenelemente ausgeführt. So wird die Funktion jedes Mal, wenn in der Zielkomponente ein neues Person-Datenelement erstellt wird, aufgerufen, um das Element Details des Person-Elements zu befüllen.

 

Die Funktion hat drei Input-Parameter: den Namen der Niederlassung, den Vornamen (first) und den Nachnamen (last). Intern verkettet die Funktion die als Argumente erhaltenen Werte und erzeugt einen einzigen Wert.

 

Nähere Informationen darüber, wie die Funktion LookupPerson konfiguriert wird, finden Sie unter Look-up-Implementierung.

 

Wenn die übergeordneten Elemente nicht verbunden werden

Wenn keine Verbindung zwischen den Elementen Contact und Person erstellt wird, werden die Elemente first und last in der Quelldatei im Kontext des Elements Office ausgewertet. Da nur eine Niederlassung der Filterbedingung entspricht, wird im Mapping nur ein Person-Zielelement erstellt und mit allen first- und last-Elementen aller Kontakte aus Nanonull, Inc. befüllt.

 

In solchen Fällen wird in MapForce im Fenster "Meldungen" eine Warnung angezeigt (Abbildung unten) und es wird vorgeschlagen, die Parent-Nodes zu verbinden, um das Problem zu beheben.

mf_semantics_01

Nähere Informationen zum Kontext finden Sie unter Parent-Kontext und Prioritätskontext.

 

© 2020-2026 Altova GmbH