DEACTIVATE_UC_OBJECT
Verwenden Sie die Skriptfunktion DEACTIVATE_UC_OBJECT, um eine abgeschlossene Aufgabe zu deaktivieren. Mit der Funktion können Sie bereits beendete Aufgaben deaktivieren:
- Aufgaben, die erfolgreich abgeschlossen wurden
- Aufgaben, die abgebrochen wurden
Wichtig!
- Sie können weder Workflows deaktivieren, die aktive Aufgaben enthalten, noch Child-Workflows, die aktive Aufgaben enthalten.
- Um Aufgaben zu deaktivieren, die durch einen Workflow gestartet wurden, müssen Sie den obersten Workflow deaktivieren und sicherstellen, dass keine der Child-Aufgaben aktiv ist.
- Wenn Sie Aufgaben deaktivieren, werden sie aus der Perspektive Process Monitoring entfernt.
Tipp: Sie können in ausführbaren Objekten Einstellungen vornehmen, um die Aufgabe automatisch zu deaktivieren. Weitere Informationen finden Sie imAbschnitt Automatische Deaktivierung.
Syntax
DEACTIVATE_UC_OBJECT (RunID [,FORCED])
Parameter
-
DEACTIVATE_UC_OBJECT
Deaktiviert eine abgeschlossene Aufgabe -
RunID
RunID der zu deaktivierenden Aufgabe
Format: Skriptliteral, Skriptvariable oder Zahl ohne Anführungszeichen -
FORCED
(Optional, nur Workflows) Deaktiviert die Workflow-Aufgabe und alle Child-Aufgaben, unabhängig von ihrem Zustand und den automatischen Deaktivierungseinstellungen in den Child-Aufgaben Alles, was aktiv ist, wird aus der Workflow-Überwachung (EJPP-Tabelle), aber nicht aus der Process Montoring View (EH-Tabelle) entfernt.
Format: AE Name, Skriptliteral oder Skriptvariable
Wichtig!- Das System prüft nicht, ob die Aufgabe, die Sie deaktivieren, in einem Workflow aktiv ist.
- Das System prüft nicht, ob Child-Aufgaben im Workflow aktiv sind.
Beispiel: Das folgende Beispiel erklärt die Logik einer erzwungenen Deaktivierung von Workflow-Aufgaben.
Angenommen, Sie führen einen Workflow mit drei aktiven Aufgaben aus, alle mit festgelegten Abhängigkeiten. Wenn die erste Aufgabe keine Datei findet, werden die folgenden Aufgaben blockiert und beendet. Die Post-Prozess-Seite enthält ein Skript, das den Workflow abbricht und deaktiviert.
Was Sie sehen:
- Die Prozessüberwachungsperspektive zeigt den Workflow-Status ENDED_CANCEL an - manuell abgebrochen.
- Wenn Sie zu den Workflow-Ausführungen gehen, wird der Status ENDED_CANCEL angezeigt - manuell abgebrochen.
- Wenn Sie den Workflow jedoch in "Ausführungen" im Workflow Monitor öffnen, sehen Sie, dass die erste Aufgabe grün ist, als ob sie noch aktiv wäre.
Das Logik dahinter:
Das Deaktivieren ist während einer normalen Deaktivierung nicht möglich, wenn ein Job innerhalb des Workflows ausgeführt wird. Während der normalen Deaktivierung werden die Status im Kontext der Workflow-Tabelle (EJPP) in die Verlaufsdatensätze (AJPP-Tabelle) kopiert. In Workflows, die normal enden, sind diese normalerweise ENDED_OK- ENDED_NOT_OK.
Was nun geschieht, ist, dass der erste Job aufgrund der Verarbeitung der Post-Prozess-Seite noch ausgeführt wird; der Status in der EH-Tabelle ist 1574. Die erzwungene Deaktivierung wird durch die Nachverarbeitung ausgelöst, und der aktuelle Status aus der EJPP-Tabelle wird in die AJPP-Tabelle verschoben und dann aus der EJPP-Tabelle gelöscht.
Die Nachbedingungsverarbeitung ist abgeschlossen, der Job wird beendet, deaktiviert und aus der EH-Tabelle entfernt, und die richtigen Werte werden in die AH-Tabelle kopiert.
Wenn ein Workflow deaktiviert wird, erhält die AJPP-Tabelle keine weiteren Aktualisierungen, z. B. ob der Job richtig abgeschlossen wurde. Der Workflow Monitor lädt andererseits die Informationen aus der AJPP-Tabelle für die RunID, was zeigt, dass der Job noch ausgeführt wird. Deshalb zeigt der Workflow Monitor diesen Job weiterhin in Grün an. Sie können entweder vermeiden, eine erzwungene Deaktivierung während der Nachverarbeitung (Workflow-Logikänderung) anzuwenden oder dies ignorieren. Weitere Informationen zu Datenbanktabellen finden Sie unter Datenbankbereiche.
Rückgabewerte
Die Skriptfunktion gibt die folgenden Werte zurück:
- 12204
Aufgabe kann nicht deaktiviert werden, da Sie Objekte eines Workflows nicht deaktivieren können - 12205
Aufgabe kann nicht deaktiviert werden, da die Aufgabe aktive Child-Aufgaben hat - 12206
Die Statusdefinition ist nicht numerisch - 12207
Die Statusdefinition nicht aufsteigend (von-bis) - 12208
Die Statusdefinition ist syntaktisch falsch - 12209
Die Statusdefinition konnte nicht gefunden werden, sodass das Objekt nicht automatisch deaktiviert wurde - 12210
Die Statusdefinition ist nicht numerisch, deshalb wurde das Objekt nicht automatisch deaktiviert
Beispiel
Das folgende Beispiel aktiviert ein Objekt und wartet auf die Fertigstellung der Aufgabe. Wenn ein Fehler auftritt, sendet das System eine E-Mail an einen Benutzer. Wenn die Aufgabe ohne Fehler abgeschlossen wird, deaktiviert das Skript die Aufgabe.
: SET &ACTOBJ# = ACTIVATE_UC_OBJECT (&OBJ#,WAIT)
: IF &ACTOBJ# = "0"
: SET &ERRNR# = SYS_LAST_ERR_NR ()
: SET &ERRINS# = SYS_LAST_ERR_INS ()
: SET &MESSAGE# = GET_MSG_TXT ( &ERRNR# , &ERRINS# )
: SET &RET# = SEND_MAIL ( "John.Smith@automic.com" ,, &MESSAGE# , "Bitte prüfen. Danke!" )
:ELSE
: SET &DEACTJOB# = DEACTIVATE_UC_OBJECT(&ACTJOB#)
: ENDIF
Siehe auch: