Mudanças entre as edições de "TPHProcesso"

(Criou página com 'O objeto TPHProcesso é utilizado para monitoramento de scripts de executados junto ao servidor de aplicação, principalmente quando realizado de forma assíncrona. O acompan...')
 
(Exemplo)
 
(5 revisões intermediárias pelo mesmo usuário não estão sendo mostradas)
Linha 1: Linha 1:
O objeto TPHProcesso é utilizado para monitoramento de scripts de executados junto ao servidor de aplicação, principalmente quando realizado de forma assíncrona. O acompanhamento da execução poderá ser realizado através do PHERP ou Serverconf, conforme descrito em [[Processos|processos]].  
+
O objeto TPHProcesso é utilizado para monitoramento de scripts executados junto ao servidor de aplicação, principalmente quando realizado de forma assíncrona. O acompanhamento da execução poderá ser realizado através do PHERP ou Serverconf, conforme descrito em [[Processos|processos]].  
  
 
===Propriedades===
 
===Propriedades===
Linha 31: Linha 31:
 
   { Exemplo aplicação da classe TPHProcesso ao script  }
 
   { Exemplo aplicação da classe TPHProcesso ao script  }
 
    
 
    
   ScriptObj := TPHProcScript.Create;
+
   procedure ProcessoTeste;
   try
+
  var
     ScriptObj.ScriptNome := 'C_ImportacaoXML';
+
    P:TPHProcesso;
     ScriptObj.Procedimento                          := 'ImportaXML';
+
    I:Integer;                      
    ScriptObj.RequestTimeOut                        := 300000;  
+
   begin
    // Pode ser informado diversos parâmetros para serem lidos no servidor
+
     P := NewPHProcesso;
    ScriptObj.ParamByName('Arquivo').AsString      := ConteudoXML;
+
     try
    ScriptObj.ParamByName('DocumentoID').AsLargeInt := IDDocumento;
+
      p.Identificacao := 'Processo teste';
   
+
      p.ProcessoTotal := 100;
    // Método para executar
+
      p.Iniciar;
    ScriptObj.Executar;
+
      try           
    // Pegar parâmetros do Retorno
+
        for I := 0 to 99 do
    Result := ScriptObj.ParamByName('Resultado').AsString;  
+
        begin
  finally
+
          p.Processo := I;
    ScriptObj.Free;                            
+
          { Código do seu processo }                                                               
 +
          p.Atualizar;
 +
          Sleep(100);                                                          
 +
        end;
 +
        p.Concluir;                  
 +
      except
 +
        p.AddLog(MensagemErro);
 +
        p.Erro;                    
 +
      end;             
 +
    finally
 +
      P.Free;                  
 +
    end; 
 
   end;
 
   end;
 +
 +
 +
Para que o script seja executado diretamente no servidor, é necessário que a chamada seja por agendamento ou por script iniciado no cliente conforme descrito em [[TPHProcScript]].

Edição atual tal como às 19h25min de 25 de fevereiro de 2023

O objeto TPHProcesso é utilizado para monitoramento de scripts executados junto ao servidor de aplicação, principalmente quando realizado de forma assíncrona. O acompanhamento da execução poderá ser realizado através do PHERP ou Serverconf, conforme descrito em processos.

Propriedades

Nome Tipo Descrição
Identificação String Nome de identificação do processo que será executado.
Percentual Total Double Valor correspondente ao total de registros ou itens que serão processados. Exemplo: 100.
Percentual Double Valor correspondente ao ponto atual da execução do processo. Exemplo: Se o processo estiver na metade, informar 50, quando 100 foi o percentual total informado.

Procedimentos

  • Iniciar: Iniciar o registro do processo junto a tabela DB_PROCESSOS.
  • Atualizar: Atualizar o percentual junto ao registo do processo.
  • Cancelar: Registrar o cancelamento do processo.
  • Concluir: Registrar a conclusão do processo.
  • Erro: Registrar que ocorreu erro no processo.
  • AddLog(pLog:String): Adicionar registro de log ao processo.

Exemplo

 { Exemplo aplicação da classe TPHProcesso ao script  }
 
 procedure ProcessoTeste;
 var
   P:TPHProcesso;
   I:Integer;                        
 begin
   P := NewPHProcesso;
   try
     p.Identificacao := 'Processo teste';
     p.ProcessoTotal := 100;
     p.Iniciar;
     try            
       for I := 0 to 99 do
       begin
         p.Processo := I;
         { Código do seu processo }                                                                
         p.Atualizar;
         Sleep(100);                                                            
       end;
       p.Concluir;                    
     except
       p.AddLog(MensagemErro);
       p.Erro;                      
     end;              
   finally
     P.Free;                    
   end;  
 end;


Para que o script seja executado diretamente no servidor, é necessário que a chamada seja por agendamento ou por script iniciado no cliente conforme descrito em TPHProcScript.