Parameter
Im Bereich Parameter werden Parameter definiert, um:
- Argumente für Kommandozeilen eines Jobs bereitzustellen
- Namen von Arbeitsverzeichnissen und Protokoll-Dateinamen zu dynamisieren
- Bedingungen zu evaluieren
- Informationen im Monitoring anzuzeigen und Detail-Bookmarks einzustellen
- Ergebnisse von Jobs an andere Jobs weiterzureichen
- Anpassung von Submit-Masken
- Parameter aus der Ablaufumgebung eines Jobs zu importieren
Zusätzlich zu den in diesem Bereich definierten Parametern stellt das System eine Reihe Job-Umgebungsparametern zur Verfügung.
Der Bereich Parameter sieht folgendermaßen aus:

In der Liste sind alle Parameter aufgeführt, die aktuell in diesem ausführbaren Objekt definiert wurden. Mit der Schaltfläche Anfügen unter der Liste können Sie neue Parameter ergänzen.
Die Spalten haben folgende Bedeutung:
Wählen
Um einzelne vorhandene Parameter zu Kopieren, Ausschneiden oder zu Löschen, aktivieren Sie die Checkbox der jeweiligen Zeile und wählen dann die entsprechende Option unterhalb der Liste aus.
Name
Hierbei handelt es sich um den Namen des Parameters.
Export Name
Wird hier ein Namen eingegeben, so steht der Parameter dem Laufzeitobjekt während der Ausführung als Betriebssystem-Umgebungsvariable zur Verfügung. Dies ist sinnvoll, um überlange Kommandozeilen zu vermeiden und sicherheitsrelevante Informationen zu verbergen.
Typ
Beim Typ handelt es sich um die Art des Parameters und wie er verwendet wird. Es stehen folgende Optionen zur Verfügung:
PARAMETER
Parameter vom Typ PARAMETER müssen zum Submit-Zeitpunkt eines Ablaufobjektes aufgelöst werden können. Hat der Parameter keinen Standard Wert, so liefert der Versuch, das Ablaufobjekt zur Ausführung zu bringen, eine Fehlermeldung. Für untergeordnete Ablaufobjekte werden Parameter vom Typ PARAMETER wie Parameter vom Typ IMPORT behandelt. Allerdings wird beim Submit geprüft, ob alle der direkt oder als Kind gestarteten Ablaufobjekte alle Parameter vom Typ PARAMETER auflösen können.
IMPORT
Parameter des Typs IMPORT werden benutzt, um Parameter aus dem Kontext des Ablaufobjektes zu beziehen. Verwendet ein Job einen Parameter, den er nicht selbst definiert, wird dieser bei der Parameter-Auflösung so behandelt, als wäre er als Parameter vom Typ IMPORT definiert worden, wenn in der System-Konfiguration das 'ParameterHandling' nicht auf 'strict' gesetzt ist. IMPORT Parameter können einen Vorbelegungs-Wert haben, der über das Feld Standard Wert gesetzt werden kann. Dieser Wert wird benutzt, wenn der Parameter nicht aufgelöst werden kann. Damit haben Parameter vom Typ IMPORT im wesentlichen eine dokumentarische Funktion.
Beispiel: Job SYSTEM.A definiert den Parameter TEXT mit dem Inhalt 'Name: $JOBNAME'. Der Job SYSTEM.B, der ein Kind von SYSTEM.A ist, verwendet den Parameter TEXT seines Parents. Dieser wird dann aufgelöst nach 'Name: SYSTEM.A'.
IMPORT_UNRESOLVED
Parameter des Typs IMPORT_UNRESOLVED werden im wesentlichen so behandelt wie Parameter vom Typ IMPORT. Allerdings unterscheiden sie sich bezüglich des Kontextes der Parameter-Auswertung. Enthält der importierte Parameter wiederum eine Parameter-Referenz, so wird diese im Falle von IMPORT_UNRESOLVED im Kontext des Laufzeitobjekt aufgelöst, welches den IMPORT_UNRESOLVED definiert.
Beispiel: Job SYSTEM.A definiert den Parameter TEXT mit dem Inhalt 'Name: $JOBNAME'. Der Job SYSTEM.B, der ein Kind von SYSTEM.A ist, definiert den Parameter TEXT seines Parents als IMPORT_UNRESOLVED. Dieser wird dann aufgelöst nach 'Name: SYSTEM.B'.
RESULT
Parameter vom Typ RESULT definieren Ergebniswerte von Jobs, welche vom Job selbst über die API ('set parameter') oder das Commandline-Utility 'sdms-set_parameter' gesetzt werden können. Auf diese kann über Parameter vom Typ REFERENCE bzw. CHILD_REFERENCE von anderen Ablaufobjekten aus zugegriffen werden.
CONSTANT
Der Parameter ist eine Konstante, die nicht mehr verändert werden kann. Der Wert der Konstante wird mittels des Feldes Standard Wert eingetragen. Dieser Wert ist im Falle des Typs CONSTANT zwingend erforderlich.
EXPRESSION
Ein Parameter vom Typ EXPRESSION erlaubt die Aggregation von Parameter-Werten untergeordneter Kinder. Die Aggregatsfunktion wird im Feld Funktion ausgewählt. Im Feld Ausdruck wird der Name des zu aggregierenden Parameters seiner Kinder angegeben. Kinder, für die der im Ausdruck angegebene Parameter nicht aufgelöst werden kann, werden bei der Aggregation ignoriert.
Ein Beispiel zur Verdeutlichung:
Job SYSTEM.A hat einen dynamisches Kind-Job SYSTEM.B, welcher zur Laufzeit parallel submitted wird. Die erzeugten Kind-Instanzen von SYSTEM.B schreiben alle x-Zeilen einer Tabelle parallel. Nun möchte SYSTEM.A gerne wissen, wie viele Zeilen alle Kind-Jobs in Summe geschrieben haben.
Um dies zu erreichen, muss Job SYSTEM.B einen Parameter (Typ RESULT) 'ZEILEN_GESCHRIEBEN' definiert haben, der beim Abschluss des Job-Laufes die Anzahl der bearbeiteten Zeilen enthält. In Job SYSTEM.A wird ein Parameter des Typs EXPRESSION mit dem Namen 'ZEILEN_GESAMT' der Funktion 'SUM' und dem Ausdruck 'ZEILEN_GESCHRIEBEN' angelegt. Nun startet Job SYSTEM.A und submitted drei Kind-Jobs SYSTEM.B (SYSTEM.B[1], SYSTEM.B[2], SYSTEM.B[3]). SYSTEM.B[1] schreibt 2000 Zeilen, SYSTEM.B[2] schreibt 3000 Zeilen, SYSTEM.B[3] schreibt 1000 Zeilen. Diese Werte werden von den Kindern in ihren jeweiligen RESULT Parametern 'ZEILEN_GESCHRIEBEN' zurück gegeben.
Nach Beendigung der Kinder (SYSTEM.B[*]) wird eine Abfrage des Parameters 'ZEILEN_GESAMT' für den Job SYSTEM.A die Summe aller Werte des Parameters 'ZEILEN_GESCHRIEBEN' seiner Kinder zurück liefern und erhält als Ergebnis 6000.
REFERENCE
Parameter vom Typ REFERENCE erlauben einem Ablaufobjekt, auf Parameter anderer Ablaufobjekte lesend zuzugreifen. Der Parameter, auf den zugegriffen werden soll, wird über das Auswahlfeld Referenz ausgewählt. Bei der Auflösung von Parameter-Referenzen wird ausgehend vom referierenden Ablaufobjekt in den Geschwistern nach dem referierten Job gesucht. Wird bei den direkten Geschwistern das referierte Ablaufobjekt nicht gefunden, so wird die Suche auf der nächsthöheren Hierarchie-Ebene fortgesetzt. Wird auf einer Hierarchie-Ebene mehr als ein Zielobjekt gefunden, so ist die Referenz nicht eindeutig und es kommt es zu einem Laufzeitfehler. REFERENCE Parameter können nicht auf Parameter von Kindern des Ablaufobjektes verweisen. Ist dies notwendig, muss ein Parameter vom Typ CHILDREFERENCE verwendet werden.
CHILDREFERENCE
Mit Parametern vom Typ CHILDREFERENCE kann auf Parameter von Kindern des referierenden Ablaufobjektes lesend zugegriffen werden. Eine Suche des Referenzzieles neben oder oberhalb des referierenden Ablaufobjektes findet nicht statt. Wie bei Parametern vom Typ REFERENCE muss das Ziel der Referenz im Feld Referenz ausgewählt werden. Wie bei Parametern vom Typ REFERENCE führt eine nicht eindeutige Auflösung des entsprechenden Kind-Laufzeitobjektes zu einem Laufzeitfehler.
RESOURCEREFERENCE
Für Ressourcen können Ressourcen-Parameter definiert werden. Auf diese kann von Jobs, welche die Ressource allokieren, über Parameter vom Typ RESOURCEREFERENCE zugegriffen werden. Wird die Ressource vom Job exklusiv allokiert (Sperrmodus X), kann der Job den Parameter wie einen Parameter vom Typ RESULT als Ergebnis zurück liefern. In diesem Fall wird der Wert des Parameters persistent an der Ressource gespeichert und steht für nachfolgende Abläufe zur Verfügung.
Lokal
Wenn diese Checkbox aktiv ist, ist dieser Parameter nur für den Job selbst sichtbar, nicht jedoch für seine Kinder.
Ausdrucks Modus
Dieses Feld ist nur für Parameter vom Typ EXPRESSION aktiv. Hier kann die Aggregatsfunktion ausgewählt werden. Bei allen Aggregatsfunktionen gilt: Sollte in manchen Kind-Objekten der Parameter oder der Parameterwert nicht vorhanden oder vom falschen Typ sein (String statt Zahl), dann werden diese Werte ignoriert und nur die zur Verfügung stehenden und korrekten Werte aggregiert.
Es stehen folgende Aggregate zur Verfügung:
-
SUM
Die Summe der Parameterwerte -
AVG
Der Durchschnitt der Parameterwerte -
MIN
Das Minimum der Parameterwerte -
MAX
Das Maximum der Parameterwerte -
COUNT
Die Anzahl der Kind-Instanzen, welche diesen Parameter definiert haben
Ausdruck
Dieses Feld ist nur für Parameter vom Typ EXPRESSION aktiv und definiert den Namen des Kind-Parameters, dessen Werte aggregiert werden sollen.
Referenz
Diese Spalte wird nur aktiviert, wenn in einer Zeile im Feld Typ der Wert REFERENCE, CHILDREFERENCE oder RESOURCEREFERENCE gewählt wurde. Hier wird der Parameter eines anderen Laufzeitobjektes ausgewählt, auf den referiert werden soll.
Standard / Wert
Zur Eingabe eines Standard-Wertes steht die Checkbox Standard sowie das Feld Wert zur Verfügung. Ist das Feld Wert leer und die Checkbox Standard nicht gesetzt, so hat der Parameter keinen Standard-Wert. Ist das Feld Wert leer und die Checkbox Standard gesetzt, so ist der Standard-Wert des Parameters ein Leerstring. Enthält der Parameter-Kommentar ein WEB_CONFIG Tag mit einem DEFAULT, wird der Standard-Wert aus dem WEB_CONFIG Tag extrahiert und ist an dieser Stelle nicht editierbar.
Kommentar
In der Spalte Kommentar kann mit einem Klick auf das Symbol Bearbeiten der Kommentar-Editor zur Ansicht und Bearbeitung der Kommentare des Parameters in einem Popup geöffnet werden. Für Parameter vom Typ PARAMETER kann über Parameter-Kommentare das Eingabefeld der Submit-Maske über das WEB_CONFIG Tag konfiguriert werden.
Zugriff auf Systemvariable fremder Objekte
Da die vom System vordefinierten Job-Umgebungsparameter für jeden Job implizit bereits definiert sind, können diese nicht direkt von übergeordneten Objekten geerbt oder referiert werden. Sollte dies notwendig sein, kann das mittels eines kleinen Tricks erreicht werden. Enthält der Wert eines Parameters eine Zeichenkette der Form $NAME (also ein $-Zeichen gefolgt von einem Namen), wird dies als der Name einer Variablen interpretiert und es wird versucht, diese Variable im Scope des Objektes aufzulösen, der den ursprünglichen Wert des Parameters geliefert hat.
So definiert z.B. ein Job SYSTEM.A eine Konstante namens MYJOBNAME mit als Inhalt $JOBNAME. Wird nun etwa über eine Referenz die Konstante MYJOBNAME von außen angesprochen, bekommt man als Ergebnis den Wert SYSTEM.A.
Spezielle Parameter
Folgende Parameter können optional definiert werden:
Parameter für das sdms-auto_restart
Das Kommandozeilen-Werkzeug sdms-auto_restart dient dazu, fehlgeschlagene Jobs automatisch zu restarten. Folgende Parameter haben einen Einfluss auf das Verhalten des AUTORESTART Utilities:
| Parameter | Wirkung |
|---|---|
| AUTORESTART | Definiert, ob der Job automatisch neu gestartet werden soll (Wert = "TRUE") |
| AUTORESTART_MAX | Definiert, wenn gesetzt, die maximale Anzahl automatischen Restarts |
| AUTORESTART_COUNT | Wird vom Autorestart Utility gesetzt um die Anzahl Restarts zu zählen |
| AUTORESTART_DELAY | Die Zeit in Minuten bevor ein Job erneut gestartet wird |
Das AUTORESTART Utility kann als Trigger definiert werden. Hierfür bieten sich die Triggertypen IMMEDIATE_LOCAL sowie FINISH_CHILD an.
PARAMETER_SEQUENCE
Dieser Parameter definiert die Reihenfolge der Parameter in der Submit-Maske als Komma-getrennte Liste von Parameter-Namen.
DETAIL_BOOKMARK
Definiert den Namen des Bookmarks, der verwendet wird, wenn das Detail-Monitoring aus Monitor Master oder der Submit-Maske geöffnet wird.
Das <WEB_CONFIG> Tag
In Parameter-Kommentaren kann ein WEB_CONFIG Tag verwendet werden, um das Eingabefeld der Submit-Maske zu konfigurieren. Statt einem einfachen Text-Eingabefeld kann der Parameter als Checkbox oder Auswahlfeld konfiguriert werden. Definiert das WEB_CONFIG Tag einen DEFAULT, so wird dieser im Feld Wert angezeigt, aber kann dort nicht bearbeitet werden.
CHECKBOX
<WEB_CONFIG>
'TYPE' : 'CHECKBOX',
'TICKVALUE' : 'TRUE',
'OFFVALUE' : 'FALSE',
'DEFAULT' : 'FALSE',
'EDIT_ON_RERUN' : 'true'
</WEB_CONFIG>
Statt TICKVALUE kann auch ONVALUE synonym verwendet werden. DEFAULT, ONVALUE, bzw. TICKVALUE und OFFVALUE sind optional und sind mit 'true', bzw. 'false' für DEFAULT und OFFVALUE vorbelegt. Ist 'EDIT_ON_RERUN' auf 'true' gesetzt, so kann der Parameter in der Job-Detail-Maske vor einem Neustart editiert werden.
SELECT
<WEB_CONFIG>
'TYPE' : 'SELECT',
'VALUES' : ['A','B','C','D'],
'LABELS' : ['alpha','beta','gamma','delta'],
'DEFAULT' : 'B'
</WEB_CONFIG>
VALUES und LABELS beschreiben die Werte und Beschriftungen der Auswahlfelder. Ist LABELS nicht gesetzt, wird VALUES für die Anzeige verwendet. DEFAULT ist optional. Ist DEFAULT nicht gesetzt, wird das erste Element als Vorbelegungswert gewählt. Ist 'EDIT_ON_RERUN' auf 'true' gesetzt, so kann der Parameter in der Job-Detail-Maske vor einem Neustart editiert werden.
Alternativ können VALUES und DEFAULTS über einen KEY aus der Konfigurations-Datei (custom/config.json) gelesen werden, um eine bessere Modularisierung zu unterstützen:
<WEB_CONFIG>
'TYPE' : 'SELECT',
'VALUES' : { 'KEY' : 'YesNoMaybe' },
'DEFAULT' : { 'KEY' : 'YesNoMaybeDefault' },
'EDIT_ON_RERUN' : 'true'
</WEB_CONFIG>
Die Werte für KEY müssen in der Konfigurations-Datei config.json als Dictionary mit dem Namen "paramDict" konfiguriert werden:
...
"paramDict" : {
"YesNoMaybe" : [ "YES", "NO", "MAYBE" ],
"YesNoMaybeDefault" : "MAYBE"
},
...