Abhängigkeiten
Der Bereich Abhängigkeiten zeigt eine Liste von allen Objekten an, von denen das aktuelle Objekt abhängig ist.
Ein Ablauf in BICsuite und schedulix besteht typischerweise aus mehreren einzelnen Ablaufobjekten (Batch, Job oder Milestone), die geordnet in einer bestimmten Reihenfolge ausgeführt werden müssen. Diese Reihenfolge wird durch eine oder mehrere Abhängigkeiten definiert, welche die "erfolgreiche" Ausführung eines anderen Ablaufobjektes erfordern, um selbst starten zu können.
Aus Sicht einer Abhängigkeit definiert sich eine erfolgreiche Ausführung durch die Erreichung eines finalen Exit Status. Welche dieser finalen Exit Status eine erfolgreiche Ausführung signalisieren, kann durch eine explizite oder implizite Auswahl weiter eingeschränkt werden. Mit einer optionalen, zusätzlichen Bedingung können zusätzliche Kriterien für eine erfolgreiche Ausführung des Vorgänger-Ablaufobjektes festgelegt werden. Hiermit sind Abhängigkeitsmodelle möglich, die sicherstellen, dass wirklich alle Vorarbeiten erfolgreich durchgeführt werden konnten, um einen nachfolgenden Prozess (z. B. einen Report) zu starten.
Da für ein Ablaufobjekt mehrere aktive Laufzeitobjekte existieren können, muss beim Submit eines Ablaufobjektes dem erzeugten Laufzeitobjekt das korrekte Vorgänger-Laufzeitobjekt zugeordnet werden. Bei dieser Zuordnung werden die dem Laufzeitobjekt in der Hierarchie am nächsten stehenden Laufzeitobjekte zugeordnet.
Die Suche nach dem Laufzeitobjekt für das angeforderte Ablaufobjekt beginnt für Abhängigkeiten mit einem Auflösungsmodus INTERNAL oder BOTH bei den Geschwistern des abhängigen Objektes im aktuellen Master und wird dann im nächsthöheren Level der Batch-Hierarchie fortgesetzt. Wird auf einem Level mehr als ein Laufzeitobjekt gefunden, so ist die Zuordnung nicht eindeutig und der Submit liefert eine Fehlermeldung. Abhängigkeiten mit dem Auflösungsmodus BOTH werden wie EXTERNAL Abhängigkeiten behandelt, falls die Abhängigkeit im aktuellen Master nicht aufgelöst werden kann. Für EXTERNAL Abhängigkeiten werden Laufzeitobjekte aller anderen aktiven Master-Abläufe bei der Auflösung der Abhängigkeit berücksichtigt.
Ablaufobjekte erben alle Abhängigkeiten des Eltern Ablaufobjektes, sofern diese nicht explizit für das Kind Ablaufobjekt ignoriert werden sollen. Eine alternative Möglichkeit der Bearbeitung der Abhängigkeiten ist in der graphischen Darstellung der Hierarchie gegeben.

Abhängigkeitsmodus
Der Abhängigkeitsmodus gibt an, ob alle oder nur eine Abhängigkeit erfüllt sein müssen. Es gibt folgende Optionen:
- AND
Es müssen alle Abhängigkeiten gemeinsam erfüllt sein, damit das abhängige Laufzeitobjekt starten kann. Dies entspricht einer UND-Verknüpfung aller Abhängigkeiten.
Beispiel: Ist ein Job C von Job A und von Job B abhängig (das heißt, er soll nur starten, wenn A und B fertig sind), muss der Abhängigkeitsmodus AND gewählt werden.
- OR
Es muss mindestens eine der Abhängigkeiten erfüllt sein, damit das Laufzeitobjekt starten kann. Dies entspricht einer ODER-Verknüpfung aller Abhängigkeiten.
Beispiel: Ist ein Job C von Job A oder Job B abhängig (das heißt, er soll starten wenn A oder B fertig ist), muss der Abhängigkeitsmodus OR gewählt werden.
Beispiel

Innerhalb der Abhängigkeit eines Ablaufobjektes kann es entweder die Verknüpfung mit OR oder mit AND geben. Sollen komplexere Abhängigkeitsverknüpfungen abgebildet werden (zum Beispiel abhängig von A oder B und C oder D) so wird das, wie in der Abbildung dargestellt, mit der Verwendung eines Milestone oder Batch-Objektes erreicht.
Im Beispiel wurden Batch 1 und Batch 2 generiert. Batch 1 hat die Abhängigkeiten Job A und Job B mittels OR verknüpft. Batch 2 analog Job C und Job D ebenfalls mittels OR. Anschließend kann das Objekt Job 1 die beiden Batches mittels AND als Abhängigkeit verknüpfen und hat die komplexe Bedingung (abhängig von A oder B und C oder D) hiermit abgebildet.
Tabelle der Abhängigkeiten
Die Tabelle Abhängigkeiten zeigt alle Ablaufobjekte an, von denen das aktuell gewählte Ablaufobjekt abhängig ist.
Die Spalten der Liste haben diese Bedeutung:
Wählen
Um einzelne vorhandene Abhängigkeiten zu Kopieren, Ausschneiden oder zu Löschen, aktivieren Sie die Checkbox der jeweiligen Zeile und wählen dann die entsprechende Operation unterhalb der Liste aus.
Abhängig von
Hier finden Sie den Namen des benötigten Ablaufobjektes, dieser wird ohne den Ordner-Pfad angezeigt. Das voran gestellte Icon dient der Unterscheidung zwischen Job, Batch und Milestone. Wenn Sie den Mauszeiger über den Namen bewegen, erscheint der vollständige Pfad. Über das vorangestellte Auswahlsymbol Wählen kann ein Popup aufgerufen werden, um das Ablaufobjekt zu ersetzen.
Abhängigkeitsname
Hier kann ein optionaler Abhängigkeitsname eingegeben werden. Dieser kann in anderen Ablaufobjekten bei der Definition von Kindern dazu benutzt werden, diese Abhängigkeit zu ignorieren. Weitere Informationen zu ignorierten Abhängigkeiten finden Sie im Bereich Kinder des Editors für Ablaufobjekten.
Prüfe bei
Mit dieser Option kann gewählt werden, ob zur Erfüllung einer Abhängigkeit das benötigte Laufzeitobjekt und seine Kinder einen finalen Status erreicht haben müssen oder ob nur das benötigte Ablaufobjekt selbst einen finalen Status eingenommen haben muss.
Es gibt folgende Optionen:
-
ALL_FINAL
Wird diese Option ausgewählt, so muss das benötigte Ablaufobjekt und seine Kinder einen finalen Status erreicht haben. -
JOB_FINAL
Wird diese Option ausgewählt, so wird nur geprüft, ob das Ablaufobjekt selbst einen finalen Status erreicht hat. Der Status der Kinder wird nicht geprüft.
Behandlung gescheiterter Auflösung
In diesem Auswahlfeld wird beschrieben, was zu tun ist, wenn für die Abhängigkeit keine Zuordnung eines gültigen Laufzeitobjektes möglich ist.
In der Abbildung ist für Job 3 und Job 4 alles in Ordnung, wenn Batch 1 submitted wird. Wenn Batch 2 isoliert zur Ausführung gebracht wird, können die Abhängigkeiten von Job 1, bzw. Job 2 nicht aufgelöst werden, weil diese nicht Kinder von Batch 2 sind.

Es gibt folgende Optionen:
-
IGNORE
Die Abhängigkeit wird ignoriert. Ein IGNORE kann etwa dann nötig sein, wenn kleinere Batches zu größeren zusammengefasst werden. Läuft der kleine Batch alleine, so kann er alle Abhängigkeiten ignorieren, die nur beim größeren Lauf zu beachten sind.
Im oberen Beispiel muss in der Abhängigkeit Job 1 → Job 3 ein IGNORE eingetragen werden, wenn Batch 2 auch allein gestartet werden darf. -
ERROR
Der Submit-Vorgang scheitert und liefert eine Fehlermeldung. -
SUSPEND
Der aktuelle Job wird angehalten zur Ausführung gebracht und geht in den Suspend State. Das heißt, er muss durch ein externes Programm oder manuellen Eingriff gestartet werden. -
DEFER
Die Abhängigkeit wird, falls das benötigte Laufzeitobjekt im Ablauf durch einen Trigger oder dynamischen Submit erzeugt wird, zu einem späteren Zeitpunkt aufgelöst. Falls ein Ablauf inaktiv wird und nur noch Laufzeitobjekte im Status DEPENDENCY_WAIT enthält, werden alle Laufzeitobjekte mit noch nicht aufgelösten Abhängigkeiten in den UNREACHABLE Job Status versetzt. -
DEFER_IGNORE
Die Abhängigkeit wird zu einem späteren Zeitpunkt aufgelöst, falls das benötigte Laufzeitobjekt im Ablauf durch einen Trigger oder dynamischen Submit erzeugt wird. Falls eine Job nur noch auf DEFER_IGNORE Abhängigkeiten wartet, werden diese ignoriert.
Status Auswahl
In diesem Feld wird ausgewählt, wie die Exit Status bestimmt werden, welche eine erfolgreiche Ausführung des benötigten Laufzeitobjektes definieren. welcher Exit Status des benötigten Jobs die Abhängigkeit erfüllt und der abhängige Job starten kann. Dabei spielt das ausgewählte Exit State Profil eine wesentliche Rolle. Es gibt folgende Optionen:
-
FINAL
Diese Option ermöglicht die explizite Auswahl der für diese Abhängigkeit gültigen, finalen Exit Status in der nachfolgenden Spalte Benötigte Status. Werden dort keine Status eingetragen, wird jeder finale Exit Status als erfolgreiche Ausführung interpretiert. Damit ist dies die Option, welche die Auswahl vollständig dem Anwender überlässt. -
ALL_REACHABLE
Diese Option wählt implizit alle finalen Exit Status als für diese Abhängigkeit gültige Exit Status aus, wobei ein im Exit State Profile des benötigten Jobs als Unerreichbar gekennzeichneter Status ausgenommen wird. ALL_REACHABLE ist für Abhängigkeiten voreingestellt. -
UNREACHABLE
Wird diese Option ausgewählt, ist nur der Exit Status gültig, welcher im Exit Status Profil des benötigten Jobs als Unerreichbar gekennzeichnet wurde. -
DEFAULT
Wird diese Option ausgewählt, sind alle finalen Exit Status gültig, die im Exit State Profile des benötigten Jobs als Standard Abhängigkeit gekennzeichnet wurden. Definiert das Exit State Profile keinen solchen Exit Status, so wird der finale Exit Status verwendet, welcher in der Exit Status Tabelle des Exit State Profils am weitesten unten steht und nicht als Unerreichbar gekennzeichnet ist.
Benötigte Status
Wird in der Status Auswahl die Option FINAL gewählt, so werden hier die für diese Abhängigkeit gültigen Exit Status in einer Komma-separierten Liste angezeigt. Ein Klick auf das vorangestellte Bearbeiten Icon öffnet ein Popup mit einer Tabelle, in welcher die gültigen Exit Status eingetragen und auch optional mit einer zusätzlichen Bedingung versehen werden können.

Beispiel
Ein vom Job B benötigter Job A kann zwei Exit States (SUCCESS oder WARNING) annehmen. Da der Job B nur starten soll, wenn Job A mit einem Exit Status SUCCESS beendet wurde (also wenn er erfolgreich durchgelaufen ist), darf in der Liste Benötigte Status nur ein Eintrag mit SUCCESS stehen. Ist Job A durchgelaufen und hat den Exit State SUCCESS erhalten, so kann Job B starten. Beendet sich Job A mit WARNING, kann Job B nicht starten.
Abhängigkeitsbedingung
Eine optionale Bedingung, die das angeforderte Ablaufobjekt zusätzlich erfüllen muss, um als erfüllt betrachtet zu werden. Parameter vom Typ RESOURCE_REFERENCE des abhängigen Ablaufobjektes können in dieser Bedingung nicht verwendet werden, da zum Auswertungs-Zeitpunkt der Abhängigkeitsbedingung eine Ressourcenzuordnung noch nicht stattgefunden hat.
Auflösungsmodus
In diesem Feld können Sie auswählen, wie die Abhängigkeit aufgelöst wird. Es gibt folgende Optionen:
-
INTERNAL
Wird diese Option ausgewählt, so wird die Abhängigkeit nur innerhalb der Kinder des Master Laufzeitobjektes aufgelöst. -
BOTH
Mit dieser Option wird zuerst versucht, die Abhängigkeit INTERNAL aufzulösen. Gelingt dies nicht, wird versucht, die Abhängigkeit EXTERNAL aufzulösen. -
EXTERNAL
Diese Option fordert eine externe Auflösung in den Kindern anderer Master Laufzeitobjekte. Kinder des eigenen Master Laufzeitobjektes werden hierbei nicht berücksichtigt. Die Auflösung von EXTERNAL Abhängigkeiten erfolgt, wenn alle anderen INTERNAL Abhängigkeiten (falls vorhanden) erfüllt sind. Dabei werden in anderen Mastern die betreffenden Jobs ermittelt und geprüft ob Grenzzeit und Auswahlbedingungen erfüllt sind. Bei mehreren Kandidaten wird das zuletzt zur Ausführung gebrachte Laufzeitobjekt ausgewählt und zugeordnet.
Grenzzeit und Einheit
Die Felder Grenzzeit und Einheit definieren, wie groß der zeitliche Abstand zwischen der finalen Abschluss des benötigten Laufzeitobjektes und dem Start des abhängigen Laufzeitobjektes maximal sein darf, um für die Auflösung der Abhängigkeit gültig zu sein. Die Felder Grenzzeit und Einheit sind nur sichtbar, wenn im Feld Auflösungsmodus BOTH oder EXTERNAL gewählt wurde.
Auflösungsbedingung
Definiert eine Bedingung, die erfüllt sein muss, um eine Auflösung der Abhängigkeit durchführen zu können. Parameter des
angeforderten Jobs oder Batches können über $REQUIRED.