El indicador &&KILL_RPC es una variable ampersand de ReportCaster que se puede usar en un procedimiento previo al procesamiento cuando desea detener el procesamiento de ReportCaster y no ejecutar el procedimiento programado basado en una condición. La condición puede ser la presencia de un extracto de datos o una restricción en los días que las programaciones se puedan ejecutar. El código para evaluar la condición puede ser una combinación de Dialogue Manager y FOCUS admitida por el servidor de informes WebFOCUS. La variable de ampersand &&KILL_RPC debe establecerse con Dialogue Manager.
El código que sigue como ejemplo ha sido configurado para ejecutarse como procedimiento previo al procesamiento. Detiene una solicitud si la fecha actual se encuentra en una lista de días feriados.
-* -* 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
La imagen siguiente muestra la información del informe de registro, que incluye los mensajes Ejecutando RPC-1 previo a la ejecución y Terminado por el usuario con el indicador KILL_RPC.
Cuando &&KILL_RPC se ha establecido en Y para detener la ejecución de un trabajo programado, el comportamiento predefinido establece el intervalo NEXTRUNTIME en el valor de próxima hora de ejecución de la programación almacenada en el repositorio de WebFOCUS, y dispara la condición Notificación Erróneo cuando se detiene la programación. Para controlar este comportamiento, utilice las siguientes variables globales en un procedimiento de pre-ejecución:
El siguiente código de ejemplo toma el ejemplo anterior y añade la próxima hora de ejecución y las variables globales de notificación de &&KILL_RPC, para que la próxima hora de ejecución no se restablezca, y la notificación En error no se envíe, en el caso de que la programación se detenga debido a que la fecha actual pertenece a lista de días feriados.
-* -* 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 |