Hoje quando estamos desenvolvendo, testando ou homologando um processo Peoplesoft seja ela um SQR, um App. Engine ou um COBOL somos questionados sobre a performance e o “tempo de processamento”. Quanto tempo este processo está onerando?

Você pode controlar o tempo de processamento de uma determinada procedure ou um passo dentro do SQR. A solução proposta também pode ser aplicada a uma determinada função em PeopleCode, um determinado Step dentro de um App. Engine ou um processo inteiro.

Abaixo segue um exemplo deste controle de tempo em SQR.

Figura 1. No exemplo acima estamos realizando a medição de todo o programa SQR.

            Begin-Program

 

            let $tempo_inicial = edit(datenow(), 'DD/MM/YYYY-HH:MI:SS:NNNN')
            
             
            
               do Procedure_1
            
             
            
            let $tempo_final = edit(datenow(), 'DD/MM/YYYY-HH:MI:SS:NNNN')
            
             
            
            let #tempo_total = datediff(strtodate($tempo_final,'DD/MM/YYYY-HH:MI:SS:NNNN'), strtodate($tempo_inicial,'DD/MM/YYYY-HH:MI:SS:NNNN),'minute')
            
             
            
            show 'Tempo Total de Processamento =  ' #tempo_total  'minutes'
            
            End-Program
        

Na primeira linha do nosso programa a variável $tempo_inicial guarda o momento exato em que o processamento foi startado. Utilizamos o comando edit para formatar o retorno da função DATENOW() que traz a data/hora do sistema.

Na segunda linha utilizamos a sentença de controle ( do ) que faz a chamada a uma procedure (Procedure_1). Neste nosso exemplo dentro da rotina principal “Begin-Program” possuímos a chamada a uma única procedure.

Caso esta procedure não esteja chamando outras procedures, o tempo total de processamento será o tempo gasto pela Procedure_1.

Caso contrário, se a Procedure_1 estiver chamando outras Procedures o tempo total de processamento será o tempo gasto por todas as procedures envolvidas no processo.

Na terceira linha a variável $tempo_final guarda o momento exato em que o processamento foi finalizado. Como foi feito na primeira linha com a variável $tempo_inicial utilizamos o comando edit para formatar o retorno da função DATENOW() que traz a data/hora do sistema.

Vale observar que não há nenhuma lógica detalhada após o momento em que a variável $tempo_final é preenchida. Isto significa que o tempo de processamento para qualquer instrução que venha após a atribuição da variável $tempo_final não será calculado.

Na quarta linha a variável #tempo_total é atribuída com a diferença entre as variáveis $tempo_final e $tempo_inicial. O resultado do tempo gasto no processamento do programa SQR é exibido em minutos.

Na quinta e última linha uma mensagem é exibida com o texto “Tempo Total de Processamento = ” concatenada com o valor da variável #tempo_final.