Standardwerte und Node-Funktionen
Standardwerte und Node-Funktionen sind vor allem dann nützlich, wenn Sie dieselbe Verarbeitungslogik auf mehrere untergeordnete Datenelemente in einer Struktur anwenden möchten. Normalerweise müssten Sie dazu ein und dieselbe Funktion mehrmals in das Mapping kopieren. Dadurch würde das Mapping jedoch unübersichtlich werden. Standardwerte und Node-Funktionen können auf ein einziges Datenelement oder auf mehrere Datenelemente auf einmal angewendet werden. Standardwerte ersetzen leere Sequenzen. Wenn durch die Verbindung ein Wert übertragen wird, wird der Standardwert ignoriert.
Standardwerte und Node-Funktionen eignen sich für die meisten Komponenten, die eine Struktur bestehend aus Nodes haben (z.B. XML, EDI, Join-Komponenten, Variablen).
Standardwerte und Node-Funktionen sind nur mit der Built-In-Transformationssprache kompatibel. Die Ausführung solcher Mappings von generiertem C#-, C++-, Java-Programmcode aus oder mit Hilfe generierter XSLT/XQuery-Transformationen wird nicht unterstützt. Serverseitig können Sie solche Mappings mit der MapForce Server Advanced Edition ausführen.
Vorteile von Node-Funktionen und Standardwerten
Wenn Node-Funktionen und Standardwerte erstellt werden, bedeutet dies, dass eine Regel definiert wird. Regeln weisen die folgenden wichtigen Eigenschaften auf, wodurch sie einfach und flexibel eingesetzt werden können:
•Vererbung. Wenn Sie für ein Datenelement, das untergeordnete Datenelemente hat, eine Regel definieren, wird die Regel standardmäßig an diese untergeordneten Datenelemente vererbt, es sei denn Sie deaktivieren diese Option. Wenn das Datenelement, für das Sie die Funktion definieren, mehrere Ebenen oder verschachtelte untergeordnete Datenelemente hat, können Sie auswählen, ob die Regel nur auf die direkten Sub-Einträge oder auf alle untergeordneten Datenelemente angewendet werden soll.
•Filtern. MapForce wendet Regeln anhand von Bedingungen auf Basis des Datentyps der einzelnen Datenelemente an. Auf diese Art kann z.B. ein bestimmter Standardwert oder eine Funktion auf alle Datenelemente vom Typ String und ein anderer Standardwert oder eine Funktion auf alle Datenelement des Datentyps decimal angewendet werden. Nähere Informationen finden Sie und Anwendungsfallszenarien im Szenario 2. Sie können auch komplexere Filteroptionen definieren: So können Sie etwa einen Datentyp definieren, mit dem Ihre Funktion übereinstimmen muss (z.B. eine Kategorie von Datentypen wie numeric) und die Nodes dieses Datentyps anschließend nach dem Node-Namen oder -Typ filtern (z.B. integer). Nähere Informationen dazu finden Sie unter Szenario 5.
Sie können dadurch folgende Regeln in MapForce definieren:
•Ersetzen aller leeren oder Nullwerte durch einen anderen Wert, und zwar rekursiv für alle untergeordneten Datenelemente
•Ersetzen eines bestimmten Werts durch einen anderen Wert (oder einen leeren String), und zwar rekursiv für alle untergeordneten Datenelemente
•Ersetzen aller Datenbank-Nullwerte durch leere Strings oder benutzerdefinierten Text
•Anhängen eines benutzerdefinierten Präfix oder Suffix an alle Werte, die in eine Zieldatei oder -datenbank geschrieben werden
Output- oder Input-Seite
Je nach Bedarf können Sie auf der Input-, auf der Output-Seite oder auf beiden Seiten der Komponente Node-Funktionen und Standardwerte definieren. Ein Mapping funktioniert in MapForce folgendermaßen: (i) Zuerst werden Daten aus einer Quellkomponente (z.B. einer XML-Datei) ausgelesen, (ii) anschließend werden diese auf irgendeine Art verarbeitet (z.B. mit Hilfe einer Funktion) und (iii) schließlich werden die Daten in eine Zielkomponente (z.B. eine Datenbank) geschrieben. Sie können also in verschiedenen Phasen des Mappings Node-Funktionen oder Standardwerte definieren:
•Unmittelbar, nachdem Daten aus der Quellkomponente ausgelesen wurden, aber noch, bevor diese von Ihrem Mapping weiterverarbeitet werden, d.h. die Funktion/der Standardwert wurde auf der Output-Seite der Quellkomponente definiert (siehe Beispiel unten).
•Unmittelbar, bevor Daten in die Zielkomponente geschrieben werden (und nach Abschluss aller Zwischenverarbeitungsschritte), d.h. die Funktion/der Standardwert wurde auf der Input-Seite der Zielkomponente definiert (siehe Beispiel unten).
•in einem Zwischenschritt im Mapping-Prozess. Wenn das Mapping z.B. eine Zwischenvariable vom complexType enthält (z.B. eine XML-Struktur), könnten Sie alle Werte kürzen, bevor diese an die XML-Struktur übergeben werden oder unmittelbar nachdem diese von der XML-Struktur zurückgegeben werden (siehe Beispiel unten).
•auf der Output-Seite einer Quellkomponente und auf der Input-Seite einer Zielkomponente. Im Beispiel unten wurde in der ArticlesOfClothing-Komponente für alle Nodes vom Typ string ein Standardwert definiert. In der ArticlesInfo-Komponente wurde eine Node-Funktion definiert, die alle Werte von String-Nodes in Großbuchstaben transformiert.
In diesem Abschnitt
In diesem Abschnitt erfahren Sie, wie Sie eine Regel konfigurieren. Außerdem werden Anwendungsszenarien beschrieben, in denen sich Standardwerte und Node-Funktionen als nützlich erweisen und Sie erfahren, wie Sie Metadaten zu Node-Funktionen hinzufügen. Dieser Abschnitt ist in die folgenden Kapitel gegliedert:
•Node-Metadaten in Node-Funktionen