Abbrechen eines Workflows
Wenn Sie einen Workflow abbrechen, wird die Ausführung des Workflows abgebrochen und der Workflow-Kontext-Status mit Abgebrochen festgelegt. Um einen auszuführenden Workflow abzubrechen, können Sie das Skript cancelContext(context) nutzen. Sie können ein onCancel-Skript definieren, um nicht aufgelöste Workflow-Aktivitäten zu bereinigen.
Vorbereitungen
Erforderliche Rolle: admin oder workflow_admin
Warum und wann dieser Vorgang ausgeführt wird
Prozedur
Abbrechen eines Workflows mit dem Skript cancelContext(context)
Um einen auszuführenden Workflow abzubrechen, können Sie das Skript cancelContext(context) nutzen. Dieses Skript kann nützlich sein, wenn ein Workflow als Reaktion auf ein Ereignis abgebrochen werden muss oder wenn ein Benutzer einen Workflow manuell abbrechen muss.
Vorbereitungen
Erforderliche Rolle: Administrator
Warum und wann dieser Vorgang ausgeführt wird
Weitere Informationen finden Sie im Abschnitt Workflow - cancelContext(GlideRecord context).
Definieren Sie ein On-Cancel-Skript
Wenn Sie einen Workflow abbrechen, können Datensätze oder Skripts in einem nicht aufgelösten Zustand verbleiben. Wenn Sie beispielsweise einen Servicekatalog-Workflow abbrechen, können Katalogelemente im Warenkorb des anfragenden Benutzers verbleiben. Ein Administrator kann ein On-Cancel-Skript angeben, das ausgeführt wird, wenn der Workflow in den Status "Abgebrochen" wechselt. Dieses Skript kann Benutzer benachrichtigen, Informationen protokollieren oder den Status aller innerhalb einer Workflowaktivität ausgeführten Skripts auflösen. Die sys_id des Workflow-Kontexts ist in diesem Skript über die Variable context_sys_id verfügbar.
Warum und wann dieser Vorgang ausgeführt wird
Prozedur
Beispiel
var grContext = new GlideRecord("wf_context");
grContext.get(context_sys_id);
var grReq = new GlideRecord("sc_req_item");
// The current record may not exist, make sure it exists before modifying it.
if (grReq.get(grContext.id)) {
grReq.comments = "The workflow processing this item was Canceled. Contact your system administrator for further information.";
grReq.update();
}