Como Utilizar a Bandeira &&KILL_RPC

A bandeira &&KILL_RPC é uma variável ampersand do ReportCaster que você pode utilizar em um procedimento pré-processamento quando desejar interromper o processamento do ReportCaster e não executar o procedimento agendado com base em uma condição. A condição pode ser a existência de um extrato de dados ou uma restrição nos dias em que os agendamentos possuem permissão para serem executados. O código para avaliar a condição pode ser uma combinação do Gerenciador de Diálogo e do FOCUS suportada pelo Servidor de Relatório do WebFOCUS. A variável campo &&&&KILL_RPC deve ser definida através do Gerenciador de Diálogo.

O código de exemplo a seguir pode ser configurado para ser executado como um procedimento pré-processamento. Ele interrompe uma solicitação se a data atual estiver na lista de 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

A imagem a seguir mostra as informações que aparecem em um relatório de log, incluindo as mensagens Executando RPC s de pré-execução e interrupção do usuário via bandeira KILL_RPC.

Relatório de Log do Processamento de Tarefa

Quando &&&&KILL_RPC estiver definido como Y para interromper a execução de umtrabalho agendado, o comportamento padrão é definir o intervalo NEXTRUNTIME para o valor da próxima execução do agendamento armazenado no Repositório do WebFOCUS e acionar a condição Notificação Em Erro quando o agendamento for interrompido. Você pode controlar este comportamento utilizando as seguintes variáveis globais no procedimento de pré-execução:

O código de exemplo a seguir utiliza o exemplo anterior e adicionar as variáveis globais do horário da próxima execução e da notificação para &&&&KILL_RPC para que o horário da próxima execução do agendamento não seja restaurado e a notificação Em Erro não seja enviada caso o agendamento seja interrompido, pois a data atual se encontra na lista de 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