Beispielsammlung, Leitfaden > Endstatus aufgrund des Reportinhaltes setzen

Endstatus aufgrund des Reportinhaltes setzen

Ziel: Der Report eines Jobs soll auf bestimmte Inhalte untersucht werden, wobei der Endstatus je nach Ergebnis gesetzt wird.

Verwendete Objekte: Job

Verwendete Script-Sprachmittel: :CLOSE_PROCESS, :ENDPROCESS, GET_PROCESS_LINE, :MODIFY_STATE, PREP_PROCESS_REPORT, :PRINT und :PROCESS


Beispiel

In manchen Situationen läuft die Verarbeitung eines Jobs im Automation Engine System einwandfrei ab (Agent ist aktiv, Anmeldedaten sind korrekt,...), weshalb jener fehlerfrei endet. Der Zweck der Durchführung wird jedoch nicht erfüllt (z.B. Fehler in der JCL). Daher ist es möglich, in der Post-Script-Registerkarte den Report auszulesen und entsprechend des Ergebnisses beispielsweise den Ende-Status anzupassen.

Job

In dem hier dargestellten Beispiel wird ein Job dazu verwendet, Dateien per FTP zu übertragen. In der Script-Registerkarte ist folgende Zeile vermerkt:

ftp -s:branch15.ftp

Die ftp-Datei "zweigstelle15.ftp" enthält die Kommandos für die zu übertragenden Dateien. Es kann natürlich die Situation eintreten, dass eine oder mehrere Dateien nicht gefunden werden. Daher ist es in solchen Fällen hilfreich, das Script-Sprachmittel PREP_PROCESS_REPORT zu verwenden, um nach eventuell vorhandenen FTP-Fehlermeldungen, die im Report aufgezeichnet werden, zu suchen.

Das Ergebnis der Funktion PREP_PROCESS_REPORT besteht aus allen Reportzeilen, auf die die gesetzte Filterung passt. Anschließend wird es Zeile für Zeile in einer PROCESS-Schleife ausgewertet. Den Inhalt einer Zeile erhalten Sie mit GET_PROCESS_LINE.

Wird keine Zeile im Report gefunden, so wird auch die PROCESS-Schleife nicht durchlaufen.

Wird eine Fehlermeldung im Report gefunden (z.B. File not found), so können Sie darauf reagieren, indem Sie mittels MODIFY_STATE den Statustext festlegen, der im Detailfenster des Statistiksatzes angezeigt wird, und auch den Rückgabewert des Jobs ändern (beeinflusst den Endestatus).

Beachten Sie, dass in der Registerkarte Laufzeit des Jobs der Zahlenbereich für den Rückgabewert festgelegt wird, in dem der Job mit dem Status ENDED_OK enden soll.  

Beispiel:
Definition für ENDED_OK: Rückgabewert <= 0

:MODIFY_STATE RETCODE = 0

Job endet ENDED_OK

:MODIFY_STATE RETCODE = 5

Job endet ENDED_NOT_OK

Das Script, das den zuvor erläuterten Vorgang durchführt, sieht folgendermaßen aus:

!Checking the report for one or more files that were to be transferred but not found.

!Searching for lines containing the text "File not found".

:
SET &hnd# = PREP_PROCESS_REPORT(,,REP, '*File not found*')

!Each retrieved line is written in the post-processing report.

:
PROCESS &hnd#
:  
SET &line# = GET_PROCESS_LINE(&hnd#)
:  
PRINT '&line#'
!Additionally, the end status of the job is modified.

:  
MODIFY_STATE RETCODE = 11
:  
MODIFY_STATE STATUS_TEXT = 'File(s) not found!'
:
ENDPROCESS

Sollten nicht alle zu übertragenden Dateien vorhanden sein, so sieht der Statistiksatz wie folgt aus. Der Job ended mit "ENDED_NOT_OK - Abgebrochen" und weist den gesetzten Rückgabewert 11 auf.

 


Automic Documentation - Tutorials - Automic Blog - Resources - Training & Services - Automic YouTube Channel - Download Center - Support

Copyright © 2016 Automic Software GmbH