Beispiel: Einen Job aufgrund einer SLM-Übertretung überspringen

In diesem Beispiel muss jeden Tag ein aus drei Jobs bestehender Workflow so früh wie möglich abgeschlossen werden. Der dritte Job in diesem Workflow muss nicht unbedingt an jedem Tag ausgeführt werden. Falls die Ausführung des ersten Jobs in diesem Workflow länger dauert oder die ihm zugewiesene maximale Laufzeit (MRT) überschreitet, soll der dritte Job übersprungen werden; dies soll nur bei dieser bestimmten Ausführung (RunID) des Workflows passieren. Das stellt sicher, dass der Workflow pünktlich abgeschlossen wird.

Diese Seite beinhaltet Folgendes:

Was werde ich lernen?

  • Wie man Variablen nutzt und auflöst.
  • Wie man Funktionen, wie das Ermitteln und Einfügen von RunIDs, in Variablen speichert.
  • Wie man eine Logik in Bedingungen definiert.
  • Wie man Variablen in Bedingungen nutzt.
  • Wie man Variablen in Scripts nutzt.

Was wird in diesem Anwendungsfall beschrieben?

Ein Workflow mit dem Namen JOBP_ACC_203040 enthält drei Jobs: JOBS_ACC_9020, JOBS_ACC_9030 und JOBS_ACC_9040. Die ersten beiden Jobs müssen zwingend jeden Tag ausgeführt werden, aber der dritte ist nicht essenziell. Es ist allerdings von Bedeutung, dass der Workflow so schnell wie möglich abgeschlossen wird. Die gewöhnliche Laufzeit des ersten Jobs ist bekannt und es wurde eine spezifische maximale Laufzeit (MRT) dafür festgelegt. Sie wissen, dass die Laufzeit manchmal länger ist, was zur Folge hätte, dass der Workflow nicht rechtzeitig abgeschlossen wird. Um in so einem Fall sicherzustellen, dass der Workflow rechtzeitig abgeschlossen wird, möchten Sie, dass der optionale Job übersprungen wird, wenn die MRT des ersten Jobs überschritten wird.

Ein SLO-Objekt überwacht die MRT des ersten Jobs. Sie müssen dem SLO-Objekt mitteilen, welche Aktion im Falle einer Übertretung ausgelöst werden soll; dabei wird es sich um die Ausführung eines Script-Objekts handeln, das bestimmte Werte in ein VARA-Objekt schreibt, welches dem dritten (optionalen) Job zugewiesen ist. Das VARA-Objekt erlaubt das Erstellen einer Vorbedingung, die auch dem dritten Job zugewiesen wird, um zu evaluieren, ob dieser übersprungen werden soll (aufgrund der Übertretung) oder nicht (aufgrund der Erfüllung).

Voraussetzungen

Die folgenden Objekte und Abhängigkeiten zwischen Objekten müssen definiert werden:

  • Der Workflow, der drei Jobs enthält, wobei der dritte optional ist.

  • Ein statisches VARA-Objekt, das dem optionalen Job zugewiesen ist. 

    Das VARA-Objekt enthält die RunID des Workflows, solange dieser ausgeführt wird (der Schlüssel), und, falls der erste Job seine MRT überschreitet, einen vom Script-Objekt bereitgestellten Wert (no)

  • Ein SLO-Objekt, das die Laufzeit des ersten Jobs im Workflow überwacht

    Falls der Job die für ihn definierte MRT überschreitet, führt das SLO-Objekt ein Script-Objekt aus.

  • Das Script-Objekt

    Wenn das SLO-Objekt eine Übertretung erkennt, schreibt das Script Folgendes in das VARA-Objekt: 

    • die RunID des Workflows als Schlüssel.
    • den Wert, nämlich no.
  • Eine Vorbedingung für den optionalen Job, welche

    1. überprüft, ob ein Wert (no) im VARA-Objekt festgelegt ist. Das bedeutet, dass die Ausführung des ersten Jobs zu lange dauert. In diesem Fall wird der dritte Job nicht ausgeführt.
    2. die RunID des Workflows aus dem VARA-Objekt entfernt, sobald die aktuelle Ausführung des Jobs abgeschlossen ist.

In diesem Beispiel verwendet

Grafik, die die in diesem Beispiel verwendeten Objekte veranschaulicht

Erstellen Sie einen Workflow mit drei Jobs

Screenshot des Workflows

Überwachen Sie die maximale Laufzeit des ersten Jobs

  1. Öffnen Sie JOBS_ACC_9020. Das können Sie direkt im Workflow machen, indem Sie durch einen Klick mit der rechten Maustaste auf den entsprechenden Eintrag das Kontextmenü öffnen und dort Bearbeiten auswählen.

    Anschließend öffnen sich die Seiten der Jobdefinition und zeigen das agentenspezifische Blatt an.

  2. Erweitern Sie die Registerkarte Allgemein und wählen Sie Laufzeit.

  3. Aktivieren Sie im Abschnitt Max./Min. Laufzeiten das Kontrollkästchen MRT überwachen.

  4. In diesem Beispiel verwenden wir die Berechnungsmethode Fixwert. Aktivieren Sie diese Option und geben Sie die Dauer ein. Zum Beispiel:

    Screenshot mit den maximalen Laufzeiteinstellungen

    Hinweis: Es gibt auch noch andere Methoden zur Berechnung der MRT. Der Abschnitt Nützliche Links am Ende dieser Seite ermöglicht Ihnen den direkten Zugriff auf die Themen, die diese Methoden näher beschreiben.

  5. Speichern Sie Ihre Änderungen.

Erstellen Sie ein statisches VARA-Objekt

Fügen Sie ein statisches VARA-Objekt hinzu und ändern Sie nichts an den Standardeinstellungen der Variablen. In unserem Beispiel heißt dieses Objekt VARA_ACC_9040:

Screenshot mit dem statischen VARA-Objekt

Später werden die Felder der Variable durch das Script-Objekt wie folgt befüllt:

  • Das Feld Schlüssel wird während der Ausführung des Workflows dessen RunID enthalten. Sobald der Workflow abgeschlossen ist, wird der Eintrag gelöscht.
  • Das Feld Wert 1 wird den Wert no enthalten, falls das SLO-Objekt eine Übertretung der Erfüllungskriterien erkennt, d. h. falls die Ausführung des ersten Jobs die definierte MRT überschreitet.
  1. Öffnen Sie JOBS_ACC_9040.

  2. Erweitern Sie die Registerkarte Variablen & Aufforderungen, und wählen Sie Variablen.
  3. Geben Sie in Name den Namen des VARA-Objekts ein, das Sie gerade erstellt haben, nämlich VARA_ACC_9040.
  4. Geben Sie in Wert no ein.

  5. Speichern Sie Ihre Änderungen.

Ein SLO-Objekt erstellen, das den ersten Job überwacht

Falls Sie die dafür notwendigen Rechte besitzen, können Sie dieses das SLO-Objekt in den Perspektiven Process Assembly oder Administration definieren.

In diesem Beispiel werden wir uns nicht näher mit der Definition der allgemeinen SLO-Objekt-Seiten befassen (Seite "Allgemein", Seite "Versionsmanagement", Seite "Dokumentation"), sondern uns auf die objektspezifischen Einstellungen konzentrieren.

  1. Öffnen Sie die Seite Dienstauswahl. Hier geben Sie die Dienst-Begünstigten und den zu überwachenden Dienst (der Job) selbst an. In unserem Beispiel legen wir keine Begünstigten fest.

  2. Definieren Sie ein Objekt, das die zu überwachenden Ergebnisse darstellen muss. In diesem Fall ist das JOBS_ACC_9020.

    1. Verändern Sie nichts an der Dropdown-Liste oben.

    2. Klicken Sie auf Kriterium hinzufügen, um das zu überwachende Objekt einzufügen.
    3. Die folgende Filterbox öffnet sich:

      Screenshot mit den Filteroptionen

      Sie können verschiedene Kriterien für das SLO auswählen, um zu evaluieren, was überwacht werden soll. Wir nutzen den Objektnamen.

    4. Wählen Sie in der Dropdown-Liste Attribut die Option Objektname, falls diese noch nicht ausgewählt ist.

    5. Unter Operation wählen Sie gleich, falls es noch nicht ausgewählt ist.

    6. Geben Sie in das Feld Wert den Namen des Jobs ein. In unserem Fall ist das JOBS_ACC_9020.

    7. Klicken Sie auf OK.

    Hinweis: Das Dienstauswahlkriterium ist nun definiert:

    Screenshot mit dem Kriterium für die Dienstauswahl

  3. Wechseln Sie zur Seite Erfüllungskriterien. Hier definieren Sie die Kriterien, die der Job JOBS_ACC_9020 erfüllen muss, und die Aktionen, die bei Erfüllung/Nichterfüllung ausgeführt werden. Aktivieren Sie im Abschnitt Dienst-Abwicklung die Option Laufzeit: Läuft kürzer als die maximale Laufzeit (MRT) des Dienstes:

    Screenshot mit den Erfüllungskriterien nach Laufzeit

    Später definieren Sie, welche Aktion im Falle einer Übertretung dieses Dienstes ausgeführt wird.

  4. Speichern Sie Ihre Änderungen.

Erstellen Sie ein Script-Objekt, das im Falle einer Übertretung ausgeführt wird

Fügen Sie ein Script-Objekt hinzu, das ausgeführt wird, wenn das SLO-Objekt eine Übertretung der Dienste erkennt.

Screenshot der Prozessseite des Script-Objekts

In unserem Beispiel erhält dieses Script den Namen SCRI.SET_VAR. Das Script wird Folgendes durchführen:

  • Es ruft die Daten des SLO-Objekts ab, das den ersten Job überwacht: Dazu gehören der Name des SLO-Objekts, der Name des Dienstes (der Job) und dessen RunID sowie Daten zur Nachricht, die im Fall einer Übertretung des Dienstes angezeigt wird.
  • Die RunID des Jobs und ermitteln und in das VARA-Objekt (VARA_ACC_9040) schreiben
  • Bei den ersten sechs Variablen handelt es sich um Script-Variablen, die in Objekten benutzt werden können, welche von SLO-Objekten aufgrund einer Übertretung ausgeführt werden. Sie rufen die folgenden Informationen über die überwachten Dienstes ab:
    • &uc_slm_slo_name#

      Der Name des SLO-Objekts, das die Services überwacht

    • &uc_slm_service_name#

      Der Name der überwachten Services (Objekte, in diesem Fall JOBS_ACC_9020)

    • &uc_slm_service_runid#

      Die RunID des überwachten Dienstes, der die Kriterien nicht erfüllt hat. In diesem Fall wird die RunID von JOBS_ACC_9020

    • &uc_slm_service_time#

      Der Zeitpunkt, an dem die Übertretung registriert wurde

    • &uc_slm_violation_msg_number#

      Message ID

    • &uc_slm_violation_msg_insert#

      Die Meldung, die aufgrund der Übertretung bereitgestellt wird. In diesem Fall handelt es sich um die Meldung, die in der für den optionalen Job definierten Vorbedingung angegeben wurde.

  • :SET &PARENT_NR# = GET_PARENT_NR(&uc_slm_service_runid#) ermittelt die RunID der Parent-Aufgabe des Objekts, das die Übertretung verursacht hat. In diesem Fall handelt es sich dabei um die RunID des Workflows, in dem JOBS_ACC_9020 ausgeführt wird.
  • :PUT_VAR VARA_ACC_9040, &PARENT_NR#, "no" schreibt die Werte in das VARA-Objekt, d. h. die RunID des Workflows und den Wert "no", der die Folgeaktion auslöst, welche in der Vorbedingung des optionalen Jobs definiert wurde.

Wählen Sie das Script als Aktion bei Übertretungen aus

Gehen Sie zurück zum SLO-Objekt und definieren Sie das Script als Aktion, die ausgeführt werden soll, wenn der überwachte Job seine MRT überschreitet.

Screenshot des Abschnitts Aktionen

Definieren Sie eine Vorbedingung für den optionalen Job

Wechseln Sie zum Workflow, um eine Vorbedingung für den optionalen Job zu definieren. Die Vorbedingung soll die von VARA_ACC_9040 ermittelten Daten überprüfen und eine bestimmte Aktion (Job überspringen) auslösen, wenn diese Daten einen bestimmten Wert enthalten:

  • Wenn der in das VARA-Objekt geschriebene Wert für die aktuelle RunID NICHT no ist, soll der Job wie gewohnt ausgeführt werden.
  • Wenn der in das VARA-Objekt geschriebene Wert für die aktuelle RunID GLEICH no ist, dann
    • soll der Eintrag für diese RunID aus dem VARA-Objekt entfernt werden.
    • soll der Job nicht ausgeführt werden.

Führen Sie die folgenden Schritte aus:

  1. Wählen Sie den Job JOBS_ACC_9040 aus und klicken Sie in der Workflow-Symbolleiste auf Eigenschaften. Im unteren Teil des Workflow-Editors öffnet sich der Eigenschaftenbereich.

  2. Öffnen Sie die Registerkarte Vorbedingungen.

  3. Klicken Sie auf Vorbedingungen anlegen, um den Bedingungen-Editor zu öffnen:

    Screenshot mit den Vorbedingungen für den Job

    Im linken Bereich finden Sie drei Registerkarten, auf denen Sie Bedingungen, reguläre Aktionen und finale Aktionen auswählen können. Im rechten Bereich legen Sie Ihre Bedingungen fest.

    • Klicken Sie auf Screenshot der Schalte (Erweitern), um das Dialogfeld auf die volle Fenstergröße zu bringen. Klicken Sie auf Screenshot der Schaltfläche (Zuklappen), um es zu reduzieren.
    • Wenn Später bereits eingefügte Bedingungen bearbeiten möchten, klicken Sie auf Screenshot der Schaltfläche (Bearbeiten) oben rechts in dem Dialogfeld.
  4. Öffnen Sie die Registerkarte Bedingungen und wählen Sie Benutzerdefiniert aus.

  5. Ziehen Sie die Bedingung in den linken Bereich. Die Bedingung ist zur Definition bereit:

    Bedingung mit den Feldern IF, ELSE und FINALLY

  6. Definieren Sie die Bedingungseinstellungen. Siehe unten für Anweisungen und Optionen.

  7. Die Vorbedingung ist nun fertiggestellt. Klicken Sie im Dialog auf OK, um zum Workflow-Editor zurückzukehren und Ihre Änderungen zu speichern. Die Vorbedingung wird unterhalb des Workflows angezeigt:

    Workflow-Editor mit Vorbedingung für Aufgabe

Bedingungen definieren

IF-Bedingungen

Klicken Sie auf die Begriffe (VALUE1, OPERATOR oder VALUE2), um den IF-Teil der Bedingungen festzulegen. Anschließend werden die entsprechenden Eingabefelder angezeigt:

IF-Feld

  1. Klicken Sie auf die entsprechende Beschriftung, um Daten für Wert 1 einzugeben; dadurch wird die Variablen-Auswahl aktiviert:

    Wert-Feld und Variablen-Schaltfläche

  2. Klicken Sie auf diese, um den Dialog Variable hinzufügen zu öffnen.

    Hinweis: Stellen Sie sicher, dass Sie in der Dropdown-Liste den Eintrag Variablenobjekte auswählen.

    Suchen Sie nach VARA_ACC_9040 und klicken Sie auf Auswählen, um es einzufügen.

    Dialogfeld "Variable einfügen"

  3. Da  die Workflow-RunID nicht nur im Falle einer Übertretung, sondern auch, falls der Job seine definierte MRT einhält, in das VARA-Objekt geschrieben werden soll, müssen Sie eine zusätzliche Script-Variable eingeben, &$TOP_PROCESSFLOW_RUNID#. In beiden Fällen wird die RunID aus der Variable gelöscht, sobald der Workflow beendet ist.

  4. Wählen Sie in der Dropdown-Liste Operator das Zeichen <>.

  5. Geben Sie im Feld Wert 2 das Wort no ein.

    Screenshot mit den Abschnitten IF und FINALLY

  6. Klicken Sie auf Akzeptieren.

    Das Symbol Screenshot des Symbols innerhalb der Blöcke zeigt an, dass die Bedingung/Aktion mehrmals durchlaufen wird. Handelt es sich um Vorbedingungen, werden sie so oft wiederholt, bis eine finale Aktion erreicht wurde. Klicken Sie darauf. Das Symbol ändert sich in Screenshot mit dem Symbol "1". Dadurch wird die Bedingung nur genau einmal durchlaufen.

ELSE-Bedingungen

Öffnen Sie die Registerkarte Aktionen und wählen Sie DELETE ENTRY FROM VARIABLE, um den ELSE-Teil der Bedingung festzulegen.

  1. Ziehen Sie die Aktion in den Bereich direkt unter ELSE.

  2. Klicken Sie auf KEY oder VARIABLE NAME, um die Eingabefelder anzuzeigen und relevante Daten einzugeben.

    Screenshot des ELSE-Abschnitts

  3. Klicken Sie auf Akzeptieren.

  4. Öffnen Sie die Registerkarte Finally und wählen Sie SKIP TASK aus.

  5. Ziehen Sie den Eintrag in den untersten Bereich des Abschnitts ELSE.

  6. Klicken Sie auf "TEXT" und geben Sie die Meldung ein, die Sie als Erklärung für die Aktion anzeigen lassen möchten. Zum Beispiel:

    Screenshot des Abschnitts FINALLY

  7. Klicken Sie auf Akzeptieren.

Hinweis: Sie haben nun alle erforderlichen Schritte durchgeführt.

Wenn der Workflow aktiviert wird und eine RunID erhält, wird das VARA-Objekt für die Dauer der Laufzeit einen Eintrag für diese RunID enthalten:

Screenshot, der den Schlüssel im VARA-Objekt veranschaulicht

Dieser Eintrag wird durch die Vorbedingung gelöscht, sobald diese überprüft wurde.

Die Seite Dienste - Erfüllungen in der Process Monitoring-Perspektive zeigt die Übertretung anzeigen, welche den VARA-Wert gesetzt hat.

Screenshot der Liste mit den Erfüllungen

Nützliche Links

Dieses Beispiel enthält Referenzen zu einigen Funktionen, über die Sie vielleicht mehr erfahren möchten.