Skripte

In diesem Menüpunkt kannst Du eigene Skripte für Deine Workflows anlegen und zentral verwalten. Diese Skripte lassen sich anschließend gezielt einzelnen Workflow-Elementen zuweisen, ohne dass sie für jedes Element neu erstellt werden müssen. Das sorgt für eine saubere Struktur und erleichtert die konsistente Verwendung von Skripten.

Skript-Gruppen

Im Bereich “Skript-Gruppen” kannst Du Gruppen anlegen, um Deine Skripte thematisch zu strukturieren. So behältst Du auch bei einer größeren Anzahl von Skripten den Überblick. Über den grünen Pfeil neben einer Gruppe kannst Du die darin enthaltene Skripte aufklappen und einsehen.

Mit dem Button “+Freies Skript” bzw. “+Vordefiniertes Skript” innerhalb einer geöffneten Gruppe legst Du direkt ein neues Skript an, das automatisch dieser Gruppe zugeordnet wird.

Sobald Du ein Skript einer Gruppe zuordnest, wird es nicht mehr im darunterliegenden Bereich “Skripte” angezeigt, sondern ausschließlich unter der jeweiligen Skript-Gruppe.

Freie Skripte

Im Bereich “Freie Skripte” werden ausschließlich die Skripte angezeigt, die keiner Skript-Gruppe zugeordnet sind.

Über die Buttons “+Freies Skript” und “+Vordefiniertes Skript” kannst Du ein neues Skript anlegen. Neben einer Bezeichnung und einer optionalen Beschreibung gibst Du im Feld “Domäne” den Bereich an, in dem das Skript verwenden werden soll.

Folgende Bereiche stehen Dir als Domäne zur Verfügung:

  • App: Skripte können im Zusammenhang von installierte Apps unter System/Apps im Reiter “Skripte” verwendet werden und stehen dort innerhalb der jeweiligen App-Funktionalität zur Verfügung.

  • Bibliothek: Skripte können mit dieser Domäne beispielsweise als Entwurf gespeichert werden, ohne dass sie in einem bestimmten Bereich auswählbar sind. Diese Domäne eignet sich zur Vorbereitung oder Archivierung von Skripten.

  • Import/Stapelverarbeitung: Skripte mit dieser Domäne können für vordefinierte und individuelle Stapel-Aktionen in verschiedenen Bereichen verwendet werden. Zusätzlich können sie für die manuelle Skriptverarbeitung unter System/Import eingesetzt werden.

  • Undefiniert: Skripte können auch mit dieser Domäne beispielsweise als Entwurf gespeichert werden, ohne in einem bestimmten Bereich auswählbar zu sein. Diese Domäne eignet sich ebenfalls zur Vorbereitung oder Archivierung von Skripten.

  • Workflow Intermediate-Event: Skripte können unter System/Workflows im Element “Warten (indirekt)” verwendet werden.

  • Workflow Split-Gateway: Skripte stehen unter System/Workflows im Element “Abfrage” zur Verfügung.

  • Workflow-Skript: Skripte können unter System/Workflows im Element “Benutzerskripte” eingebunden werden.

Freie und Vordefinierte Skripte

Freie und vordefinierte Skripte unterscheiden sich darin, wie nachträgliche Anpassungen an dem Skript gespeichert werden. Freie Skripte können jederzeit über den Button “Bearbeiten” beliebig bearbeitet und gespeichert werden.

Bei vordefinierten Skripten stehen Dir zwei unterschiedliche Bearbeitungsoptionen zur Verfügung:

  • Bearbeiten: Hierüber kannst Du Änderungen oder Ergänzungen vornehmen. Es lassen sich jedoch nur solche Anpassungen bearbeiten oder löschen, die über diesen Button erstellt wurden.

  • Vorgabedaten ändern: Über diese Option bearbeitest Du das Ursprungsskript sowie alle Änderungen, die ebenfalls über “Vorgabedaten ändern” vorgenommen wurden. Änderungen über den Button “Bearbeiten” sind in dieser Ansicht nicht sichtbar.

Mit dem Button “Vorgabedaten zurücksetzen” entfernst Du alle Anpassungen, die über “Bearbeiten” vorgenommen wurden. Das Skript wird dabei auf das Ursprungsskript bzw. auf den letzten Stand zurückgesetzt, der über “Vorgabedaten ändern” gespeichert wurde.

circle-exclamation

Verfassung des Skripts

Im Bereich “Skript” kannst Du dann Deinen Skript zusammensetzen. Dieser kann bei der Auswahl des Skripts in einem Element beliebig angepasst und erweitert werden. Aus diesem Grund sind diese Skripte besonders nützlich, um Skriptbestandteile zu speichern, die in mehreren Elementen benötigt werden.

circle-info

JavaScript-Kenntnisse erforderlich

Für das Erstellen und Bearbeiten von Workflows sind Kenntnisse in der Programmiersprache JavaScript erforderlich. Die Workflows greifen direkt in die Abläufe von VARIO Cloud einfehlerhafte Workflows können daher zu unerwünschtem Verhalten oder Störungen im System führen. Prüfe Deine Workflows daher sorgfältig, bevor Du sie aktivierst.

Mithilfe der integrierten Protokolle und Logs zu den Workflows lassen sich solche Fehler zwar nachvollziehen, dennoch ist technisches Verständnis erforderlich, um sie gezielt zu beheben.

Über “+ Workflow” kannst Du einen neuen Workflow anlegen. Bestehende Workflows lassen sich über das Aktionsmenü auch als JSON-Datei importieren.

Für die Verfassung des Skripts stehen Dir innerhalb des Skripts verschiedene Tools zur Verfügung.

circle-info

Detaillierte Informationen zum Scripting stehen dir in unseren Developer Docs zur Verfügung.

Developer Docs (Scripting)

Im Skript eines Benutzerskript-Elements stehen Dir verschiedene Funktionen und Objekte zur Verfügung, mit denen Du den Ablauf des Workflows gezielt steuern kannst. Hier ein Überblick über die wichtigsten Begriffe:

Begriff
Beschreibung

_setGuard_ (optional)

Definiert eine Bedingung, unter der der Workflow ausgeführt werden soll. Beispiel: nur bei bestimmtem Ländercode.

_return true_

Gibt innerhalb der _setGuard_ an, dass die definierte Aktion immer ausgeführt wird.

_return false_

Gibt innerhalb der _setGuard_ an, dass die definierte Aktion nie ausgeführt wird.

_setPrepare_ (optional)

Hier können Variablen mit Parametern befüllt werden, die später in _setAction_ verwendet werden.

_setAction_

Definiert die eigentliche Aktion, die im Workflow ausgeführt werden soll.

_ctx_

Bietet Zugriff auf verschiedene Kontextinformationen, die sich je nach Workflow-Auslöser unterscheiden können.

_ctx.availableInput_

Zugriff auf die für den Workflow verfügbaren Parameter, je nach Auslöser (z. B. die Aufgaben-ID bei einem Workflow mit dem Auslöser “Nach dem Speichern einer Aufgabe”).

_ctx.instanceDetails_

Zugriff auf Informationen zur aktuellen Workflow-Instanz.

_ctx.parameters_

Zugriff auf vordefinierte Parameter, z. B. Vorgängerbeleg oder vorherige Datensatzversion. Anders als bei _availableinput_ können diese erweitert werden, z. B. durch C-Units.

_ctx.parameters['previousDocument']_

Zugriff auf die vorherige Version des Beleges für Workflows mit den Auslösern “Vor dem Speichern”, “Nach dem Speichern”, “Bei Beginn der Bearbeitung” und “Bei Synchronisierung” von Belegen.

_ctx.parameters['sourceDocumentId']_

Zugriff auf die ID des Ursprungsbelegs für einen Workflow mit dem Auslöser Übernahme von Belegen.

_ctx.services_

Zugriff auf die für den Workflow zur Verfügung stehenden Verarbeitungsmethoden, mit denen wiederum auf die Geschäftsobjekte in der VARIO Cloud, z. B. Adressen oder Artikel, zugegriffen werden kann. Beispiel: _ctx.services.accountService.create_ = Adresse anlegen

_ctx.services.logger.info(...)_

Fügt einen selbst definierten Hinweis zum Log des Elementsarrow-up-right hinzu.

_ctx.services.vqlService_

Ausführung einer VQL-Abfrage, um im Workflow auf das Ergebnis dieser zugreifen zu können.

Tipps zur Verfassung des Skripts

  • Im JavaScript-Editor im Reiter “Skript” steht Dir eine Autovervollständigung zur Verfügung, die Dir alle verfügbaren Kontextobjekte (ctx.) und JavaScript-Methoden auflistet.

    • Beim Navigieren durch die Vorschläge mit den Pfeiltasten wird jeweils ein Tooltip mit einer Kurzbeschreibung des gewählten Objekts oder Befehls eingeblendet.

  • Du kannst eigene Funktionen außerhalb von setAction definieren und anschließend innerhalb von setAction verwenden.

  • Zudem kannst Du Konstanten definieren, um z. B. Feldnamen eindeutig zu benennen.

  • Mit der Tastenkombination Strg+F kann die Suchfunktion im Skript geöffnet werden, um nach einem Wert im Skript zu suchen.

  • In den C-Units verschiedener Bereiche gibt die Spalte “Version” an, wie oft ein Datensatz bereits bearbeitet wurde. Diese Information kann in Workflows genutzt werden, um bestimmte Schritte abhängig von der Bearbeitungsversion auszuführen. Wenn z. B. Zusatzfelder nicht direkt beim Anlegen eines Datensatzes ausgefüllt werden, kannst Du Workflow-Schritte so steuern, dass sie erst ab einer bestimmten Versionsnummer greifen – also z. B. erst, wenn der Datensatz ein zweites Mal gespeichert wurde. Weitere Informationen dazu findest Du hierarrow-up-right.

ERP-Berechtigungen

Über die ERP-Berechtigungen kannst Du sowie bei Dashboards und Selektionen festlegen, wer auf die Skripte zugreifen und diese bearbeiten kann. Dir stehen dabei folgende Optionen zur Verfügung:

Lesen und BearbeitenAlle Benutzer können auf das Skript zugreifen und es bearbeiten.

Nur LesenAlle Benutzer können das Skript einsehen, aber nicht bearbeiten. Über die Felder “Benutzer (Lesen und Bearbeiten)” und “Benutzergruppe (Lesen und Bearbeiten)” kannst Du einzelnen Benutzern und Benutzergruppen zusätzliche Bearbeitungsrechte zuweisen.

Individuell – Mit dieser Option kannst Du gezielt festlegen, welche Benutzer und Benutzergruppen ein Skript nur einsehen dürfen und welche zusätzlich Bearbeitungsrechte erhalten. Wenn Du z. B. im Feld “Benutzer (Lesen und Bearbeiten)” ausschließlich Deinen eigenen Benutzernamen auswählst, ist das Skript nur für Dich sichtbar und bearbeitbar. Benutzer ohne zugewiesene Zugriffsrechte haben keinen Zugriff auf das Skript – sie können es weder einsehen noch bearbeiten.

Angelegte Skripte verwenden

Wenn Du im Menüpunkt “Workflows” ein Element hinzufügst, bei dem ein Skript verwendet werden kann, z. B. Abfrage- oder Benutzerskript-Element, kannst Du im Reiter “Skript” im Feld “Skript-Modul” ein vorhandenes Skript auswählen. Je nach Bedarf können diese dann weiter angepasst und erweitert werden. Weitere Informationen zu den Workflows findest Du auf der Handbuchseite “Workflows”.

HTTP-Whitelist

Mit dieser Funktion steht Dir eine neue Verwaltungsoberfläche für die HTTP-Whitelist des SecureHttpClients zur Verfügung. Über diese Whitelist steuerst Du gezielt, zu welchen externen Zielen HTTP-Anfragen (z. B. aus Skripten) erlaubt sind. Nur Adressen, die hier hinterlegt sind, können vom System angesprochen werden. Das erhöht die Sicherheit deutlich, da unerlaubte oder unbekannte Zieladressen automatisch blockiert werden.

Du kannst Whitelist-Einträge flexibel anlegen, bearbeiten, deaktivieren und löschen. Dabei werden drei Typen unterstützt: Domain (z. B. api.example.com), um alle Anfragen an eine Domain zu erlauben, URL für exakt definierte Zieladressen sowie URL-Pattern, mit denen Du mithilfe von Mustern (engl. Pattern) und Platzhalterzeichen (engl. Wildcards) ganze URL-Bereiche freigeben kannst.

HTTP-Whitelist
Beispiele mit verschiedenen Typen (Domain, URL, URL-Pattern)
circle-info

Wichtiger Hinweis

Die Funktion steht Dir nur zur Verfügung, wenn Du über die Berechtigung “Skriptverwaltung” verfügst. Diese Berechtigung sollte ausschließlich an Personen mit entsprechenden Kenntnissen vergeben werden, da hier aktiv in die Prozesslogik eingegriffen wird.

Zuletzt aktualisiert

War das hilfreich?