Knotenfunktionen vereinfachen die Abbildung hierarchischer Datenstrukturen
Die Knotenfunktionen von MapForce vereinfachen die Transformation hierarchischer Daten wie XML-Knoten oder CSV-, JSON-, EDI-Dateien oder Datenbankfelder, indem sie es Benutzern ermöglichen, eine Datenverarbeitungsfunktion auf Knotenebene zu definieren und diese rekursiv auf alle untergeordneten Elemente anzuwenden.
Ähnlich können Standardwerte auch Knoten zugewiesen und automatisch auf deren Unterknoten angewendet werden.
Standardeinstellungen und Knotenfunktionen sind besonders nützlich, wenn eine Aufgabe zur Datenzuordnung und -transformation die gleiche Verarbeitung für mehrere abhängige Elemente in einer Struktur erfordert, beispielsweise:
- Ersetzen Sie Null-Werte durch einen anderen Wert, und zwar rekursiv für alle abhängigen Elemente
- Ersetzen Sie einen bestimmten Wert (z. B. "N/A") rekursiv durch einen anderen Wert für alle untergeordneten Elemente
- Ersetzen Sie alle Null-Werte in der Datenbank, wenn Daten aus einer Datenbanktabelle gelesen werden
- Entfernen Sie alle Leerzeichen am Ende aller Werte aus einer Quelldatenbank
- Fügen Sie ein benutzerdefiniertes Präfix oder Suffix allen Werten hinzu, die in eine Zieldatei oder Datenbank geschrieben werden
- Formatierung der Ausgabewerte
- Und viele andere
Standardeinstellungen und Knotenfunktionen vereinfachen die Verarbeitung hierarchischer Daten, indem sie die Notwendigkeit eliminieren, dieselbe Funktion mehrfach in eine Zuordnung zu kopieren und einzufügen. Die unnötige Wiederholung derselben Funktion erschwert die Übersichtlichkeit der Zuordnung und macht sie schwerer verständlich oder zu überarbeiten.
Schauen wir uns ein Beispiel an.

Die unten gezeigte Zuordnung von XML zu CSV ist ein Beispiel namens "OrderinUSD.mfd", das im Projekt "MapForce Examples" enthalten ist. Es veranschaulicht sowohl die Effizienz als auch die Flexibilität von Knotenfunktionen.

Dieses Beispiel transformiert eine Bestellung aus einer XML-Quelldatei in eine CSV-Textdatei. Zusätzliche Anforderungen sind, dass der Preis im Element "Price" in der Quelldatei, der in Euro angegeben ist, in Dollar umgerechnet werden muss, und dass der Name jedes bestellten Artikels in Großbuchstaben umgewandelt werden muss.
Eine Knotenfunktion erfüllt beide Anforderungen und wird durch das Funktionssymbol rechts neben dem Artikelknoten angezeigt. Ein Doppelklick auf das Funktionssymbol öffnet den Dialog zur Definition der Knotenfunktionen oberhalb des Bereichs für die Zuordnungen:

Diese einzelne Funktionskomponente kombiniert zwei MapForce-Operationen, um sowohl die erforderlichen Währungsumrechnungen als auch die String-Konvertierungen durchzuführen. Weitere Zeilen können der Funktionskomponente hinzugefügt werden, indem man auf die Symbole auf der linken Seite klickt, um einen Standardwert oder eine Funktionszeile einzufügen.
Die erste Spalte in jeder Zeile bestimmt, ob die Zeile sich auf eine einzelne Kindebene oder auf alle Nachkommen des übergeordneten Modus bezieht.
Das zweite Feld definiert, welcher Datentyp geändert werden soll. Durch Klicken auf die Schaltfläche „...“ öffnet sich der hier gezeigte Dialog, in dem Sie den Datentyp auswählen können:

Unser Beispiel enthält Zeilen für nur zwei Datentypen, aber eine Knotenfunktion könnte mit Zeilen für jeden möglichen Datentyp definiert werden. Für jedes Kind des übergeordneten Knotens wird die Zeile mit dem entsprechenden Datentyp ausgeführt.
Das dritte Feld gibt an, ob für die Zeile eine Funktion oder ein Standardwert verwendet wird. In beiden Fällen öffnet der "Bearbeiten"-Button diese Zeile zur Bearbeitung:

Eine Knotenfunktion wird definiert, indem Funktionen aus dem Funktionsbibliotheksfenster per Drag-and-Drop hinzugefügt werden und/oder indem Konstanten für die Funktion definiert und diese mit Quellen und Ausgängen verbunden werden.
Das Element "Amount" (Betrag) in der Beispiel-Eingabedatei gibt tatsächlich die bestellte Menge für jeden Artikel an und sollte nicht mit dem im Knoten multipliziert werden, der durch die Knotenfunktion definiert ist. Es ist einfach, "Amount" als Ausnahme zu definieren, indem man mit der rechten Maustaste auf das entsprechende Funktionssymbol klickt und im Kontextmenü die Option "Ausgabeknotenfunktionen übernehmen" deaktiviert.

Es gibt eine weitere Anforderung für die CSV-Ausgabedatei. Der Einzelpreis und der Zwischensummenpreis für jeden Artikel müssen mit einem führenden Dollarzeichen angegeben werden. Die Definition der Ausgabedatei zeigt, dass die Spalten "Einzelpreis" und "Preis" als Zeichenketten definiert sind, und MapForce konvertiert Dezimalwerte automatisch von der Quelle in Zeichenketten.
Das Hinzufügen der führenden Dollarzeichen erfolgt durch eine zusätzliche Knotenfunktion, die auf den "Rows"-Knoten des Ausgabekomponenten angewendet wird, wie hier gezeigt:

Um zu verhindern, dass diese Knotenfunktion auf alle Spalten mit Zeichenketten angewendet wird, wurden Ausnahmen für die Spalten "Unternehmen" und "Artikel" definiert. Damit ist das Beispiel für die Verwendung von Knotenfunktionen zur Verarbeitung hierarchischer Daten abgeschlossen.
Wie bei anderen MapForce-Beispielen wird für diese Transformation eine Quelldatendatei bereitgestellt, um die Ergebnisse zu veranschaulichen. Hier ist die Quelldatei, wie sie in XMLSpy angezeigt wird XML-Editor:

MapForce-Zuordnungen, die wiederholte Transformationen erfordern, wie beispielsweise in einem System zur Online-Bestellabwicklung, können mithilfe von MapForce Advanced Server automatisiert werden. Um die Zuordnung für Tests oder eine einmalige Konvertierung auszuführen, klicken Sie einfach auf die Schaltfläche "Ausgabe" unter dem Fenster zur Zuordnungsgestaltung.
Unabhängig davon, wie wir die Zuordnung gestalten, führt unser Beispiel zu folgendem Ergebnis:

Zusätzlich zu den Datenzuordnungen, die in diesem Artikel beschrieben werden, enthält MapForce verschiedene weitere Beispiele für Knotenfunktionen. Das integrierte Hilfesystem von MapForce bietet sogar eine schrittweise Anleitung, um eine Knotenfunktionszuordnung von Grund auf neu zu erstellen.
Um selbst zu sehen, wie Knotenfunktionen die Verarbeitung hierarchischer Daten vereinfachen, klicken Sie hier: Laden Sie eine voll funktionsfähige Testversion von MapForce herunter.
UPDATE: Lesen Sie diesen Beitrag, um eine weitere Strategie zu erfahren, wie Sie Knotenfunktionen basierend auf Metadaten der Knoten anwenden können, wie z. B. dem Knotennamen, der Knotenlänge, der Genauigkeit des Datentyps des Knotens, benutzerdefinierten Knotenanmerkungen und vielem mehr.