Boa tarde,
Estou tendo sérios problemas com esses eventos.
Existe uma função que faz uma validação geral da tela, eu a chamo de “valida()”, a primeira vez que faço sua utilização é no evento onLoad, e ela agi corretamente.
Porém quando vou salvar as alterações dos valores da tela faço uma outra verificação no evento onBeforeUpdate que também está funcionando perfeitamente, porém os erros começam a partir disso.
A função “valida()” foi feita para funcionar nos eventos onValidateFailure e onValidateSuccess também. Porém quando um erro é lançado no evento onBeforeUpdate( uso a função sc_error_message para lançar o erro) é como se a função “valida()” que está nos eventos onValidateFailure e onValidateSuccess executasse antes do onBeforeUpdate e dessa forma o erro some (é corrgido pela função “valida()”) e passa pela verificação.
Digo que é como se a função “valida()” executasse antes pois quando comento essa função do código o erro volta a funcionar perfeitamente e é lançado para o usuário.
Avançando nos meus testes descobri que mesmo quando eu lanço o erro no evento onBeforeUpdate com a macro sc_error_message o evento chamado é o onValidateSuccess e não o onValidateFailure.
Dessa forma tentei levar o código da função “valida()” para este evento, mas dessa forma ele não executa corretamente, ela entra nas condições corretas, mas não está fazendo as alterações necessárias na tela, o que não faz sentido pois o código foi copiado da função “valida()” que funciona perfeitamente no evento onLoad.
Bom gostaria de saber se alguém já teve problemas com essas funções, e também gostaria de mais informações desses eventos, se eles são síncronos ou assíncronos, se a macro sc_error_message() realmente indica um erro ou apenas mostra uma string para o usuário.
Se alguém tiver mais informações sobre esses eventos ou possíveis explicações para esses fatos serei grato.