Beispiele für Sync-Objekte

In diesem Thema wird ein typisches Anwendungsbeispiel für SyncSynchronisiert aktivierbare Objekte auf der Grundlage definierter Zustände und Aktionen. Auch ein eigener Objekttyp in der Automation Engine.-Objekte beschrieben. Zudem wird gezeigt, wie ein Sync-ObjektTätigkeiten und Abläufe, welche die Automation Engine steuert, werden mit Hilfe von sogenannten Objekten abgebildet (siehe auch Aufgabe). den Zugriff auf eine Ressource (z. B. eine DatenbankEine Datenbank ist eine organisierte Sammlung von Daten und wichtigen Datenstrukturen.) steuert.

ClosedBeispiel 1: Sie wollen den Zugriff auf diese Datenbank steuern

In diesem Beispiel wollen Sie für Folgendes sorgen:

1. Erstellen Sie ein Sync-Objekt mit zwei Zuständen:

Geben Sie den Zuständen aussagekräftige Namen, die Sie leicht wiedererkennen.

2. Verknüpfen Sie diese Zustände mit folgenden Werten:

Zustand Wert
EXCLUSIVE

0 – die Datenbank kann nur von einer AufgabeEin gestartetes Objekt, welches gerade durchgeführt wird. Aufgaben werden auch als Aktivitäten bzw. Tasks bezeichnet. verwendet werden

SHARE 3 – bis zu 3 Aufgaben können gleichzeitig auf die Datenbank zugreifen

Die Werte, die Sie hier festlegen, sind nicht explizit im Sync-Objekt hinterlegt. Sie werden bei der Definition der Aktionen miteingebunden, wie auch weiter unten gezeigt wird.

XXX

3. Definieren Sie im Abschnitt „Aktionsdefinition“ folgende 4 Aktionen:

Zustand Wert
VERWENDUNG

Normaler Zugriff auf die Datenbank.

Diese Aktion"See ""violation action (AWI Service Orchestrator)""." kann ausgelöst werden, wenn sich das Sync-Objekt im Zustand SHARE befindet und sein Wert kleiner als 3 ist. Sie belässt den bestehenden Zustand, erhöht aber den Wert um eins. Diese Aktion ist damit für „normale“ Aufgaben gedacht, welche die Datenbank nutzen.

Die Aufgaben prüfen, ob mehrere Datenbanken verwendet werden können sowie, ob der Wert kleiner als drei ist, denn es dürfen nur drei Aufgaben gleichzeitig die Datenbank nutzen. Der Wert wird um eins heraufgesetzt, weil nun eine weitere Aufgabe mit der Datenbank arbeitet.

USE_EXCLUSIVE Diese Aktion kann ausgelöst werden, wenn sich das Sync-Objekt im Zustand SHARE befindet und sein Wert 0 ist. Diese Aktion ist also nur möglich, wenn keine andere Aufgabe mit der Datenbank arbeitet.
RELEASE

Freigabe nach einem normalen Zugriff

Eine normale Aufgabe hat mit der Datenbank gearbeitet und wird nun beendet. Dabei bleibt der bestehende Zustand erhalten, der Wert aber wird um eins vermindert.

RELEASE

Freigabe nach einem exklusiven Zugriff

Eine Aufgabe, welche die Datenbank exklusiv verwendet hat, beendet sich und macht diese wieder mehrfach benutzbar.

XXX

Es ist wichtig, in welcher Reihenfolge die Aktionen definiert werden. Die erste Aktion ist der Startzustand des Sync-Objekts, wenn es auf ein ausführbares Objekt angewendet wird.

4. Weisen Sie das Sync-Objekt einem ausführbaren Objekt zu

In unserem Beispiel weisen wir das Sync-Objekt einem JobVerarbeitung auf einem Zielsystem. Auch ein eigener Objekttyp in der Automation Engine. zu. Bei der Verarbeitung dieses Jobs soll der Zugriff auf die Datenbank auch für andere Aufgaben möglich sein. Wir wählen also die Aktion „USE“:

XXX

Funktionsweise:

  1. Beim Start führt der Job die Aktion „USE“ aus.
  2. Der Job prüft, ob die Datenbank derzeit mehrfach benutzbar ist, und wie viele Aufgaben mit ihr arbeiten. Sind es weniger als drei, kann der Job gestartet werden.
  3. Arbeiten bereits drei Aufgaben mit der Datenbank, wird die unter „Else“ definierte Aktion ausgeführt. In diesem Fall wartet der Job, bis sich eine der Aufgaben beendet.
  4. Wenn der Job an der Reihe ist und sich nach dem Zugriff auf die Datenbank entweder erfolgreich beendet oder abbricht, wird die Aktion „RELEASE“ ausgeführt.

ClosedBeispiel 2: Sie möchten die Ausführung von zwei Jobs in zwei verschiedenen Workflows synchronisieren

Die Reihenfolge von Aufgaben eines Workflows sind durch die Linien, mit denen sie verlinkt sind, genau definiert. Aber was ist mit Aufgaben, die Teil verschiedener ProcessPlans sind und dennoch in Abhängigkeit voneinander ausgeführt werden sollen?

Um dies zu lösen, gibt es die zwei Methoden:

Die zuerst genannte Methode ist einfach zu implementieren, bietet eine sehr gute Übersicht und ist daher besonders zu empfehlen. Dieses Beispiel zeigt, wie die zweite Methode verwendet wird.

In unserem Beispiel beinhalten zwei Workflows (WORKFLOW_A und WORKFLOW_B) Jobs (JOB_A1, JOB_A2 und JOB_B1, JOB_B2), die nicht gleichzeitig ausgeführt werden können. Sie müssen einer nach dem anderen in deren jeweiligen Workflows laufen, d. h., JOB_B2 darf nicht starten, bevor JOB_A1 beendet wurde.

1. Erstellen Sie das SYNC-Objekt

Wir erstellen das EXAMPLE_STATE SYNC Objekt, das den StatusZustand einer Aufgabe (z.B. aktiv, blockiert, in Generierung, usw.). von JOB_A1 abbildet und zwei Zustände enthält:

XXX

Ausführbare Objekte, denen dieses Objekt zugewiesen wurde, können dessen definierte Aktionen auslösen. Wir werden in unserem Beispiel keine Werte verwenden. Wir definieren die folgenden Aktionen:

2. Weisen Sie das SYNC-Objekt dem JOB_A1 zu

Dieser Job ist Teil von WORKFLOW_A und hat keine START-Aktion. Er löst jedoch beim Beenden die Aktion SET_DONE im Sync-Objekt aus. Diese bewirkt, dass der Zustand DONE (Verarbeitung beendet) gesetzt wird. Voraussetzung dafür ist aber, dass der Zustand READY (Zur Verarbeitung bereit) besteht.

2. Weisen Sie das SYNC-Objekt dem JOB_B2 zu

Dieser Job ist Teil von WORKFLOW_B2. Er startet mit der Sync-Objekt-Einstellung SET_READY. Diese Aktion kann aber nur ausgeführt werden, wenn der Status DONE gesetzt ist, d. h., wenn JOB_A1 beendet wurde. Sie setzt gleichzeitig den Status READY (Zur Verarbeitung bereit).

3. Führen Sie die Workflows aus und beobachten Sie das Ergebnis

Siehe auch: