Aktivieren Sie bitte JavaScript, um diese Seite anzeigen zu können.

Altova MapForce 2021 Basic Edition

Funktionen > Benutzerdefinierte Funktionen

Inline-Funktionen und reguläre benutzerdefinierte Funktionen

Bildlauf Zur Startseite Zurück Nach oben Weiter Mehr

Es gibt zwei Arten von benutzerdefinierten Funktionen: Inline-Funktionen und reguläre Funktionen. Sie können beim Erstellen der Funktion festlegen, ob es sich dabei um eine Inline-Funktion oder eine reguläre Funktion handeln soll, siehe Erstellen benutzerdefinierter Funktionen. Inline-Funktionen und reguläre Funktionen verhalten sich in Bezug auf die Codegenerierung, Rekursivität und die Möglichkeit, mehrere Output-Parameter zu haben, unterschiedlich.

 

Inline-Funktionen

Reguläre Funktionen

Inline-Funktionen werden in allen Fällen, in denen sie im generierten Code vorkommen, extrahiert, wodurch der Code länger, aber auch etwas schneller wird.

 

Beachten Sie, dass der Umfang des generierten Programmcodes durch Inline-Funktionen erheblich größer werden kann. Die benutzerdefinierte Funktion wird tatsächlich an allen Stellen, an denen die Funktion aufgerufen wird, eingefügt, wodurch der Codeumfang viel größer wird als bei der Verwendung einer regulären Funktion.

Jede benutzerdefinierte Funktionskomponente generiert Code für einen Funktionsaufruf, beidem Inputs als Parameter übergeben werden und der Output der Rückgabewert der Funktion(skomponente) ist.

 

Zur Laufzeit werden zuerst alle Input-Parameter ausgewertet. Anschließend wird die Funktion für jede Input-Dateninstanz aufgerufen.

Inline-Funktionen können mehrere Outputs haben und daher mehrere Werte zurückgeben.

Reguläre Funktionen können nur einen Output haben. Um mehrere Werte zurückzugeben, können Sie den Output als complexType (z.B. als XML-Struktur) deklarieren. Auf diese Art könnten mehrere Werte an die aufrufenden Komponente zurückgegeben werden.

Inline-Funktionen können nicht rekursiv aufgerufen werden.

Inline-Funktionen können rekursiv aufgerufen werden.

Bei Inline-Funktionen kann kein Prioritätskontext für einen Parameter definiert werden.

Bei regulären Funktionen kann ein Prioritätskontext für einen Parameter definiert werden.

 

Das Umschalten einer benutzerdefinierten Funktion zwischen "inline" und "regulär" kann sich auf den Mapping-Kontext auswirken, wodurch im Mapping ein anderes Ergebnis erzeugt werden kann.

 

Benutzerdefinierte Inline-Funktionen im Mapping werden mit einer gestrichelten Umrandung angezeigt. Bei der mittleren Komponente im Mapping unten handelt es sich z.B. um eine benutzerdefinierte Inline-Funktion.

mf_udf_06

Reguläre Funktionen im Mapping werden mit einer durchgezogenen Umrandung angezeigt. Bei der mittleren Komponente im Mapping unten handelt es sich z.B. um eine reguläre benutzerdefinierte Funktion.

mf_udf_05

© 2015-2021 Altova GmbH