Durchsuchbare Dokumentation aufrufen

Zurück zur Dokumentationsübersicht

Auf Workflows per JavaScript zugreifen

Sie können in diversen Modulen per JavaScript auf einen bestehenden Workflow zugreifen. In folgenden Modulen ist der Zugriff auf einen Workflow möglich:

Informationen zur JavaScript-Bibliothek common/workflow siehe JavaScript-Bibliothek common/workflow.

smart assistant konfigurator


Workflow über das Kontextmenü starten

Sie können direkt über das Kontextmenü auf einen vorhandenen Workflow zugreifen. Dazu erstellen Sie eine Aktion im smart assistant Konfigurator.

  1. Öffnen Sie Weitere Apps > smart assistant Konfigurator.
  2. Wählen Sie das Konfigurationsprojekt aus, in dem sich Ihre Workflowdefinitionen befinden.
  3. Klicken Sie in der Anzeige links auf den Ordner Aktionen.

    Ergebnis: Sie können über das Menü Neu über der Ordneranzeige und die Optionen in der Mitte Anzeige neue Aktionen erstellen.
  4. Erstellen Sie eine neue Aktion durch Klicken auf Client-Aktion.
  5. Geben Sie den Namen der neuen Aktion und optional eine ACL und einen Selektor an. Klicken Sie OK.

    Ergebnis: Sie können die Aktion im Bearbeiten-Fenster konfigurieren.
  6. Tragen Sie den JavaScript-Code ein, über den der Workflow aufgerufen wird, siehe
  7. Optional: Geben Sie ein Symbol an, das im Kontextmenü angezeigt wird.
  8. Speichern Sie die Konfiguration über Datei > Speichern links über der Ordnerstruktur.

Beispiele für Workflowabfragen über UI-Tokens

Über folgende Beispielskripte greifen Sie über Ihr eigenes Kontextmenü direkt auf den angegebenen Workflow zu, um ihn zu starten.

Beispiel 1:

/* global sc, sca, folder, objects, data */

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

workflow
.tokens(workflow.start('agorum.doc.test.multiple.tokens', {
  sys_acw_attachments: objects.map(object => object.UUID),
}))
.find(token => (workflow.get(token) || {}).sys_acw_interaction === 'ui');

Beispiel 2:

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

// workflow is started with variable "resubmitInfo" on click
let acwf = workflow.start('agorum.doc.test.myFirstWorkflow', {
  resubmitInfo: 'Hier steht schon eine Wiedervorlage-Info',
});

// get the visible UI tokens of the user
let uiTokens = workflow
  .tokens(acwf)
  .filter(token => objects.tryFind(token) && workflow.get(token).sys_acw_interaction === 'ui');

// first token …
uiTokens[0];

// … or all tokens
//uiTokens;

Daten des Workflows über das Kontextmenü verändern

Über folgendes beispielhaftes Skript greifen Sie über Ihr eigenes Kontextmenü direkt auf den angegebenen Workflow zu, um Variablen verändern.

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

let tokenId = '1279074';
let variables = {
  resubmitInfo: 'Hier steht schon ein Wiedervorlage-Info: Neu',
};

// set variable of the token
workflow.set(tokenId, variables);

// the workflow must be assigned in order to use "leave"
// if not, acquire can be called first

// first acquire the token 
workflow.acquire(tokenId);

// then run "leave" 
workflow.leave(tokenId, 'ok', {
  resubmitInfo: 'Hier steht schon ein Wiedervorlage-Info: Ende',
});

// get all variables of the token
//workflow.get(tokenId);

Einen Workflow über aguila starten


Sie können einen Workflow direkt aus einer aguila-Oberfläche starten, etwa über einen Button.

Das folgende Skript zeigt, wie Sie folgenden einfachen Beispielworkflow über einen Button starten und das UI-Token öffnen.

Beispielworkflow

Das Skript erstellt einen Start-Button, über den der Benutzer den Workflow öffnen kann.

let aguila = require('common/aguila');
let workflow = require('common/workflow');
let service = require('filingassistant/service');

let widget = aguila.create({
  type: 'agorum.button',
  text: 'Start',
  width: 200,
});

widget.on('clicked', () =>
  aguila
    .fork(() =>
      workflow
        .tokens(workflow.start('agorum.doc.test.multiple.tokens'))
        .find(token => (workflow.get(token) || {}).sys_acw_interaction === 'ui')
    )
    .then(token => service.open(token))
);

widget;

Weitere Module


Bei den folgenden Modulen greifen Sie über die nachstehenden Skripte direkt auf den angegebenen Workflow zu, um ihn zu starten oder Variablen zu verändern:

Daten des Workflows abholen


Alle Variablen des Tokens holen

workflow.get(tokenId);

Vollständiges Beispiel: Workflow starten

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

// workflow is started with variable "resubmitInfo" on click
let acwf = workflow.start('agorum.tb.testworkflows.myFirstWorkflow', {
  resubmitInfo: 'Hier steht schon eine Wiedervorlage Info',
});

// get the visible UI tokens of the user
let uiTokens = workflow
  .tokens(acwf)
  .filter(token => objects.tryFind(token) && workflow.get(token).sys_acw_interaction === 'ui');

// first token …
uiTokens[0];

// … or all tokens
//uiTokens;

Vollständiges Beispiel: Daten des Workflows verändern

Im Workflow werden Variablen verändert und danach ein leave zum n. Konten ausgeführt.

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

// get workflow with variable "resubmitInfo"
let tokenId = '1279074';
let variables = {
  resubmitInfo: 'Hier steht schon ein Wiedervorlage-Info: Neu',
};

// set the token variable
workflow.set(tokenId, variables);

// run "leave" and modify "resubmitInfo" variable
// the workflow must be assigned to use "leave" 
workflow.leave(tokenId, 'ok', {
  resubmitInfo: 'Hier steht schon ein Wiedervorlage-Info: Ende',
});