Durchsuchbare Dokumentation aufrufen | Zurück zur Dokumentationsübersicht
Navigation: Dokumentationen agorum core > agorum core workflow 3.0
In dieser Dokumentation erfahren Sie anhand eines Beispiels, wie Sie einen eigenen Subworkflow anlegen, mit Funktionen, ausstatten, den Subworkflow in einen Workflow einbetten und wie Sie Schaltflächen in einer Bedienoberfläche anlegen. Dieser Vorgang kann ähnlich für die anderen Parameter, die in der Workflowlibrary beschrieben werden, angewandt werden.
Diese Dokumentation beschreibt die Anlage und die Parameter / Werte jedes Knotens. Anschließend folgt eine Beschreibung der Funktionsweise jedes Knotens, damit Sie verstehen, welche Aufgaben der jeweilige Knoten erfüllt und wie er im abgebildeten Subworkflow funktioniert.
Hinweise:
Bei allen nachfolgend aufgeführten Bezeichnungen / Variablen / Werten handelt es sich um Beispiele. Sie müssen diese Beispiele nicht 1:1 übernehmen, sondern können eigene Bezeichnungen / Variablen / Werten verwenden.
Das hier gezeigte Beispiel gewährt nur einen grundsätzlichen Einblick in die Erstellung eines Subworkflows. Möchten Sie einen tieferen Einblick in die detailliertere Konfiguration von Workflows erhalten, nehmen Sie gerne an unserer Schulung zur Konfiguration von Workflows teil.
Nachdem Sie die in dieser Dokumentation beschriebenen Schritte durchgeführt haben, sieht Ihr konfigurierter Subworkflow mit Schaltflächen wie folgt aus:
Um den Subworkflow umzusetzen, legen Sie einen Workflow an, der aus den folgenden Knoten besteht:
Achtung: Schwerwiegende Fehler und unerwünschtes Verhalten im Workflow durch falsch konfigurierte Subworkflows. Ein solcher Subworfklow ändert die Token-Variablen des Workflows. Legen Sie einen Subworkflow immer mit den Knoten Initialisiere Subworkflow und Finalisiere Subworkflow an und verwenden Sie eine eindeutige Variable.
Tipp: Verwenden Sie bei größeren Subworkflows den Knoten aaa.sample.node (Vorlage für Knoten). Dieser dient als Vorlage für Subworkflows und enthält bereits die beiden Knoten Initialisiere Subworkflow und Finalisiere Subworkflow (siehe Subworkflows einrichten).
Im Workflow befüllen Sie folgende Parameter:
agorum:agorum-logo;color=#0069b5|agorum:circle;color=#00b2cc;slot=bottom-right;scale=0.7|ionicon:alert;color=white;slot=bottom-right;scale=0.7
// Configuration widget for this workflow let builder = require('/agorum/roi/customers/acworkfloweditor/js/utils/configuration-builder')(); let basicParameters = require('/agorum/roi/customers/agorum.workflow.library.basic/js/basic-parameters'); // define the configuration for the node let config = () => [ // buttons basicParameters('buttons', { name: 'buttons' }) ]; // export functions module.exports = { widget: () => builder.build(config()), config: config };
Im 2. Schritt legen Sie den Knoten Initialisiere Subworkflow an.
Im Knoten befüllen Sie folgenden Parameter:
agorum_test_subworkflow
Dieser Knoten initialisiert den Subworkflow. Ein Variablenname wird verwendet, damit dieser Workflow eindeutig zuzuordnen ist.
Im 3. Schritt legen Sie den Knoten ui an.
Im Knoten befüllen Sie folgenden Parameter:
let aguila = require('common/aguila'); let buttonHelper = require('/agorum/roi/customers/agorum.workflow.library.basic/js/aguila/buttons-helper'); // Create form for workflow step. // This sample contains some common elements, feel free to use or remove them let form = aguila.create({ type: 'agorum.composite.form.basic', labelPosition: 'top', elements: [ // some description { type: 'agorum.textDisplay', // use _acmsg:key=Text for translation // you have to activate translation in workflow settings text: '_acmsg:title=This is a short description of this mask' }, // a text input field { type: 'agorum.composite.form.element.text', name: 'sampleText', label: '_acmsg:sampleText.label=Text', validation: [ { // this value is required required: true } ] }, // buttons { type: 'agorum.spacer', height: 24 }, { type: 'agorum.hbox', name: 'buttonBox', items: [] } ] }); let buttonBox = form.down('buttonBox'); let currentButtonParams; let drawButtons = buttons => { let items = buttonHelper.build(buttons, button => { if (button.validate) { if (form.validate()) { form.fire('leave', button.outlet); } } else { form.fire('leave', button.outlet); } }); buttonBox.items = items; }; // sample for accessing variables // all token variables are available in the form value form.on('valueChanged',value => { //parse buttons // replace agorum_test_subworkflow with your parameterName of your initialize node let buttonParams = value.sys_acw_internal.agorum_test_subworkflow.parameters.buttons || []; // if ui is reused, check for changes in button parameters, if the buttons have changed // redraw them if (JSON.stringify(currentButtonParams) !== JSON.stringify(buttonParams)) { currentButtonParams = buttonParams; if (!buttonParams || !buttonParams[0]) { throw new Error('acmsg:error.button.noButtons=no buttons defined in parameters'); } drawButtons(buttonParams); } }); form;
agorum_test_subworkflow_outlet
Dieser Knoten erstellt eine UI, in der der Bearbeiter später die konfigurierten Schaltflächen sehen und anklicken kann.
Im 4. Schritt legen Sie den Knoten Finalisiere Subworkflow an.
Im Knoten befüllen Sie folgenden Parameter:
agorum_test_subworkflow
Dieser Knoten löst die im Knoten Initialisiere Subworkflow eingefügte Variable wieder auf, es handelt sich allerdings hierbei nur um eine Variable, die in der Substruktur vorhanden ist. Deshalb legen Sie im nächsten Schritt einen Skript-Knoten, der die Variable endgültig aufräumt.
Im 5. Schritt legen Sie den Knoten Skript an.
Im Knoten befüllen Sie folgenden Parameter:
/* global sc, sca, token, instance, outlets, inlet, parameters */ // leave the outlet that has been set via the dynamic configured button in the ui let outlet = token.variables.agorum_test_subworkflow_outlet; // clean up delete token.variables.agorum_test_subworkflow_outlet; token.leave(outlet);
Dieser Knoten verlässt das Outlet, das über die dynamisch konfigurierte Schaltfläche im Knoten ui über den Parameter Outlet Variable eingestellt wurde und räumt die Outlet Variable agorum_test_subworkflow_outlet gleichzeitig auf. Dadurch wird der Hauptworkflow nicht durch Token-Variablen des Subworkflows beeinflusst.
Damit der Subworkflow in anderen Workflows verwendet werden kann, deployen Sie den Subworkflow.
Im Knoten befüllen Sie folgenden Parameter:
Damit Sie sehen, welche Schaltflächen ein Benutzer in der Bedienoberfläche angeklickt hat, legen Sie im Workflow nachfolgend zweimal den Knoten Log an.
In den beiden Knoten befüllen Sie folgende Parameter:
Abbrechen angeklickt
Ok angeklickt
Diese Knoten loggen, welchen Schaltfläche ein Benutzer in der Bedienoberfläche angeklickt hat und damit, durch welches Outlet der Knoten verlassen wurde.
Wenn Sie den Workflow mit dem Knoten SubworkflowBeispiel ausführen, sollte die Oberfläche folgendermaßen aussehen:
Die Schaltflächen sollten jetzt anklickbar sein und ihre entsprechende Funktion ausführen. Welche Schaltflächen angeklickt wurden, sehen Sie dank der beiden log-Knoten zudem im Protokoll (Log).