Abbrechen eines Workflows

  • Freigeben Version: Yokohama
  • Aktualisiert 30. Januar 2025
  • 2 Minuten Lesedauer
  • 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

    Beim Abbrechen eines Workflows wird versucht, den Workflow ordnungsgemäß zu stoppen, indem ein Abbruchbefehl in die Workflow-Engine eingegeben wird.

    Prozedur

    1. Navigieren zu Alle > Workflow > Aktive Kontexte.
    2. Wählen Sie einen Workflow-Kontextsatz aus.
    3. Konfigurieren Sie das Formularlayout, um dem Formular das Skriptfeld „Bei Abbruch“ hinzuzufügen.
      Ausführliche Informationen zum Konfigurieren des Formularlayouts finden Sie unter Configuring the form layout.
    4. Wählen Sie den verwandten LinkAbbrechen.
      Eine Bestätigung wird angezeigt.
      Abbrechen Bestätigung
    5. Klicken Sie auf OK.
      Das Workflowmodul versucht, den Workflow ordnungsgemäß abzubrechen.
      Auf Abbruch warten

      Wenn der Workflow nicht auf den Abbruchbefehl reagiert, wird die Option Abbruch erzwingen angezeigt.

      Abbruch erzwingen
    6. Klicken Abbrechen erzwingen Um den Thread zu unterbrechen, wird der Workflow aktiv ausgeführt, oder klicken Sie auf Warten Sie weiter um fortzufahren, bis der Workflow ordnungsgemäß abgebrochen wurde.
      Warnung:
      Erlauben Sie einem Workflow, wann immer möglich, ordnungsgemäß abzubrechen. Das Erzwingen eines Workflows zum Abbrechen kann dazu führen, dass verwandte Workflows und Skripts nicht aufgelöst werden. Sie können ein On-Cancel-Skript verwenden, um nicht aufgelöste Artefakte aus einem abgebrochenen Workflow zu entfernen.

    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

    Abzubrechende Skripts werden asynchron im globalen Bereich ausgeführt. Ihre Instanzarbeitsauslastung bestimmt, wann das System das Skript für Abbruch plant und ausführt.
    Wichtig:
    Da das System stornierbare Skripts aus dem globalen Bereich ausführt, können bereichsbezogene Skripteinbindungen nicht aufgerufen oder ausgeführt werden.

    Prozedur

    1. Navigieren zu Alle > Workflow > Workflow-Versionen.
    2. Wählen Sie eine Workflow-Version aus, die Sie ausgecheckt haben.
      Nicht ausgecheckte Workflow-Versionen können nicht bearbeitet werden.
    3. Bearbeiten Sie das Feld Skript bei Abbruch.
      Möglicherweise müssen Sie das Formular konfigurieren, um dieses Feld hinzuzufügen.
    4. Klicken Sie auf Aktualisieren.

    Beispiel

    Dieses Beispielskript fügt einem Datensatz eines angeforderten Elements [sc_req_item] einen Kommentar hinzu, der angibt, dass der Workflow für diese Anforderung abgebrochen wurde.
    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();
    }