Durchsuchbare Dokumentation aufrufen

Zurück zur Dokumentationsübersicht

JavaScript-Bibliothek common/workflow

Hinweise: Diese Bibliothek:

Sie können mit dieser Bibliothek Workflows des agorum core workflow 3.0 von „außen“ steuern, etwa Workflows starten oder Workflows beenden.

Sie können auch eigene Workflows und Knoten per Workflow 3.0-Bibliothek entwickeln.

Verwendung


let workflow = require('common/workflow');

Funktionen


get

Liest Variablen aus einem Workflow aus.


Syntax

workflow.get(id);


Transaktionen

Rufen Sie die Funktion auf, sperrt das System den Workflow für andere Funktionsaufrufe. Nur eine Funktion kann den Workflow behandeln.

Tipp: Um unnötig längere Verarbeitungszeiten des Funktionsaufrufs zu vermeiden, rufen Sie get in einem geforkten Bereich auf.


Parameter

Parameter Beschreibung Pflicht
id

Definiert die ID des Elements eines Workflows, von dem das System die Variablen ausliest.

Übergeben können Sie:

  • die ID eines Tokens, um die Variablen des Tokens auszulesen
  • die ID eines Workflows, um die globalen Variablen eines Workflows auszulesen
ja


Beispiel

let workflow = require('common/workflow');

// Get the local variable of the token determined by "tokenId"
let tokenVariables = workflow.get('tokenId');

// Get the global variables of the token determined by "instanceId"
let globalVariables = workflow.get('instanceId');

set

Übergibt einem bestimmten Token neue Variablen, passt bestehende Variablen an oder löscht sie aus einem bestimmten Token.


Syntax
workflow.set(tokenId, variables, sessionController);

 

Parameter

Parameter Beschreibung Pflicht
tokenId Definiert die ID des Tokens.
  • Geben Sie eine UUID, ID oder einen Pfad zum Token an.
  • Das System bricht die Funktion mit einem Fehler ab, sofern es den Token nicht findet.
ja
variables Definiert die neuen oder zu ändernden Variablen.
  • Das System übergibt die Variablen in einer Map bestehend aus Key-Value-Paaren, wobei der Key der Name der Variablen und der Value der neue oder geänderte Wert der Variablen ist.
  • Möchten Sie eine Variable über diese Funktion löschen, übergeben Sie als Wert für eine Variable null.
ja
sessionController Parameter ist definiert
Führt die Anpassung der Variablen mit einem alternativen sessionController durch, um andere Rechte zu erhalten.

Parameter ist nicht definiert
Führt die Anpassung der Variablen mit dem Benutzer aus, der den Aufruf der Funktion gestartet hat.
nein


Transaktionen

Rufen Sie die Funktion auf, sperrt das System den Workflow für andere Funktionsaufrufe. Nur eine Funktion kann den Workflow behandeln.

Tipp: Um unnötig längere Verarbeitungszeiten des Funktionsaufrufs zu vermeiden, rufen Sie set in einem geforkten Bereich auf.


Beispiel

/* global sca */

let workflow = require('common/workflow');
// Set the value of variable1 to 'Wert 1' and remove variable2
workflow.set('tokenId', {
  variable1: 'Wert1',
  variable2: null
}, sca);

start

Startet einen im System zur Verfügung stehenden Workflow und liefert die UUID des Workflows.

Mit der UUID können Sie die Funktion tokens die Tokens des Workflows abfragen.


Syntax

workflow.start(workflow, variables, sessionController);


Parameter

Parameter Beschreibung Pflicht
workflow Definiert den zu startenden Workflow.
  • Geben Sie den vollständigen Pfad zu einem Workflow an.
  • Das System bricht die Funktion mit einem Fehler ab, sofern es den Workflow nicht findet.
ja
variables Definiert Variablen, die Sie dem zu startenden Workflow übergeben möchten.

Das System übergibt eine Map aus Key-Value-Paaren, wobei der Key dem Namen der Variablen entspricht und Value dem Wert der zukünftigen Variablen.
ja
sessionController Parameter ist definiert
Startet den Workflow mit einem alternativen sessionController, um andere Rechte zu erhalten.

Parameter ist nicht definiert
Startet den Workflow mit dem sessionController des Benutzers, der den Workflow gestartet hat.
nein


Beispiele

Diese Beispiele zeigen, wie Sie einen Workflow etwa über den agorum core smart assistant konfigurator einbinden, um den Workflow über Ihr eigenes Kontextmenü zu starten:

Im Hintergrund, ohne direktes Öffnen einer UI:

/* global sc */

let workflow = require('common/workflow');

let myWorkflow = workflow.start('agorum.testworkflows.myFirstWorkflow', {
   variable: 'Text'
}, sc);

Die UI öffnet sich und kann vom Benutzer bearbeitet werden:

let workflow = require('common/workflow');

let instance = workflow.start('agorum.testworkflows.myFirstWorkflow', {
  variable: 'Text'
});

workflow.tokens(instance)[0];

run

Startet ebenso wie die Funktion start einen Workflow.

Da das System keine agorum core-Objekte anlegt, können keine Zwischenstände persistiert werden, d. h. es werden nur nicht interaktive Workflows unterstützt, die nach ihrem Start vollständig durchlaufen und alle erzeugten Tokens beenden.

Sollten entgegen dieser Vorgabe am Ende der Ausführung aktive Tokens verbleiben, bricht die Verarbeitung stattdessen mit einem Fehler ab.


Syntax

workflow.run(workflow, variables, sessionController);


Parameter

Parameter Beschreibung Pflicht
workflow Definiert den zu startenden Workflow.
  • Geben Sie den vollständigen Pfad zu einem Workflow an.
  • Das System bricht die Funktion mit einem Fehler ab, sofern es den Workflow nicht findet.
ja
variables Definiert Variablen, die Sie dem zu startenden Workflow übergeben möchten.

Das System übergibt eine Map aus Key-Value-Paaren, wobei der Key dem Namen der Variablen entspricht und Value dem Wert der zukünftigen Variablen.
ja
sessionController Parameter ist definiert
Startet den Workflow mit einem alternativen sessionController, um andere Rechte zu erhalten.

Parameter ist nicht definiert
Startet den Workflow mit dem sessionController des Benutzers, der den Workflow gestartet hat.
nein


Beispiel

In diesem Beispiel wird der Workflow agorum.testworkflows.nonInteractive ausgeführt und die abschließenden Instanz-Variablen in der Variable result hinterlegt.

let workflow = require('common/workflow');

let result = workflow.run('agorum.testworkflows.nonInteractive', {
  variable: 'Test'
});

tokens

Stellt die Tokens eines Workflows für die weitere Verarbeitung bereit


Syntax

workflow.tokens(workflowId);


Parameter

Parameter Beschreibung Pflicht
workflowId Definiert die ID des Workflows.

Geben Sie die UUID des Workflows an.

Das System:

  • bricht die Funktion mit einem Fehler ab, sofern es den Workflow nicht findet
  • stellt ein leeres Array zur Verfügung, wenn hinter der übergebenen UUID kein Workflow steht oder ein Workflow keine Tokens besitzt
  • ermittelt die durch die UUID übergebenen Tokens des Workflows und stellt die Tokens über ein Array mit den Token-IDs (UUIDs) zur Verfügung

Tipp: Sie können durch die Funktionen get und set dieser Bibliothek die Tokens weiter verarbeiten.

ja


Beispiel

let workflow = require('common/workflow');
let tokens = workflow.tokens('1234-5678-90123');
tokens.forEach(token => {
  console.log(token);
});

instance

Liefert das Verzeichnis des Workflows, dem das übergebene Token zugehörig ist.


Syntax

workflow.instance(tokenId);


Parameter

Parameter Beschreibung Pflicht
tokenId Definiert die ID des Tokens.

Geben Sie die ID, UUID oder den vollständigen Pfad zum Token an.

Tipp: Verwenden Sie die Funktion tokens, um die ID eines Tokens zu ermitteln.

ja


Beispiel

let workflow = require('common/workflow');
workflow.instance('1234-5678-90123');