Berechnungsfelder


images/download/thumbnails/44946683/arrow_up-version-1-modificationdate-1583802721595-api-v2.png Einführung: Eine Beschreibung dieser Phase finden Sie im Abschnitt Phase 3 (Einführung).


images/download/thumbnails/44946683/image2020-3-16_15-59-33-version-1-modificationdate-1584327575367-api-v2.png

Siehe auch Abschnitt Iterationsknoten und Berechnungsfelder.


Manchmal ist es im Mapping erforderlich lediglich Berechnungen vorzunehmen, wobei die betroffenen Teilstrukturen nicht in den Ausgangsdaten sichtbar sein dürfen.

Beispiel: In den Kopfdaten eines Auftrags muss die Anzahl der Auftragspositionen angegeben werden. Die Anzahl wird mit einer Variable ermittelt, indem ein Knoten counting mit Pfad auf den Knoten Position in der Quellstruktur) erstellt wird. Im Knoten wird ein Feld angelegt, das bei jedem Durchlauf den Zähler der Positionen erhöht. Dieser Teil des Zielbaums darf nicht in den Zieldaten sichtbar sein. Dies wird erreicht, indem für das Feld die Eigenschaft Berechnungsfeld der Wert Ja gesetzt wird.

Die folgende Abbildung zeigt die Auswirkung von Berechnungsfelder auf den Zielbaum.


images/download/attachments/44946683/Berechnungsfeld-version-1-modificationdate-1583802657662-api-v2.png


(1) Über dem Auftragskopf OrderHeader wird ein neuer Knoten counting eingefügt. In diesem Knoten wird die Eigenschaft Pfad auf den gleichen Wert wie im Knoten Position gesetzt. Damit wird der Knoten so oft wiederholt wie der Knoten (4).

(2) Das Feld counterPos wird angelegt, ohne diesem Feld ein Eingangsfeld zuzuweisen. Die Eigenschaft Berechnungsfeld wird für das Feld auf den Wert Ja gesetzt. Im Feld wird die Funktion calculate and save variable(a,b,c,d,[e]) eingefügt mit Parameter a=var__COUNTERPOS, b=+ und c=1, um den Wert der Variablen var__COUNTERPOS zu erhöhen und den neuen Wert in die Variable zurückzuschreiben. Nach dem letzten Durchlauf enthält die Variable als Wert die Anzahl der Auftragspositionen.

(3) Das Feld positions wird angelegt, ohne diesem Feld ein Eingangsfeld zuzuweisen. Über die Funktion copy(field/value/variable) mit Parameter a=Variable var__COUNTERPOS wird der Wert der Variable in das Feld gefüllt. Da dieses Feld im Zielbaum erst durchlaufen wird, wenn der Knoten abgearbeitet ist, erhält das Feld als Wert die Anzahl der Auftragspositionen.

(4) Knoten mit dem Pfad auf Positionen in der Quellstruktur.

(5) Der Knoten counting wird im Zielbaum ebenso oft wiederholt wie der Knoten Position. Da unterhalb des Knotens aber kein echtes Feld existiert, wird der Knoten bei der Erstellung der Zieldaten ignoriert und somit auch nicht ausgegeben.


Es ist auch möglich, berechnete Felder und normale Felder in beliebiger Reihenfolge innerhalb von Knoten zu mischen. Allerdings werden Knoten mit normalen Feldern für die Erstellung der Zieldaten nicht mehr ignoriert.