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.
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 |