Duvida Log na inclusão/alteração da reserva da OP

Discussão em 'Progress 4GL' iniciado por lm1979, Agosto 29, 2016.

  1. rafael.andrade

    rafael.andrade Membro Master Moderador Equipe de Suporte

    Você também consegue pegar o valor antes e depois da alteração usando OLD.reservas, se não me falha a memória.

    Assim dá pra fazer um log tipo: o usuário X alterou o valor de 100 para 250.
  2. bootstrapmaster

    bootstrapmaster Moderator Moderador Equipe de Suporte

    Tipo essa que verifica se houve alteração na char-2 da nota fiscal .....

    Código:
    DEF PARAMETER BUFFER b-nota-fiscal      FOR nota-fiscal.
    DEF PARAMETER BUFFER b-old-nota-fiscal  FOR nota-fiscal.
    
    DEF NEW GLOBAL SHARED VAR c-seg-usuario AS CHAR FORMAT "x(12)" NO-UNDO.
    
    DEF VAR level AS INT INITIAL 1.
    DEF VAR c-arquivo AS CHAR FORMAT "x(50)" .
    
    {utp/ut-glob.i}                           
    
    if  SUBSTRING(b-nota-fiscal.char-2,3,60) <> SUBSTRING(b-old-nota-fiscal.char-2,3,60) THEN DO:
                                               
        ASSIGN c-arquivo = "C:/DATASUL/SPOOL/tw-chave" + b-nota-fiscal.nr-nota-fis + ".txt".
    
        OUTPUT TO VALUE(c-arquivo) APPEND CONVERT TARGET "iso8859-1". 
    
        DISP skip "Cod Estabel...........: " b-nota-fiscal.cod-estabel                  NO-LABEL
             SKIP "Serie.................: " b-nota-fiscal.serie                        NO-LABEL
             SKIP "Nr Nota Fis...........: " b-nota-fiscal.nr-nota-fis                  NO-LABEL
             SKIP "Chave Antiga..........: " SUBSTRING(b-old-nota-fiscal.char-2,3,60)   NO-LABEL    FORMAT "x(60)"
             SKIP "Chave Nova............: " SUBSTRING(b-nota-fiscal.char-2,3,60)       NO-LABEL    FORMAT "x(60)"
             skip "Data..................: " today
             skip "Hora..................: " string(time,"hh:mm:ss")
             skip "Usuario...............: " c-seg-usuario                              NO-LABEL .
    
        REPEAT WHILE PROGRAM-NAME(level) <> ?.
            DISPLAY LEVEL PROGRAM-NAME(level) FORMAT "x(60)" SKIP.
            level = level + 1.                                   
        END.                                                     
        OUTPUT CLOSE.                                            
    END.                                                         
    
    RETURN "OK".
    
  3. lm1979

    lm1979 Membro Participativo

    Bom dia,
    Valeu pela dica.
    Agora está tudo funcionando.
    Muito obrigado.

    Att,
    Leandro.
  4. lm1979

    lm1979 Membro Participativo

    Boa tarde pessoal,
    Retomando esse assunto...
    A triggers está funcionando redondinha, mas agora surgiu uma nova necessidade, agora eu tenho que gravar o log somente quando a alteração/inclusão for feita pelo programa CP0301.
    De que forma posso fazer isso?

    Att,
    Leandro.
  5. rafael.andrade

    rafael.andrade Membro Master Moderador Equipe de Suporte

    Então é melhor usar UPC do que trigger
  6. lm1979

    lm1979 Membro Participativo

    Bom dia,
    Então Rafael, na UPC eu consigo pegar o valor do campo antes da alteração, na trigger é mais fácil pegar o valor antigo e o novo valor.
    Como ficaria na UPC?

    Att,
    Leandro.

Compartilhe esta Página