Show TOC Anfang des Inhaltsbereichs

Funktionsdokumentation Erweiterte benutzerdefinierte Funktionen Dokument im Navigationsbaum lokalisieren

Verwendung

Erweiterte benutzerdefinierte Funktionen können nicht nur auf einzelne Feldwerte zugreifen. Statt dessen können Sie einen kompletten Kontext oder eine ganze Queue eines Feldes vor dem Aufruf Ihrer Funktion als Array einlesen. Dadurch können Sie zum Beispiel Berechnungen auf allen Feldwerten eines Kontexts durchführen und selbst Kontexte mit Hilfe eingefügten Kontextwechseln weiter aufteilen.

Integration

Beim Parsen einer Instanz zur Ausgangsstruktur arbeitet ein Message-Mapping mit Queues:

Diese Grafik wird im zugehörigen Text erklärt

Pro Hierarchie-Ebene gibt es eine Queue. Eine Queue kann folgende Einträge haben:

Einträge von Queues

Wert

Bedeutung

(leerer String)

Es handelt sich um eine Queue eines Strukturfeldes. Für jedes Auftreten des Feldes in der XML-Instanz gibt es einen Eintrag mit einem leeren String in der Queue. Im Beispiel oben gibt es für <A /> und <root /> eine solche Queue.

(String)

Wert eines Wertefeldes

ResultList.CC

Konstante, die einen Kontextwechsel anzeigt

ResultList.SUPPRESS

Konstante, die bewirkt, dass ein Feld und seine Unterknoten bei der Prozessierung ignoriert werden

(leerer Kontext)

Kontext, der gar keine Werte enthält (siehe Grafik unten).

Durch Hinzufügen oder Wegnehmen von Kontextwechseln können Sie spezielle Strukturabbildungen realisieren. Die Standardfunktionen SplitByValue und removeContexts() arbeiten nach diesem Prinzip.

Siehe auch: Strukturabbildungen durch Setzen des Kontexts.

Bei geschachtelten Strukturen gibt es eine wichtige Grundregel: Die Anzahl der Kontexte einer Queue muss gleich der Anzahl der Werte (leeren Strings) der übergeordneten Queue sein:

Diese Grafik wird im zugehörigen Text erklärt

Funktionsumfang

Erweiterte benutzerdefinierte Funktionen können entweder nur einen Kontext in die Eingabe-Arrays einlesen oder die kompletten Queues. Kreuzen Sie dazu entweder das Ankreuzfeld Gesamte Queue im Cache speichern im Funktions-Editor an oder nicht.

Arbeiten mit Kontexten oder Queues

Information im Cache

Implikationen

Kontext

Erweiterte Funktionen, die nur einen Kontext einlesen, haben keine identifizierbaren Kontextwechsel. Sie können natürlich Kontextwechsel in der Ergebnisliste einfügen.

Queue

Da hier ein oder mehrere Queues komplett eingelesen werden, ist diese Variante speicherintensiver und für sehr große Messages ungeeignet.

Die Eingabe-Arrays enthalten nicht die Kontextwechsel am Beginn und am Anfang des Kontextes (oder der Queue). Diese Kontextwechsel sind implizit immer vorhanden können über die benutzerdefinierte Funktion weder identifiziert noch gelöscht werden.

Aktivitäten

...

       1.      Legen Sie eine erweiterte benutzerdefinierte Funktion an, siehe Benutzerdefinierte Funktionen.

       2.      Verarbeiten Sie im Java-Quelltext die Werte aus den Eingabe-Arrays und bauen Sie mit Hilfe des Objekts ResultList eine Ergebnisliste auf.

 

 

 

 

Ende des Inhaltsbereichs