Standardwerte und Node-Funktionen

www.altova.com Dieses Kapitel drucken Vorherige Seite Eine Ebene nach oben Nächste Seite

Startseite >  Funktionen >

Standardwerte und Node-Funktionen

Wenn MapForce Daten ausliest oder schreibt, kommt es oft vor, dass entweder die Quell- oder die Zieldatei leere Felder oder Nullfelder enthält. Für solche Fälle bietet MapForce verschiedene vordefinierte Funktionen, if-else-Bedingungen und andere Funktionalitäten, mit denen Sie fehlende Daten oder Nullwerte durch etwas Anderes ersetzen oder eventuell eine Ausnahme auslösen können, wenn fehlende Felder gefunden werden.

 

Außerdem müssen Sie eventuell einen Standardwert für mehrere Datenelemente auf einmal definieren (z.B. für alle Sub-Einträge eines XML-Elements). Als Alternative dazu können Sie eine einfache Funktion erstellen, die einen leeren Wert durch Text (z.B. "n/a") ersetzt und diese Funktion anschließend auf mehrere Datenelemente anwenden. Normalerweise müssten Sie dazu ein und dieselbe Funktion mehrmals in das Mapping kopieren. Dadurch würde das Mapping jedoch unübersichtlich und zu voll werden. Eine einfachere Alternative wäre die Verwendung von Standardwerten und Node-Funktionen, welche hier in diesem Kapitel beschrieben sind.

 

Anmerkung:Standardwerte und Node-Funktionen werden unterstützt, wenn die Zielsprache des Mappings BUILT-IN ist. 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.

 

Der Begriff "Node-Funktion" bedeutet, dass die Funktion auf Node-Ebene - sei es auf einen XML-Node oder ein CSV-, JSON-, EDI- oder Datenbankfeld - angewendet wird. Die Node-Funktion kann entweder auf ein einzelnes Datenelement oder auf mehrere Datenelemente auf einmal angewendet werden. Ebenso bezieht sich der Begriff "Standardwert" auf einen Standardwert, den Sie entweder für ein einzelnes Datenelement oder für mehrere Datenelemente auf Node-Ebene anwenden. Beachten Sie, dass eine Node-Funktion oder ein Standardwert zur Mapping-Laufzeit für jedes Datenelement in einer Sequenz einmal aufgerufen wird.

 

Standardwerte und Node-Funktionen sind vor allem dann nützlich, wenn Sie dieselbe Verarbeitungslogik auf mehrere untergeordnete Datenelemente in einer Struktur anwenden möchten, z.B.:

 

Ersetzen aller leeren oder Nullwerte durch einen anderen Wert, und zwar rekursiv für alle untergeordneten Datenelemente
Ersetzen eines bestimmten Werts (z.B. "N/A") durch einen anderen Wert (oder einen leeren String), und zwar rekursiv für alle untergeordneten Datenelemente
Ersetzen aller Datenbank-Nullwerte durch einen leeren String oder benutzerdefinierten Text (oder im Fall von numerischen Feldern durch 0), wenn eine Datenbanktabelle ausgelesen wird
Abschneiden aller nachgestellten Leerzeichen für alle Werte, die aus einer Quelldatenbank stammen
Anhängen eines benutzerdefinierten Präfix oder Suffix an alle Werte, die in eine Zieldatei oder -datenbank geschrieben werden
Erzeugen eines Nullwerts, jedes mal, wenn ein bestimmter Wert vorkommt

 

Anmerkung:Beachten Sie die Unterscheidung zwischen "Nullwerten" und "leeren" Werten, da es sich hierbei um zwei unterschiedliche Dinge handelt. Ein Nullwert bedeutet "nichts" (es ist kein Wert vorhanden), während ein leerer Wert normalerweise ein leerer String ('') ist. MapForce bietet verschiedene Methoden zur Behandlung der beiden Werte, darunter unter anderem auch Node-Funktionen und Standardwerte.

© 2019 Altova GmbH