Erstellen von Standardwerten und Node-Funktionen

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

Startseite >  Funktionen > Standardwerte und Node-Funktionen >

Erstellen von Standardwerten und Node-Funktionen

Sie können für beinahe jedes Datenelement (oder jeden Node) im Mapping Node-Funktionen oder Standardwerte erstellen. Wir bezeichnen diesen Vorgang als die Definition einer Regel.

 

Um eine Regel zu erstellen, müssen Sie zuerst das Datenelement (den Node oder das Feld) festlegen, für das Sie die Regel definieren möchten. Es kann sich dabei entweder um ein "Leaf"-Datenelement (ohne untergeordnete Datenelemente) oder um ein Datenelement mit untergeordneten Datenelementen handeln. In letzterem Fall kann die Regel auch auf alle untergeordneten Datenelemente angewendet werden. Außerdem können Sie untergeordnete Datenelemente, auf die die Regel angewendet werden soll nach Datentyp filtern. Sie können mit Hilfe von Regular Expressions auch nach Typ und Namen ein Look-up in qualifizierenden Datenelementen durchführen.

 

Voraussetzungen:

 

Sie können Standardwerte oder Node-Funktionen entweder auf der Input-Seite einer Zielkomponente oder auf der Output-Seite einer Quellkomponente erstellen. Um herauszufinden, welche Seite für Ihre Zwecke geeignet ist, lesen Sie nach unter Auswahl der Input- oder Output-Seite.
Bei Standardwerten und Node-Funktionen ist es erforderlich, dass der Verbindungstyp zwischen Quell- und Zielkomponente entweder "quellorientiert" oder "zielorientiert" ist. "Alles kopieren"-Verbindungen werden nicht unterstützt. Node-Funktionen und Standardwerte werden nicht auf untergeordnete Datenelemente von "Alles kopieren"-Verbindungen angewendet. Auf den Node selbst, für den die "Alles kopieren"-Verbindung definiert ist, werden die Node-Funktionen und Standardwerte angewendet, jedoch nur, wenn er einen einfachen Wert hat, z.B. ein XML-Element mit Inhalt und Attributen vom Typ simpleType. Wenn Sie daher eine Funktion oder einen Standardwert für einen Node mit untergeordneten Datenelementen definieren möchten, darf der Verbindungstyp zwischen der Quell- und der Zielkomponente nicht "Alles kopieren" sein. Um die Art der Verbindung anzuzeigen oder zu ändern, klicken Sie mit der rechten Maustaste auf die Verbindung und wählen Sie im Kontextmenü die Option Zielorientiert (Standard) aus. Nähere Informationen dazu finden Sie unter Verbindungsarten.
Beachten Sie, dass die Erstellung von Standardwerten oder Node-Funktionen für den "Datei"-Node nicht unterstützt wird. Über diesen Node können Dateinamen dynamisch erstellt oder ausgelesen werden, siehe Dynamische Verarbeitung mehrerer Input- oder Output-Dateien.

 

So erstellen Sie eine Regel:

1.Klicken Sie mit der rechten Maustaste auf das entsprechende Datenelement (den Node) und wählen Sie im Kontextmenü den Befehl Node-Funktionen und Standardwerte | Input-Node-Funktionen und Standardwerte (oder je nach Bedarf Output-Node-Funktionen und Standardwerte). Klicken Sie alternativ dazu mit der rechten Maustaste auf einen Konnektor - in diesem Fall zeigt MapForce den Node-Funktionsbefehl nur für diese Seite an. Daraufhin wird im oberen Bereich des Mappings ein Raster wie das folgende angezeigt:

mff_nodefunc_ex2

Wenn das Datenelement, für das Sie die Regel definieren, ein übergeordnetes Datenelement hat, können  auch für das übergeordnete Datenelement Regeln (Node-Funktionen oder Standardwerte) definiert worden sein. Damit diese Regeln weitervererbt werden, aktivieren Sie das Kontrollkästchen Regeln von Vorfahren erben. Nähere Informationen zur Vererbung finden Sie unter Funktionsweise von Standardwerten und Node-Funktionen.

 

2.Wählen Sie eine der folgenden Optionen:
a.Um einen Standardwert hinzuzufügen, klicken Sie auf Standardwert hinzufügen ( mf_ic_add_default  ).
b.Um eine Funktion hinzuzufügen, klicken Sie auf Funktion hinzufügen ( mf_ic_add_nodefunc ).

 

Daraufhin wird eine neue Regel erstellt (eine Zeile im Raster im oberen Bereich des Mappings, in der Sie die Kriterien für diese Regel auswählen können). Konfigurieren Sie die Regel folgendermaßen:

 

Anwenden auf

Wählen Sie aus, ob die Regel auf das aktuelle Datenelement, auf alle untergeordneten Datenelemente unabhängig von ihrer Tiefe oder nur auf direkte Sub-Einträge angewendet werden soll.

 

Wenn das in Schritt 1 ausgewählte Datenelement keine untergeordneten Datenelemente hat, steht nur "Aktuelles Datenelement" zur Auswahl.

Datentyp

Klicken Sie auf die Schaltfläche mit den Auslassungszeichen mf_ic_ellipsis und wählen Sie einen Datentyp aus dem Dialogfeld aus. Die Regel (Standardwert oder Node-Funktion) wird nur auf Datenelemente dieses Datentyps (oder eines davon abgeleiteten Datentyps) angewendet. Nähere Informationen dazu finden Sie unter Bedingte Anwendung von Node-Funktionen und Standardwerten.

 

Wenn das in Schritt 1 ausgewählte Datenelement keine untergeordneten Datenelemente hat, steht nur der Datentyp dieses Datenelements zur Auswahl.

Standardwert / Funktionsbeschreibung

Wenn Sie einen Standardwert ( mf_ic_add_default ) definieren, geben Sie hier den gewünschten Standardwert ein, der für das ausgewählte Datenelement (und ggf. auf alle untergeordneten Datenelemente) angewendet werden soll. Um einen leeren String als Standardwert zu definieren, lassen Sie dieses Feld leer.

 

Wenn Sie eine Funktion ( mf_ic_add_nodefunc ) definieren, dient dieses Feld nur zu Informationszwecken. Sie sehen darin eine zusammenfassende Beschreibung der Funktion. Sie können den Rumpf der Funktion im nächsten Schritt definieren.

 

3.Wenn Sie eine Funktion definieren, ändert sich der Mapping-Bereich und Sie sehen darin den Input (in der Abbildung unten "raw_value") und den Output ("result") der Funktion. Dabei handelt es sich um ein Mini-Mapping, für das dieselben allgemeinen Regeln wie für ein Standard-Mapping gelten. Der Rumpf einer Funktion könnte z.B. folgendermaßen aussehen:

mff_nodefunc_ex4

Mit der oben gezeigten Node-Funktion werden leere Werte durch den Wert "n/a" ersetzt. Nähere Informationen zu diesem Beispiel finden Sie unter Beispiel: Ersetzen von leeren CSV-Feldern.

 

Beachten Sie die folgenden Punkte:

 

In einer Node-Funktion werden nur bestimmte, in diesem Zusammenhang sinnvolle MapForce-Komponenten wie z.B. vordefinierte Funktionen, Variablen, if-else-Bedingungen und andere unterstützt. Komplexe Strukturen wie XML, JSON, EDI oder Datenbanken werden nicht unterstützt. Auch benutzerdefinierte Inline-Funktionen oder Join-Komponenten werden in diesem Zusammenhang nicht unterstützt.
Eine Node-Funktion kann maximal einen Input-Parameter oder gar keinen Parameter haben. Der Input-Parameter hat immer den Namen "raw_value". Löschen Sie niemals den Input-Parameter ("raw_value") der Funktion, selbst wenn Sie für Ihre Funktion keinen Input benötigen, da sonst bei der Ausführung des Mappings Validierungsfehler erzeugt werden. Dasselbe gilt auch für den Output der Funktion. Falls Sie eine versehentlich gelöschte Input-Komponente wiederherstellen müssen, wählen Sie den Menübefehl Funktion | Input-Komponente einfügen.
Wenn bereits ein Input-Parameter ("raw_value") vorhanden ist, werden alle später hinzugefügten Input-Parameter zu Metadatenparametern. Mit Hilfe solcher Metadaten können Sie zusätzliche Informationen zum aktuellen Node abrufen und in der Funktion verwenden, siehe Bereitstellung von Node-Metadaten für Node-Funktionen.
In manchen Fällen ist es einfacher eine Node-Funktion folgendermaßen zu erstellen: Ziehen Sie eine Funktion aus dem Fenster Bibliotheken auf einen- oder Output-Konnektor mf_ic_output_connector. Dies ist nur bei einfachen Funktionen wie right-trim oder uppercase sinnvoll.

 

 

So verlassen Sie das Hauptmapping:

Klicken Sie in der linken oberen Ecke des Mapping-Bereichs auf die Schaltfläche Zurück mf_ic_exit_door oder drücken Sie die Escape-Taste.

 

Siehe auch Bearbeiten und Löschen bestehender Regeln.


© 2019 Altova GmbH