Durchsuchbare Dokumentation aufrufen | Zurück zur Dokumentationsübersicht
Navigation: Dokumentationen agorum core > agorum core workflow 3.0 > Übersicht vorhandener Knoten
Interne ID: agorum.flow.commit
Dieser Knoten beendet die Verarbeitung des aktuellen Tokens und setzt sie im Hintergrund fort. Dadurch kann der Benutzer direkt mit der Bearbeitung des nächsten Tokens fortfahren, ohne auf die nachfolgenden Schritte warten zu müssen.
Wenn bei der Hintergrundverarbeitung ein Fehler auftritt, hat der Workflow die Möglichkeit, darauf zu reagieren. Dazu prokolliert der commit-Knoten den Fehler.
Bei der Hintergrundverarbeitung verlässt der Workflow den Knoten zunächst durch das Outlet try. Stößt die Verarbeitung dabei auf einen Fehler, startet der Workflow einen weiteren Versuch, dieses Mal über das Outlet catch. Tritt hierbei ebenfalls ein Fehler auf, bricht der Verarbeitungsversuch ab, der Fehler wird protokolliert und die Variable sys_acw_error gesetzt.
Die Variable sys_acw_error enthält zwei Abschnitte: den Stacktrace im Abschnitt stack und die Fehlermeldung im Abschnitt message. Sie können die Fehlermeldung nutzen, etwa um eine Information für Benutzer über den UI-Knoten auszugeben.
Standard | Veränderbar? | Weitere Endpoints möglich? |
---|---|---|
Default (Inlet) | Nein, kann nur ausgeblendet werden. | ja, beliebig viele |
try (Outlet) | Nein, kann nur ausgeblendet werden. | nicht nötig |
catch (Outlet) | Nein, kann nur ausgeblendet werden. | nicht nötig |
Dieser Knoten besitzt keine Parameter.
Sie können den Protokoll-Inhalt der Variable sys_acw_error etwas wie folgt im UI-Knoten verwenden, um Benutzer in der Oberfläche über den Fehler zu informieren:
Die Ausgabe für den Benutzer sieht wie folgt aus, wenn Sie sie einfach durchreichen.
In diesem Beispiel wird die Fehlermeldung aus der Variable sys_acw_error mit dem Label Meldung und der Stacktrace mit dem Label Stack dem Benutzer angezeigt:
let aguila = require('common/aguila'); let widget = aguila.create({ type: 'agorum.composite.wrapper', wrap: { type: 'agorum.composite.form.basic', name: 'form', labelPosition: 'top', elements: [ { type: 'agorum.composite.form.element.text', name: 'errorMessage', label: 'Meldung', readOnly: true, }, { type: 'agorum.composite.form.element.text', name: 'errorStack', label: 'Stack', textArea: true, readOnly: true, monospace: true, }, // buttons { type: 'agorum.spacer', height: 24, }, { type: 'agorum.hbox', items: [ { type: 'agorum.spacer', flexible: true, }, { type: 'agorum.composite.form.element.button', name: 'ok', text: 'OK', icon: 'aguila-icon check', }, ], }, ], }, }); let form = widget.down('form'); widget .incoming('value', value => { let error = value.sys_acw_error || {}; form.value = { errorMessage: error.message || '', errorStack: error.stack || '', }; }) .outgoing('value', () => {}); form.on('action', action => { switch (action.name) { case 'ok': widget.fire('leave', 'ok'); break; } }); widget;