Logo Image Workflow+ Hilfe
Workflow+ Hilfe
Logo Image

Funktionsbibliotheken

 

Syntax

<Namespace>.<Workflow>.<Funktionsskript>.<Funktion>(<Param1>, <Param2>, ...)

 

Beschreibung

Ab Version 8.4.7 lassen sich benutzerdefinierte Funktionen in Bibliotheken ablegen und überall aufrufen: in allen Workflows und in allen Formularen (WorkForm). Eine Bibliothek ist ein Ordner mit Workflow-Dateien (.nwf oder verschlüsselt .nwfe). Jede Funktion in einem Worker vom Typ "Functions" dieser Workflows ist über ihren vierteiligen Namen erreichbar. Wie Funktionen geschrieben werden, steht unter Benutzerdefinierte Funktionen.

 

Bibliothek einrichten:

Im Einstellungsdialog unter "Bibliotheken" wird je Bibliothek eine Zeile erfasst:

•Namespace: Der erste Teil des Aufrufs. Erlaubt sind nur Buchstaben, Ziffern und _, am Anfang ein Buchstabe. Jeder Namespace darf nur einmal vorkommen und nicht wie ein installiertes Plugin heissen.

•Ordner: Ein absoluter Pfad oder ein Pfad relativ zum Arbeitsverzeichnis des Dienstes. Mit "..." lässt sich der Ordner auswählen.

Die Einstellung gilt für die ganze Installation, also für Designer und Dienst gleichermassen. Unter "Hinweise zu den Bibliotheken" zeigt der Dialog Probleme an, etwa einen fehlenden Ordner, einen ungültigen Dateinamen oder eine mehrfach vorhandene Funktion.

 

Aufbau des Namens:

•Namespace: aus den Einstellungen.

•Workflow: Dateiname ohne Endung, z. B. Artikel für Artikel.nwf.

•Funktionsskript: Name des Workers vom Typ "Functions".

•Funktion: Name der Funktion im Skript.

Ausgewertet werden nur die Dateien direkt im Ordner, nicht in Unterordnern. Für Dateinamen und Worker-Namen gelten dieselben Regeln wie für den Namespace: keine Leerzeichen, keine Sonderzeichen.

 

Hinweise:

•Innerhalb desselben Bibliotheks-Workflows rufen sich Funktionen wie gewohnt mit Funktionsskript.Funktion(...) auf.

•Ein Bibliotheksaufruf hat eigene globale Variablen. Die globalen Variablen des aufrufenden Skripts sind darin nicht sichtbar.

•Ab Version 8.7.0 dürfen auch Concierge-Funktionen Bibliotheksfunktionen aufrufen. Die Bibliothek arbeitet dabei für denselben Benutzer wie die Concierge-Funktion: GetConciergeUser und GetConciergeApp liefern dessen Angaben, Änderungen in büro+ tragen sein Kürzel. Direkt über den Concierge aufrufen lässt sich eine Bibliotheksfunktion nicht. Sie steht nicht im Freigabekatalog; freigegeben wird die Concierge-Funktion, die sie aufruft.

•Bibliotheken dürfen sich gegenseitig aufrufen, höchstens 10 Ebenen tief.

•Gibt es denselben vierteiligen Namen mehrfach, bricht der Aufruf mit "nicht eindeutig" ab.

•Änderungen an Bibliotheksdateien gelten nach wenigen Sekunden, ohne Neustart.

•Die Funktionen erscheinen in der Autovervollständigung des Skript-Editors. Die Skriptprüfung meldet unbekannte Bibliotheksfunktionen als Fehler. Über MCP erscheinen die Bibliotheken in wf_function_script_list unter libraries, und wf_function_list sowie wf_function_call nehmen sie als file = 'Namespace.Workflow' an.

 

Beispiel

Namespace Firma, Ordner D:\WF\Bibliothek mit der Datei Artikel.nwf. Darin ist ein Worker "Preise" vom Typ "Functions" mit dieser Funktion:

Function Netto(Brutto as Decimal, Satz as Decimal) as Decimal
Begin
  Return Brutto / (1 + Satz / 100)
End

 

Aufruf in einem beliebigen Workflow oder Formular:

Dim Preis as Decimal
Preis = Firma.Artikel.Preise.Netto(108.10, 8.1)