Die &&KILL_RPC-Flag verwenden

Die &&KILL_RPC-Flag ist eine ReportCaster-Ampervariable, die Sie in einer Vorverarbeitungsprozedur verwenden können, wenn Sie die Verarbeitung des ReportCasters stoppen möchten und die geplante Prozedur nicht auf einer Bedingung basierend ausführen möchten. Die Bedingung kann die Existenz eines Datenabrufs oder eine Beschränkung der Tage, an denen Zeitpläne ausgeführt werden können, sein. Dieser Code, der die Bedingung auswertet, kann eine Kombination von Dialogue Manager und FOCUS sein, der durch den WebFOCUS Reporting Server unterstützt wird. Die Ampervariable &&KILL_RPC muss mit dem Dialogue Manager eingestellt werden.

Der folgende Mustercode wurde so konfiguriert, dass er als Vorverarbeitungsprozedur ausgeführt wird. Er stoppt die Anfrage, wenn sich das aktuelle Datum in einer Liste der Urlaubstage befindet.

-*
-* TEST CURRENT DATE AGAINST A CALENDAR OF BUSINESS EXCEPTION DAYS
-* The assumption here is that the dates in the data file are in 
-* ascending order
FILEDEF HDAYRCLB DISK C:\IBI\APPS\BASEAPP\HDAYRCLB.DAT
-RUN
-*
-SET &TDAYX = &YYMD;
-SET &&KILL_RPC = 'N';
-*
-*set PREV_DATE to some value that will cause the first IF to continue 
-* the loop
-SET &PREV_DATE = 00000101;
-REPEAT DATELOOP WHILE &&KILL_RPC NE 'Y';
-READ HDAYRCLB &FILEDATE.I8
-SET &&KILL_RPC = IF &TDAYX EQ &FILEDATE THEN 'Y' ELSE 'N';
-IF &PREV_DATE GE &FILEDATE THEN GOTO ENDME;
-SET &PREV_DATE = &FILEDATE;
-DATELOOP
-ENDME

In der folgenden Abbildung sehen Sie die Information, die im Log-Report angezeigt wird, einschließlich der Meldungen Executing pre-execution RPC 1 und User termination via KILL_RPC flag.

Jobverarbeitungs-Log-Report

Wenn &&KILL_RPC auf Y gestellt ist, um die Ausführung eines geplanten Jobs zu stoppen, wird per Default das NEXTRUNTIME-Intervall auf den nächsten Ausführungszeitpunkt für den Zeitplan gestellt, der im WebFOCUS-Repository gespeichert ist. Es wird außerdem die Benachrichtigung Bei Fehler-Bedingung ausgelöst, wenn der Zeitplan angehalten wird. Sie können dieses Verhalten über die folgenden globalen Variablen in der Vorausführung-Prozedur steuern:

Der folgende Muster-Code verwendet das vorherige Beispiel und fügt die globalen Variablen Nächster Ausführungszeitpunkt und Benachrichtigung für &&KILL_RPC hinzu, so dass der nächste Ausführungszeitpunkt des Zeitplans nicht zurückgesetzt wird und die Bei Fehler-Benachrichtigung nicht gesendet wird, wenn der Zeitplan gestoppt wird, da sich das aktuelle Datum in der Feiertagsliste befindet.

-*
-* TEST CURRENT DATE AGAINST A CALENDAR OF BUSINESS EXCEPTION DAYS
-* The assumption here is that the dates in the data file are in 
-* ascending order
FILEDEF HDAYRCLB DISK C:\IBI\APPS\BASEAPP\HDAYRCLB.DAT
-RUN
-*
-SET &TDAYX = &YYMD;
-SET &&KILL_RPC = 'N';
-SET &&KILL_RPC_NRT = 'N';
-SET &&KILL_RPC_ERR = 'N';
-*
-*set PREV_DATE to some value that will cause the first IF to continue 
-* the loop
-SET &PREV_DATE = 00000101;
-REPEAT DATELOOP WHILE &&KILL_RPC NE 'Y';
-READ HDAYRCLB &FILEDATE.I8
-SET &&KILL_RPC = IF &TDAYX EQ &FILEDATE THEN 'Y' ELSE 'N';
-IF &PREV_DATE GE &FILEDATE THEN GOTO ENDME;
-SET &PREV_DATE = &FILEDATE;
-DATELOOP
-ENDME

WebFOCUS