Seiten „Script“
Als Entwickler und Objektdesigner können Sie funktionale Logik zu den Script-Seiten Ihrer Objekte mit Hilfe der Automation Engine Scriptsprache hinzufügen. Alle ausführbaren Objekte haben mindestens eine Seite Script. Einige Objekttypen haben zusätzliche Pre-Script-, Post-Script- und Child-Post-Script-Seiten.
Hinweise:
- Scripts werden entweder beim Aktivieren oder beim Starten des Objekts verarbeitet, je nach den Einstellungen auf der Seite „Attribute“ des Objekts.
- Wenn das Objekt mehr als eine Seite „Script“ hat, beachten Sie die Reihenfolge, in der die Seiten verarbeitet werden. Weitere Informationen finden Sie unter Script-Verarbeitung.
- Jede Script-Seite kann bis zu 32.767 Zeilen lang sein. Die Script-Generierung wird jedoch abgebrochen, wenn das Script mehr als 1000 JCL-Zeilen erzeugt. Wenn Ihr Script mehr JCL-Zeilen erzeugt, können Sie diese Grenze mit dem Script-Statement :PUT_ATT, Attribut MAX_JCL_LINES ändern.
- Die spezifischen Bedingungen, die Sie in Ihrem Script definieren können, hängen vom Objekttyp ab.
Dieses Thema beinhaltet Folgendes:
Die Seite Script ist für alle ausführbaren Objekte verfügbar.
In JMX-, PeopleSoft-, SAP- und SQL-Jobs haben Sie zwei Möglichkeiten, Scripts zu erstellen:
- Schreiben von Codes im Script-Editor
- Hinzufügen von vordefinierten, gebrauchsfertigen Befehlen, die in der Ansicht Formulare verfügbar sind.
Weitere Informationen finden Sie hier:
Plattformspezifische Informationen
-
Spezielle Funktionen für Guardian/NSK
Informationen zu den speziellen Funktionen, die für die automatische Behandlung von Eingabeaufforderungen zur Verfügung stehen, finden Sie unter Automatisierte Behandlung von Eingabeaufforderungen.
-
JCL für z/OS
Hier wird die eigentliche JCL angegeben. Keinesfalls darf hier eine Jobkarte (diese wird über die Attribute angegeben) bzw. Endkarte spezifiziert werden.
-
SAP JCL interpretiert vom SAP-Agenten
In SAP gibt es keine JCL. Aus diesem Grund, wurde in der Automation Engine eine SAP-JCL definiert. SAP analysiert diese und setzt sie in Verarbeitungsanweisungen für das Zielsystem um. Weitere Informationen finden Sie unter SAP JCL sowie SAP-Formulare.
-
Aktivieren eines Interpreters für Windows und Unix
Sie können auch ein Script für die Verwendung mit einem externen Interpreter eingeben. Um die Interpretation eines solchen Scripts zu ermöglichen, verwenden Sie :BEGIN_EXT_INTERPRETERS... :END_EXT_INTERPRETERS.
Die Binärdateien des Storage-Objekts können mithilfe der Script-Funktion :ATTACH_RES angehängt und an den Windows-Agenten übertragen werden.
Um diese Funktionen zu aktivieren, müssen Sie folgende Variablen konfigurieren: UC_EXT_INTERPRETERS_* - Externe Interpreter registrieren und :REGISTER_VARIABLE.
-
Windows BAT- und Powershell-Beispiele
Das folgende Windows BAT-Script setzt den Output des C:\Temp Verzeichnisses in eine Datei und prüft, ob das Kommando erfolgreich ausgeführt wurde. Wurde das Kommando nicht erfolgreich ausgeführt, wird der Job mit dem Rückgabewert aus dem Kommando „dir“ beendet:
dir C:\temp /S >> C:\temp\test.txt
@set retcode=%errorlevel%
@if NOT %ERRORLEVEL% == 0 goto :retcodeDas folgende Windows Powershell-Script erhält Inhalt des C:\Temp Verzeichnisses und setzt den Output in eine Datei. Anschließend wird der Powershell-Fehlercode geprüft; ist er nicht gleich 0, wird der Job mit $LastExitCode abgebrochen – dies ist das Äquivalent zu %ERRORLEVEL% im Script CMD.EXE/.BAT.
Get-ChildItem C:\Temp > C:\Temp\test.txt
if( $LastExitCode -ne 0 )
{ __uc_return $LastExitCode }
Die Funktion __uc_return kann für die Beendigung von Powershell-Jobs genutzt werden. Sie funktioniert nur, wenn der Windows-Jobtyp auf „Interpreter“ gesetzt ist, allerdings nicht im Zusammenhang mit den neuen Funktionen :BEGIN_EXT_INTERPRETERS... :END_EXT_INTERPRETERS.
Siehe auch Konfigurieren von Include-Objekten für externe Interpreter-Aufrufe.
Nur für Job-Objekte (JOBS) verfügbar. Geben Sie auf der Seite Pre-Script Statements ein, die den Job für die Ausführung vorbereiten. Verwenden Sie beispielsweise das Statement :PUT_ATT, um Attribute wie den Agenten für den Job zu setzen.
Die Seiten Pre-Script und Script werden gleichzeitig verarbeitet.
Pre-Script-Statements werden im Job-Header ausgeführt, d. h. Sie können Statements hinzufügen, die ausgeführt werden, bevor der Jobmelder an der Ausführung beteiligt wird. Details zum Jobmelder finden Sie in Jobmelder des Agenten.
TIPP: Sie können das Script-Statement :INC_SCRIPT verwenden, um den Inhalt dieser Seite auf jeder anderen Seite „Script“ einzufügen.
Zusatzinformationen zu z/OS
Auf der Seite Pre-Script definieren Sie alle JCL-Kommandos (z. B. JCLLIB, JOBCAT, JOBLIB, OUTPUT etc.), die nach der Jobkarte aber vor dem ersten Schritt des Scripts definiert werden müssen.
Der Ereignis-Monitor berücksichtigt Schritte auf der Seite Pre-Script nur, wenn der erste Schritt gleich benannt ist wie das Automation Engine-System. Ansonsten wirken sich abgebrochene Jobschritte des Pre-Scripts nicht auf den Endstatus eines Automation Engine-Jobs aus.
Beispiel
In diesem Beispiel heißt das Automation Engine-System UC4PROD.
Seite „Pre-Script“
//JOBLIB DD DISP=SHR,DSN=.....
// DD DISP=SHR,DSN=....
//UC4PROD EXEC PGM=modname
Seite „Script“
//STEP01 EXEC PGM=IEFBR14
//STEP01 EXEC PGM=IEBGENER
Nur für Jobobjekte (JOBS) verfügbar: Scripts auf der Seite Post-Script werden nach Beendigung des Jobs verarbeitet. Diese Scripts werden verarbeitet, wenn der Job normal beendet wurde, oder nach teilweiser Beendigung, z. B. wenn der Job abgebrochen wird. Mit Befehlen zum Post-Processing können Sie beeinflussen, wie ein Job beendet wird.
Tipps:
- Mit dem Script-Statement :RSET werden Script-Variablen zwischen Script und Post-Script übergeben. Das Script-Statement gibt den Wert, welcher der Script-Variable auf der Seite Script zugewiesen wurde, zurück.
- Verwenden Sie das Script-Statement :MODIFY_STATE, wenn Sie das endgültige Ende eines Jobs ändern möchten. Mit diesem Script-Statement können Sie den Job-Rückgabewert und den Status ändern, den der Jobmelder im Trailer liefert.
- Verwenden Sie das Script-Statement PREP_PROCESS_REPORT auf der Seite Post-Script, um Reports zu analysieren. Sie können dann z. B. einen ENDED_NOT_OK-Status für einen Job definieren, auch wenn der Job eigentlich normal beendet wurde.
Hinweise:
- Post-Script-Scripts können keine JCL-Zeilen enthalten.
- Post-Script-Befehle werden im Falle eines ENDED_LOST-Aufgabenstatus NICHT ausgeführt.
- Die folgenden Script-Statements können Sie auf der SeitePost-Script nicht verwenden:
- :PUT_ATT - Das Setzen von Attributen für die Generierung des Jobs ist irrelevant.
- :EXIT - Die Verarbeitung des Scripts mit dem Rückgabewert > „0“ abzubrechen, ist nicht erlaubt.
- :STOP - Die Bearbeitung des Scripts zu unterbrechen, ist nicht erlaubt.
SAP- und PeopleSoft-Jobs haben eine zusätzliche Seite Child-Post-Script. Das liegt daran, dass SAP- und PeopleSoft-Jobs in der Regel Statements enthalten, die mehrere Prozesse (Sub-Jobs) in den Zielsystemen starten. Diese Jobstruktur wird im Automic Web Interface repliziert. Der SAP- oder PeopleSoft-Job, den Sie in der Automation Engine erstellen, ist der Parent dieser Sub-Jobs (Child-Prozesse) und dient als deren Container.
Das Script, das Sie auf der Seite Child-Post-Script eingeben, wird für jeden einzelnen Child-Prozess sofort nach dessen Beendigung abgearbeitet.
Siehe auch:
- Funktionale Logik mit Scripts
- Scripts schreiben
- Mit dem Script-Editor arbeiten
- Script-Beispiele