Open Source Dokumentenmanagement
Dokumentation

Durchsuchbare Dokumentation aufrufen | Zurück zur Dokumentationsübersicht

Navigation: Dokumentationen agorum core > agorum core workflow 3.0 > ACLs/Berechtigungen im Workflow setzen > DATEV XML-Schnittstelle online > Übersicht vorhandener Knoten


Skript

Interne ID: agorum.script

Sie können mit diesem Knoten JavaScripte in Ihrem Workflow ausführen, um etwa eigene Logiken abzubilden oder Debugging zu betreiben. Zudem können Sie über diesen Knoten den aktuellen Bearbeiter (sys_acw_assignee) ändern oder entfernen.

Aussehen des Knotens

Verhaltensweise


Erreicht das System den Knoten im Workflow, wird das Enter script ausgeführt. Der Workflow wird danach normalerweise über das Outlet leave weitergeführt und der Knoten darüber verlassen. Wenn leave im Enter script nicht vorhanden ist, wird der Workflow an dieser Stelle in einen Wartezustand versetzt und unterbrochen. Dieser Wartezustand kann nur durch den externen Aufruf eines Tokens aufgelöst werden.

Wird der Wartezustand aufgelöst, wird das Update script ausgeführt. Der Workflow wird danach normalerweise über das Outlet leave weitergeführt und der Knoten darüber verlassen. Wenn leave im Update script nicht vorhanden ist, wird der Workflow an dieser Stelle erneut in einen Wartezustand versetzt. Die Auflösung beginnt von vorn.

Endpoints


Standard Veränderbar? Weitere Endpoints möglich?
Default (Inlet) Nein, kann nur ausgeblendet werden. nicht nötig
Default (Outlet) Nein, kann nur ausgeblendet werden. ja, beliebig viele

Parameter


Parameter Beschreibung Beispiel
Enter script Wird ausgeführt, sobald der Workflow den Knoten erreicht. Enter script
Update script Wird ausgeführt, sobald der Wartezustand aufgelöst wird. Update script

Tipp: Verwenden Sie die Variablenauswahl, um einen Überblick über alle nutzbaren Variablen zu erhalten. 

Beispiel eines Enter Skripts (Debugging)

/* global sc, sca, token, instance, outlets, inlet, parameters */

console.log(parameters.logText, parameters.logVariable && token.variables[parameters.logVariable]);

// Send the token through the default outlet
token.leave('');

In diesem Beispiel wurde das Enter script in einem Subworkflow verwendet und der Subworkflow in einen Hauptworkflow eingebunden. Der eingebundene Knoten im Hauptworkflow besitzt die Parameter Log text mit dem Wert Tolle Ausgabe und die Variable sc.loginUser.UUID, die die aktuellen interne Benutzer-ID enthält.

Parameter des eingebundenen Subworkflows

Durch console.log im Enter script loggt das System den String und die Variable im Protokoll und zeigt die Daten dort an. Sie können diese Daten in der Registerkarte Protokoll (Log) des jeweiligen Schrittes einsehen.

Protokollierte Parameter aus dem Knoten

Beispiel eines Update Skripts

/* global sc, sca, token, instance, outlets, inlet, parameters */

console.log('the current user is' + sc.loginUser.name);

// Send the token through the default outlet
token.leave('');

Beispiele für das Entfernen/Ändern des Bearbeiters

Sie können den aktuellen Bearbeiter entfernen, indem Sie die Variable sys_acw_assignee aus dem Token löschen.

/* global sc, sca, token, instance, outlets, inlet, parameters */

let assignment = require('/agorum/roi/customers/acworkflow/js/common/assignment');
let objects = require('common/objects');

console.log(assignment.getAssignment(token));
// {"viewers":[],"substitutes":[],"assignees":[{"attachmentPermission":"read","id":"group:GRP_Demo"},{"attachmentPermission":"write","id":"group:d4wdr"}]}

// remove the user assignement
//delete token.variables.sys_acw_assignee;

// Send the token through the default outlet
token.leave('');

Einen neuen Bearbeiter können Sie wie folgt zuweisen. Die Zuweisung einer neuen Bearbeitergruppe erfolgt über die assignment Bibliothek.

/* global sc, sca, token, instance, outlets, inlet, parameters */

let assignment = require('/agorum/roi/customers/acworkflow/js/common/assignment');
let objects = require('common/objects');

console.log(assignment.getAssignment(token));
// {"viewers":[],"substitutes":[],"assignees":[{"attachmentPermission":"read","id":"group:GRP_Demo"},{"attachmentPermission":"write","id":"group:d4wdr"}]}

// direct user assignment
token.variables.sys_acw_assignee = objects.find('user:demo').UUID;

// Send the token through the default outlet
token.leave('');