1. This site uses cookies. By continuing to use this site, you are agreeing to our use of cookies. Learn More.

  2. Anuncie Aqui ! Entre em contato fdantas@4each.com.br

Urgente UPC para criticar campos do CD0903 - Campos em vários folders

Discussão em 'Progress 4GL' iniciado por ds201, Novembro 16, 2021.

  1. rafael.andrade

    rafael.andrade Membro Master Moderador Equipe de Suporte

    O problema do before é que o registro aind não foi atualizado ou gerado, então não seria muito útil se quiser usar o rowid
  2. ds201

    ds201 Membro Participativo

    Parece que vou ter que fazer do jeito antigo...
  3. bootstrapmaster

    bootstrapmaster Moderator Moderador Equipe de Suporte

    Em todos os casos, ele tem o rowid ou recid, pois o registro está no buffer, só não atualizou o banco, essa é a beleza das transações, mas tem que ter os eventos, caso não haja os eventos, porque o programa estaria usando o tal de DDK2000, o que vc pode fazer é uma trigger de write no banco, dai vc valida tudo que precisar sem problemas também, vantagem da trigger ???? qualquer write que acontecer na tabela ele já valida, não importa o programa.
  4. ds201

    ds201 Membro Participativo

    Este ideia da trigger e boa.

    Uma última duvida: Os eventos que o programa gera são estes abaixo.
    ENABLE
    AFTER-ENABLE
    VALIDATE
    AFTER-VALIDATE
    BEFORE-ASSIGN
    ASSIGN
    END-UPDATE
    AFTER-END-UPDATE
    DISABLE
    AFTER-DISABLE
    BEFORE-DISPLAY
    DISPLAY
    Os eventos END-UPDATE e AFTER-END-UPDATE tem relação com "BEFORE-ASSIGN"?
  5. bootstrapmaster

    bootstrapmaster Moderator Moderador Equipe de Suporte

    Sim, BEFORE-ASSIGN antes de salvar os dados no registro, ASSIGN é gravando o registro, END-UPDATE é finalizando o registro e AFTER-END-UPDATE depois que salvou o registro, então, deveria usar o AFTER-END-UPDATE pra suas travas, isso se ele te entrega o recid ou rowid do registro.
  6. ds201

    ds201 Membro Participativo

    Boa noite

    Eu tentei com o "AFTER-END-UPDATE" mas não funcionou bem. A mensagem era exibida, mas o RETURN "NOK" não forçava o sistema a desfazer a transação.
    No fim minha UPC se comportava como se ela fosse apenas para gerar advertência, sem impedir a gravação com erro (em relação as regras de negócio).

    E no fim eu acabei usando a "Trigger de write". Foi até bem fácil a codificação.
    Obrigado a todos pelo apoio.

Compartilhe esta Página