Arbeitsweise von Funktionen
Funktionen können auf Knoten und Feldern der Zielstruktur verwendet werden. Funktionen in Lobster_data sind wie Funktionen einer Programmiersprache zu verstehen. Sie haben Eingangsparameter und einen Rückgabewert und können bestimmte Operationen ausführen. Es sind aber dennoch keine Programmierkenntnisse notwendig.
Es können auch mehrere Funktionen hintereinander auf einem Zielstruktur-Feld (oder -Knoten) ausgeführt werden. Wir nennen das eine Funktionskette.
Eine Funktion kann 1 bis n Eingangsparameter haben. Folgende Typen sind verfügbar.
Wert. Also schlicht eine Zahl und/oder Buchstaben, es können auch Konstanten in der Syntax %CONST_NAME% verwendet werden.
Variable. Der Name einer Variable. Der Parameterwert ist der Wert der Variable.
Ergebnis. Die Position einer Funktion, die in einer Funktionskette vor dieser Funktion aufgerufen wird. Der Parameterwert ist der Rückgabewert der Funktion mit der angegebenen Positionsnummer.
Zuordnung. Also der Wert des Quellfelds, das diesem Zielfeld zugewiesen ist, d. h. der gemappte Wert.
Quellfeld. Der Name eines Feldes aus der Quellstruktur. Der Parameterwert ist der Wert des Quellstrukturfeldes.
Zielfeld. Der Name eines Feldes aus der Zielstruktur. Der Parameterwert ist der letztendliche Wert des Zielstrukturfeldes.
Hinweis: Verwendet ein Zielfeld ein anderes Zielfeld als Eingangsparameter einer seiner Funktionen, dann ist auf die Reihenfolge der Zielfelder zu achten. Das Zielfeld, das in seiner Funktion ein anderes Zielfeld als Eingangsparameter seiner Funktion verwendet, muss unterhalb dieses anderen Zielfelds stehen in der Zielstruktur. Ansonsten hätte das Zielfeld, das als Eingangsparameter verwendet wird, noch gar keinen Wert, da die Felder der Zielstruktur von oben nach unten abgearbeitet werden.
Hinweis: Es gibt auch Möglichkeiten die Abarbeitungsreihenfolge zu umgehen. Siehe Abschnitt Zukunftswerte verwenden.
Reihenfolge der Wertzuweisungen an ein Zielstruktur-Feld (und Zielstruktur-Knoten)
Zuweisung (also der gemappte Wert) (falls es einen gibt).
Rückgabewerte der Funktion (falls es einen gibt). Bei Funktionsketten wird immer der Rückgabewerte der letzten Funktion in der Funktionskette verwendet.
Fixwert des Zielfeldes (falls es einen gibt).
Die nachfolgende Wertzuweisung überschreibt immer die vorherige. D. h. wenn ein Zielfeld einen Fixwert hat, dann wird damit der gemappte Wert dieses Zielfelds überschrieben und auch der Rückgabewert einer Funktion auf dem Zielfeld.
Hinweis: Im Prinzip trifft das auch auf Knoten in der Zielstruktur zu, allerdings gibt es hier keine Zuweisungen (Mapping) und auch keine Fixwerte, also nur Rückgabewerte von Funktionen.
Wirkung von Funktionen auf Zielstruktur-Knoten
Mit dem Rückgabewert einer Funktion auf einem Zielstruktur-Knoten kann gesteuert werden, ob dieser beim Mapping betreten wird und damit im Zielbaum erzeugt wird oder nicht. Dies ist eine sehr hilfreiche Technik, um im Mapping die dynamische Konstruktion des Zielbaums zu steuern.
Ist der Rückgabewert true (bzw. ein String, der mit t oder T beginnt oder eine Zahl > 0), dann wird der Zielstruktur-Knoten betreten und dadurch der Zielbaum-Knoten erzeugt.
Ist der Rückgabewert false (bzw. ein String, der nicht mit t oder T beginnt oder eine Zahl <= 0), dann wird der Zielstruktur-Knoten nicht betreten und dadurch wird der Zielbaum-Knoten nicht erzeugt werden.
Hinweis: Siehe auch Datentyp Boolean.
Hinweis: Es kann sich beim Rückgabewert um den Booleschen Rückgabewert einer Funktion (oder einer Funktionskette) handeln oder z. B. schlicht um den String true oder 1, als Rückgabewert der Funktion copy(field/value/variable).
Sicherheit - Zugriffsbeschränkungen definieren
Es ist möglich, in einer Properties-Datei ./etc/admin/datawizard/whiteListPaths.properties die erlaubten Verzeichnisse (white list) für alle Funktionen, die auf das lokale Dateisystem zugreifen, einzuschränken.
Es müssen die absoluten Pfade eingetragen werden, die erlaubt sind (Unterordner sind enthalten). Beispiel:
/home/demo
/opt/IS/conf
Hinweis: Diese Liste gilt auch für den zeitgesteuerten Eingangsagenten Datei und den Antwortweg Datei.
Hinweis: Nicht betroffen ist der Zugriff auf Konfigurationsdateien und SMB-Shares.
Sicherheit - Funktionen sperren
Es ist möglich, bestimmte Funktionen in der GUI zu sperren. Gesperrte Funktionen werden dann nicht in der Funktionsliste angezeigt. Dazu müssen in der Konfigurationsdatei ./etc/admin/datawizard/excludedFilter.properties die IDs der zu sperrenden Funktionen angegeben werden. Die ID einer Funktion können Sie in der Funktionsliste über das Kontextmenü einer Funktion sehen. Man könnte z. B. Funktionen sperren, die auf das lokale Dateisystem zugreifen können.