Rollback von Aufgaben und Workflows

Sie können Workflows und Aufgaben in Workflows rückgängig machen. Rollbacks stellen Workflows oder Aufgaben in einem Workflow in einem früheren Stadium des Ausführungsprozesses wieder her. Mit der Rollback-Funktion können Sie Fehler beheben und Änderungen rückgängig machen. Als Entwickler und Objektdesigner konfigurieren Sie das Rollback-Verfahren auf der Seite Rollback von Objekten, die Teil eines Workflows sein können. Als Entwickler und Objektdesigner oder als Operator oder Manager führen Sie im Workflow-Monitor Rollbacks an Workflows oder an Aufgaben in Workflows durch.

Wichtig! Das Zurücksetzen ist möglich, solange die Aufgabe noch nicht deaktiviert wurde und noch im Workflow-Monitor sichtbar ist. Die Ausführung kann ganz oder teilweise abgeschlossen werden. Wenn der Workflow, den Sie zurücksetzen, ein untergeordneter Workflow ist, darf der oberste Workflow noch nicht beendet sein.

Diese Seite beinhaltet Folgendes:

Übersicht

Die Ausführung einer Aufgabe in einem Workflow hängt von der Ausführung ihres Vorgängers ab. Eine Aufgabe kann nicht erfolgreich beendet werden, wenn ihre Vorgängeraufgabe fehlschlägt oder nicht das erwartete Ergebnis liefert. Ein Rollback stellt Aufgaben und Workflows auf ihren letzten erfolgreichen Status zurück und ermöglicht es Ihnen, die fehlgeschlagenen Aufgaben erneut auszuführen.

Arten von Rollbacks

Erstellen Sie Ihre eigenen benutzerdefinierten Objekte, um Backups und Rollbacks zu verarbeiten, oder verwenden Sie dateibasierte Prozesse, die sofort verfügbar sind. Sie können benutzerdefinierte und dateibasierte Rollbacks kombinieren.

  • Benutzerdefiniert

    Sie legen die ausführbaren Objekte an, die Backup- und Rollback-Operationen durchführen. Sie ordnen sie den ausführbaren Objekten zu, die Sie für das Rollback aktivieren möchten.

  • (nur UNIX- und Windows-Jobs und FileTransfers), dateibasiert

    Vorkonfigurierte Datei-Backup-Prozesse. Die von einer Aufgabe verarbeiteten Dateien werden automatisch in einem Backup-Ordner gespeichert (<Backup-Ordner>/<Mandant>/<Datum>/<RunID>). Wenn die Aufgabe zurückgesetzt wird, kopiert das System die Dateien in das Verzeichnis, das auf der Seite Rollback angegeben ist. Wenn auf der Seite Rollback die Option Vor dem Wiederherstellen löschen aktiviert wurde, wird der Inhalt des Zielverzeichnisses vor dem Rollback-Vorgang gelöscht. Das verhindert Kopierfehler. Unterordner werden nur gelöscht, wenn die Option „Unterverzeichnisse einbeziehen“ aktiviert ist.

    Vorbedingung: Legen Sie Windows PowerShell als Interpreter in der INI-Datei des betroffenen Windows-Agenten fest. Verwenden Sie die Parameter ECPEXE= und EXPEXT= im Abschnitt [GLOBAL] der INI-Datei. Weitere Informationen finden Sie hier: Windows-Agent 64-Bit.

    Beispiel

    ECPEXE=C:\Windows\system32\WindowsPowerShell\v1.0\powershell.exe -file

    ECPEXT=ps1

    Hinweis: Das System verwendet die Objekte FILE.BACKUP.WINDOWS und FILE.ROLLBACK.WINDOWS, die standardmäßig im Mandanten 0 verfügbar sind. Zur Änderung der Powershell-Script-Rechte öffnen Sie auf dem betreffenden Windows-Rechner ein Powershell-Fenster und geben das folgende Kommando ein:

    Set-ExecutionPolicy remotesigned

Hinweis: Dateibasierte Rollbacks werden nach benutzerdefinierten Backup- und Rollback-Aufgaben verarbeitet, wenn Sie beide Varianten für die Aufgabe definiert haben.

Phasen des Rollback-Prozesses

Wenn Sie ein ausführbares Objekt definieren, das Sie in einen Workflow einfügen können, konfigurieren Sie dessen Rollback-Vorgang auf der Seite Rollback. Ein Rollback-Prozess besteht aus den folgenden Schritten:

  1. Sichern des Status der Aufgaben und der Workflows vor ihrer Ausführung.

    Backup-Aufgaben werden immer ausgeführt und treten nach der Aktivierung des Objekts, aber vor der Generierung auf. Wie das Objekt aktiviert wird, spielt keine Rolle. Das Objekt startet erst, wenn die Backup-Aufgaben erfolgreich abgeschlossen wurden.

    Wenn die Backup-Aufgabe erfolgreich abgeschlossen wurde, wird die Objekteigenschaften-Variable &RB_CBACKUP_RUNID# automatisch in der Aufgabe erstellt, die das Backup ausgelöst hat. Diese Variable speichert die RunID der Backup-Aufgabe.

  2. Setzt die Ausführung zurück.

    Geben Sie das Objekt an, das die Modifikationen rückgängig macht, die den Ausführungsfehler verursacht haben. Rollbacks werden nur auf Benutzeranforderung gestartet. Rollbacks können nur verarbeitet werden, wenn die Aufgabe im Rollback-Modus ausgeführt wird.

Rollbacks automatisieren

Sie können Rollbacks wie folgt automatisieren:

  • Verwenden Sie die Script-Funktion ROLLBACK_UC_OBJECT, um Rollbacks in Ihren Scripts durchzuführen. 
  • Definieren Sie Nachbedingungen in den Aufgabeneigenschaften, um Rollback-Aktionen zu automatisieren, wie beispielsweise das automatische Zurücksetzen des übergeordneten oder obersten Workflows.

Weitere Informationen finden Sie hier:

Rollbacks auslösen

Voraussetzungen:

  • Die Option Rollback ermöglichen ist auf der Seite Rollback der betroffenen Aufgabe aktiviert.
  • Die Backup-Aufgabe hat die erforderlichen Backups erstellt (falls die Aufgabe Backups benötigt).
  • Die Aufgabe wurde bereits beendet.
  • Wenn sich die Aufgabe in einem Workflow befindet, muss der übergeordnete oder oberste Workflow noch aktiv sein.
  • Wenn Sie einen Workflow zurücksetzen, muss der Workflow selbst noch aktiv sein. Wenn Sie einen untergeordneten Workflow zurücksetzen, muss der oberste Workflow noch aktiv sein.

Führen Sie eine der folgenden Aktionen in der Process Monitoring-Perspektive aus, um ein Rollback zu starten:

  • Klicken Sie mit der rechten Maustaste auf die Aufgabe im Workflow-Monitor und wählen Sie Rollback der Aufgabe oder Rollback zu dieser Aufgabe aus.
  • Klicken Sie mit der rechten Maustaste auf die Aufgabe in der Liste Aufgaben und wählen Sie Rollback der Aufgabe.

Der Rollback-Prozess führt das Rollback-Objekt aus und stellt den Zustand vor der Ausführung der Aufgabe wieder her. Nachdem Sie die Aufgabe oder den Workflow zurückgesetzt und das Problem behoben haben, das zum Rollback geführt hat, führen Sie die Aufgabe oder den Workflow erneut aus.

Hinweis: Sie können Rollbacks wiederholt ausführen, mit Ausnahme von Aufgaben, die den Status FAULT_*_BACKUP haben.

Weitere Informationen finden Sie hier:

Aufgabenstatus bei Backup und Rollback

Aufgaben, die zurückgesetzt werden, befinden sich im Status "Aktiv", wie im Workflow-Monitor zu sehen ist (siehe "Workflows überwachen"). Nach Abschluss des Rollbacks gilt auch die Aufgabe als beendet. Aufgaben ohne Rollback-Definition enden mit dem Status ENDED_ROLLBACK_EMPTY.

Aufgaben haben die folgenden Status während benutzerdefinierter Backup- und Rollback-Prozesse:

  • Benutzerdefiniertes Backup
    Benutzerdefiniertes Backup-Objekt wird ausgeführt
  • FAULT_CUSTOM_BACKUP
    Aufgabe wurde aufgrund eines Fehlers während des Laufs abgebrochen
  • Benutzerdefiniertes Rollback
    Benutzerdefiniertes Rollback-Objekt wird ausgeführt
  • FAULT_CUSTOM_ROLLBACK
    Aufgabe wurde aufgrund eines Fehlers während des Laufs abgebrochen

Die Aufgabe hat folgende Status bei dateibasierten Backup- und Rollback-Prozessen:

  • Datei-Backup
    Dateibasiertes Backup-Objekt wird ausgeführt
  • FAULT_FILE_BACKUP
    Aufgabe wurde aufgrund eines Fehlers während des Laufs abgebrochen

Wichtig! Rollback-Objekte können nicht gestartet werden, wenn die Aufgabe mit dem Status FAULT_CUSTOM_BACKUP oder FAULT_FILE_BACKUP abgebrochen wird. Beheben Sie die Fehler und starten Sie die Aufgabe erneut.

Workflows zurücksetzen

Aufgaben in Workflows werden in umgekehrter Reihenfolge zurückgesetzt: Der Rollback beginnt am Ende des Workflows und endet am Anfang. Das gleiche Verhalten gilt für alle untergeordneten Workflows. Zum Abschluss werden die Rollback-Aktionen des Workflows selbst gestartet.

Schlägt das Rollback einer Aufgabe fehl (FAULT_CUSTOM_ROLLBACK/FAULT_FILE_ROLLBACK), so wird die Rollback-Durchführung am betreffenden Workflow-Zweig angehalten. Beheben Sie den Fehler und starten Sie den Rollback-Prozess für die abgebrochene Aufgabe erneut.

Hinweis:Rollback-Prozesse ignorieren die Eigenschaften der Workflow-Aufgaben (z. B. die späteste Startzeit), behalten aber das logische Datum bei.

Teil-Rollback

Verwenden Sie das Kommando Rollback zu dieser Aufgabe, um einen Workflow auf eine ausgewählte Aufgabe zurückzusetzen. Der Befehl ruft den Rollback-Pfad ab, der alle direkten und indirekten Nachfolger der Aufgabe innerhalb des Workflows enthält. Wenn eine Aufgabe noch aktiv ist, wartet das System, bis sie beendet ist, und führt dann ihren Rollback durch.

Verschachtelte Workflows

Wenn die Aufgabe selbst ein Workflow ist, werden auch alle untergeordneten Aufgaben des Workflow zurückgesetzt. Dabei gibt es keine Beschränkung für die Verschachtelungstiefe. Wenn das Rollback für einen untergeordneten Workflow startet, wechseln die untergeordneten Aufgaben des geschachtelten Workflows in den Status "Warten auf Rollback".

ForEach-Workflows

Aufgaben in geloopten Workflows werden bei Rollbacks in umgekehrter Reihenfolge abgearbeitet. Die Rollback-Aktionen, die Sie für den Workflow definieren, finden nach der Bearbeitung der Aufgaben statt.

IF-Workflows

Das Rollback wird für jenen Aufgabenzweig vorgenommen, der bei der letzten Durchführung ausgewählt wurde. Die Rollback-Aktionen, die Sie für den Workflow definieren, erfolgen nach dem Rollback des Aufgabenzweiges.

Deaktivierte Aufgaben

Falls eine Aufgabe deaktiviert wurde und sie sich nicht mehr in der Perspektive Process Monitoring befindet, stoppt die Rollback-Durchführung an dieser Stelle. Um den Rollback-Prozess fortzusetzen, wenn eine Aufgabe deaktiviert wurde, starten Sie die Aufgabe neu oder überspringen Sie sie.

Variablen in Backup- und Rollback-Aufgaben

Die Automation Engine stellt vordefinierte Objektvariablen zur Verfügung, die Ihnen bei der Konfiguration von Backup- und Rollback-Aufgaben helfen.

Weitere Informationen finden Sie unter Die Verwendung von Variablen in Backup- und Rollback-Aufgaben.

Rollbacks stoppen

Sie können ein Rollback auf die gleiche Weise stoppen und abbrechen wie einen Workflow.

Wenn das Rollback fehlschlägt, wird das Rollback auf diesem Pfad gestoppt. Vorgänger behalten ihren Status WAITING_FOR_ROLLBACK. Beim Rollback auf einen Vorgänger wird das automatische Rollback mit dem Rollback aller markierten Aufgaben fortgesetzt. Nachfolger von Aufgaben mit dem Status FAULT_ROLLBACK beginnen nicht mit dem Rollback.

Tipp: Kombinieren Sie Funktionen wie das Überspringen von Aufgaben und Haltepunkten mit Rollbacks, um zu verhindern, dass Workflow-Pfade erneut ausgeführt werden.

Wichtig! Das Stoppen des Mandanten oder des Workflows stoppt auch den Rollback.

Aufgaben nach einem Rollback wiederholen

Verwenden Sie den Befehl Fortsetzen im Kontextmenü, um Aufgaben nach einem Rollback neu zu starten. Um einen kompletten Workflow erneut ausführen zu können, muss der Workflow noch aktiv sein. Sie können einzelne Aufgaben wie beispielsweise Jobs jederzeit neu starten.

Das Kommando Fortsetzen startet alle Aufgaben im Workflow neu, die folgende Status haben:

  • ENDED_ROLLBACKED

    Aufgaben, deren Rollback-Prozess erfolgreich abgeschlossen wurde

    Hinweis: Der Befehl Fortsetzen ist nur sinnvoll, wenn mindestens eine Aufgabe den Status ENDED_ROLLBACKED hat.

  • ENDED_ROLLBACK_EMPTY

    Aufgaben, deren Rollback-Prozess aufgrund fehlender Definitionen nicht durchgeführt werden konnte

  • Warten auf Rollback

    Aufgaben, die auf den Rollback-Prozess warten

Hinweise:

  • IF-Bedingungen werden erneut ausgewertet und die entsprechenden Aufgaben ausgeführt.
  • Sie können einen Workflow, der vollständig zurückgesetzt wurde (Status ENDED_ROLLBACK), nicht wiederholen. Sie können den Workflow neu starten.
  • Der Befehl Starten startet keinen Wiederholungslauf. Starten prüft die Vorbedingungen für alle Aufgaben und startet die Aufgaben in beide Richtungen. Aufgaben, die zurückgesetzt wurden, setzen das Rollback fort.
  • Aufgabeneigenschaften wie die späteste Startzeit werden bei der Wiederholung des Workflows berücksichtigt. Das logische Datum wird beibehalten.

Variablen in Wiederholungen

  • Variablen werden nicht zurückgesetzt oder neu initialisiert, wenn Sie eine Aufgabe wiederholen.
  • PromptSet-Variablen verwenden die Werte des letzten Laufs wieder.
  • Objektvariablen verwenden den Wert, der in der Objektdefinition gesetzt ist.

Siehe auch: