:MODIFY_STATE

Verwenden Sie die Script-Anweisung :MODIFY_STATE, um den Rückgabewert oder den Statustext eines Jobs zu ändern, nachdem die Aufgabe abgeschlossen wurde.

Wenn Sie den Rückgabewert ändern, ändern Sie auch den Status des Jobs. Der maximale Rückgabewert für ein normales Job-Ende, wie auf der Laufzeit- Seite des Jobs definiert, bestimmt, welchen Status der Job erhält, wenn er ausgeführt wurde. Wenn der geänderte Rückgabewert höher als der definierte maximale Rückgabewert ist, erhält der Job den Status ENDED_NOT_OK. Ist der geänderte Rückgabewert kleiner oder gleich dem maximalen Rückgabewert, erhält der Job den Status ENDED_OK.

Wenn Sie :MODIFY_STATE verwenden, um den Statustext eines Jobs zu ändern, ersetzt das Script den Text, den der Job-Messenger im Trailer mit dem von Ihnen angegebenen Text ausgibt.

Wichtig! :MODIFY_STATE ist nur auf der Seite Post-Prozess des Jobs zulässig, da der Job abgeschlossen sein muss, bevor das Script aufgerufen wird.

Mehr Informationen:

Hinweise:

Tipp: Verwenden Sie :MODIFY_STATE, um den ENDED_NOT_OK-Status einem Job zuzuweisen, der aus technischer Sicht normal beendet wurde, aber für den ein Fehler aufgetreten ist, der erst erkannt wird, wenn der Job-Report analysiert wird. Weitere Informationen finden Sie unter PREP_PROCESS_REPORT sowie im nachfolgenden Beispiel.

Syntax

:MODIFY_STATEEigenschaft=Wert

Parameter

Beispiel

Ein Windows-Job-Objekt wird verwendet, um eine vorhandene Datei zu bearbeiten. Während der Ausführung dieses Jobs tritt ein logischer Fehler auf. Trotz dieser Tatsache endet der Job normal (ENDED_OK) mit dem Systemrückgabewert 0. Dies ist der Standard-Rückgabewert, wenn kein technischer Fehler auftritt. Um festzustellen, ob während der Ausführung ein Fehler aufgetreten ist, müssen Sie den Job-Report analysieren und den Systemrückgabewert in ENDED_NOT_OK ändern, wenn etwas schief gelaufen ist:

Um diese Situation zu veranschaulichen, verwenden Sie auf der Seite "Prozess" folgende JCL (Job Control Language):

@echo off
echo "#**********************************************************#"
echo "#* the started process produced an error - ReturnCode: 1 *#"
!echo "#* the started process did run successfully *#"
echo "#**********************************************************#"
echo %errorlevel%
@if NOT %ERRORLEVEL% == 0 goto :retcode

Der Job wird normal beendet, und sein Report (REP) zeigt die folgenden Informationen an:

c:\M123WS\B\agents\win64\bin\UCXJWX6M.EXE JNR=0007694321 MNR=0100 PNR=2611 IPA=10.49.164.60 TYP=S TXT=" Job started"

Program 'UC4 Job Messenger' version '12.3.3' started

UCMDJP: *********************************************************************

UCMDJP: ** JOB 0007694321 (ProcID:0000011976) START AT 15.04.2020/16:54:40 **

UCMDJP: ** UTC TIME 15.04.2020/14:54:40 **

UCMDJP: ** --------------------------------------------------------------- **

UCMDJP: ** USED: 0.000 CPU **

UCMDJP: ** 3 PROCESSES **

UCMDJP: ** 6274 PAGE FAULTS **

UCMDJP: *********************************************************************

Program 'UC4 Job Messenger' version '12.3.3' terminated normally

ECHO is off.

"#*********************************************************#"

"#* der gestartete Prozess hat einen Fehler erzeugt - ReturnCode: 1 *#"

"#*********************************************************#"

0

Program 'UC4 Job Messenger' version '12.3.3' started

UCMDJP: *********************************************************************

UCMDJP: ** JOB 0007694321 (ProcID:0000011976) ENDED AT 15.04.2020/16:54:40 **

UCMDJP: ** UTC TIME 15.04.2020/14:54:40 **

UCMDJP: ** --------------------------------------------------------------- **

UCMDJP: ** USED: 0.000 CPU **

UCMDJP: ** 4 PROCESSES **

UCMDJP: ** 8693 PAGE FAULTS **

UCMDJP: *********************************************************************

Program 'UC4 Job Messenger' version '12.3.3' terminated normally

Um den Job-Report zu analysieren, verwenden Sie das folgende Script auf der Seite Post-Prozess des Jobs:

:SET &HND# = PREP_PROCESS_REPORT(,,,"*error*")
:
PROCESS &HND#
:  
MODIFY_STATE STATUS_TEXT="Ein logischer Fehler ist aufgetreten"
:  
MODIFY_STATE RETCODE=1

: FORMAT
:
ENDPROCESS

PREP_PROCESS_REPORT analysiert den Job-Report und erkennt, dass das Wort "*error" darin vorkommt. Aus diesem Grund wird :MODIFY_STATE verwendet, um den vorhandenen Rückgabewert von 0 in 1 zu ändern, wodurch der entsprechende (Windows)-BS-Fehlercode simuliert wird. Der Post-Processing-Report (POST) zeigt diese Informationen an, und der Job wird abgebrochen.

Tipps:

Siehe auch:

seealso

Fehlerbehandlung in Scripts

Benachrichtigung (CALL)

Benutzer-Rückgabewerte von ausführbaren Objekten

System-Rückgabewerte von ausführbaren Objekten