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

Duvida Erro em tabela durante a chamada da procedure SUPER

Discussão em 'Progress 4GL' iniciado por flavia.nicacio, Março 7, 2017.

  1. flavia.nicacio

    flavia.nicacio Sem Pontuação

    Olá!

    Estou ajustando um programa que, no momento da atualização da tabela utilizada na tela, chama a procedure Super.

    Quando crio um registro na tela, ele é criado normalmente, sem erro. Se eu continuar com a tela aberta e precisar alterar o registro, quando vou salvar novamente aparece o erro "Field(s) have been changed by another user. Your change have been rejected. Update cancelled." Identifiquei que este erro ocorre durante a chamada da procedure Super.

    Gostaria de ajuda para saber que procedure é essa e o que posso fazer para corrigir isso. Alguém poderia me ajudar?
  2. rafael.andrade

    rafael.andrade Membro Master Moderador Equipe de Suporte

    Mostra o código e como você chegou a essa conclusão.
  3. flavia.nicacio

    flavia.nicacio Sem Pontuação

    Rafael, não consigo enviar agora o código, mas segue o print dele.

    A procedure updateRecord é chamada quando o registro é salvo.

    Sei que o problema está aí porque, conforme consta abaixo, coloquei msgs antes e depois. A primeira msg aparece antes do erro e a segunda não aparece quando o mesmo ocorre.

    Se precisar de mais alguma informação, é só falar.

    Obrigada!!

    upload_2017-3-8_9-12-59.png
  4. ds201

    ds201 Membro Participativo

    Boa tarde

    Talvez seja preciso ler novamente o registro após a execução da rotina Super.

    Sds
  5. flavia.nicacio

    flavia.nicacio Sem Pontuação

    @ds201, mas durante a execução dessa rotina é que é apresentada a mensagem de erro "Field(s) have been changed by another user. Your change have been rejected. Update cancelled."

    É como se, ao incluir o registro, a tabela ficasse travada para qualquer alteração e só fosse liberada após a saída do programa.

    Como eu posso saber o que é executado nessa procedure super?
  6. rafael.andrade

    rafael.andrade Membro Master Moderador Equipe de Suporte

    Tenta fazer o seguinte.

    Após o create e assign do novo registro, fora do IF NOT AVAIL e ainda do DO TRANS, coloca:
    FIND CURRENT rhgp_tt-envio NO-LOCK NO-ERROR.
    flavia.nicacio curtiu isso.

Compartilhe esta Página