SCHEDDEF()

No novo Schedule existe uma forma para a definição dos Perguntes para o botão Parâmetros, além do cadastro das funções no SXD.

Ao definir em sua rotina a static function SchedDef(), no cadastro da rotina no Agendamento do Schedule será verificado se existe esta static function e irá executá-la habilitando o botão Parâmetros com as informações do retorno da SchedDef(), deixando de verificar assim as informações na SXD. O retorno da SchedDef deverá ser um array com o seguinte padrão:

aReturn[1] - Tipo: "P" - para Processo, "R" -  para Relatórios

aReturn[2] - Nome do Pergunte  

aReturn[3] - Alias  (para Relatório)

aReturn[4] - Array de ordem  (para Relatório)

aReturn[5] - Título (para Relatório)

 

Observações:

Exemplo de definição da SchedDef:

 

User function TSTSCHD()

conout("Executando Tarefa " + FWGetIdTask() )

Pergunte("ACA070", .F.)    

If IsBlind() 

BatchProcess("Teste","Teste",,{ || TSTExec() })

EndIf

Return

Static Function TSTExec()

conout("MV_PAR01 " +  MV_PAR01)

conout("MV_PAR02 " +  MV_PAR02)

conout("MV_PAR03 " +  MV_PAR03)

Return        

Static Function Scheddef()

Local aParam

Local aOrd     := {OemToAnsi(" Por Codigo         "),OemToAnsi(" Alfabetica         ")}

aParam := { "P",;                      //Tipo R para relatorio P para processo   

"ACA070",;// Pergunte do relatorio, caso nao use passar ParamDef            

"SA1",;  // Alias            

aOrd,;   //Array de ordens   

"Teste SchedDef"}    

Return aParam

 

FWGetIdTask()

Função que retorna o Id da tarefa(Agendamento + Código) que está sendo executada pelo novo Schedule. Esta função pode ser chamada somente se a Static Function SchedDef() estiver definida no fonte.

Para rotinas especiais(que não possuem Static Function SchedDef ), onde os parâmetros são passados via linha, o Id da tarefa será passado na ultima posição do array recebido como parâmetro.

Exemplo:

Ao cadastrar o agendamento do Schedule da User Function abaixo, informado no campo Rotina a seguinte informação: U_TSTSCHD1("A","B").

Quando o novo Schedule executar esta rotina, a mesma irá receber um array com os parâmetros passados no agendamento + Código Grupo Empresa + Código Filial + Código Usuário + Id da tarefa.

User function TSTSCHD1(aParam)

conout("Parametro 1: " + aParam[1])

conout("Parametro 2: " + aParam[2])

conout("Grupo Empresa: " + aParam[3])

conout("Filial: " + aParam[4])

conout("User: " + aParam[5])

conout("Id Tarefa: " + aParam[6])                                                                  

Return

 

Resultado: