Como mostrar uma mensagem de erro e interromper a operação do usuário

mensagem de erro - post

Uma necessidade clássica no Oracle EBS é mostrar uma mensagem de erro para o usuário em determinados momentos.

Existem outros tipos de mensagens (Warning, Debug, Hint, etc), mas a de erro é uma das mais importantes, justamente porque impede que o usuário faça algo indesejado.

Apenas mostrar a mensagem é algo bem básico e trivial, mas o que muitos não sabem é que a mensagem do tipo erro também aborta o processo e impede que o usuário continue o que estava fazendo enquanto não estiver de acordo com as condições exigidas pelas regras de negócio definidas.

A solução utilizará o tipo de ação Message do Oracle Form Personalization.

Se interessou? Então acompanhe esse artigo para saber mais sobre:

  • Mensagem de erro
  • Interrompendo com o RAISE

Mensagem de erro

Quando precisamos validar alguma ação do usuário e impedir que ele continue caso essa validação falhe, utilizamos uma mensagem do tipo Erro no Personalization:

mensagem de erro - sample

Esse tipo de mensagem já mostra o ícone característico de erro do Oracle EBS e deixa claro que algo está errado e precisa ser corrigido.

Antes de definir a mensagem, precisamos configurar a condição que irá disparar o erro:

mensagem de erro - condição

No exemplo acima a personalização verifica se o campo Printing Lead Days da tela de Payment Terms está preenchido.

Essa condição pode utilizar SQL e fazer consultas diretamente no banco de dados, pode também utilizar colunas do form, conteúdo de profiles, variáveis globais, etc.

E para configurar uma mensagem de erro, é só escolher esse tipo em Message Type e informar o texto da mensagem:

mensagem de erro - type error

A mensagem também pode conter conteúdos dinâmicos, exemplo: Conteúdo de colunas do form, profiles, variáveis globais e até mesmo comandos SQL.

Pronto! A mensagem está configurada.

Interrompendo com o RAISE

A builtin RAISE FORM_TRIGGER_FAILURE do Oracle Forms lança uma exceção e aborta a operação, impedindo que o processo continue.

Ela também pode ser utilizada no Form Personalization:

mensagem de erro - raise

Mas como estamos utilizando a mensagem do tipo Error, não é necessário efetuar essa chamada, essa builtin já é executada implicitamente.

Logo após mostrar a mensagem para o usuário e explicar qual o problema, o processo é automaticamente interrompido.

Se o usuário está alterando ou criando um registro na tela de Payment Terms, deixar o campo Printing Lead Days em branco e tenta salvar, a mensagem é mostrada e o processo de COMMIT é interrompido.

Conclusão

Apesar de ser um recurso extremamente básico e simples, pode evitar problemas sérios.

A situação mostrada acima poderia ter sido realizada com a personalização da propriedade REQUIRED do campo Printing Lead Days, tornando-o obrigatório.

Esse é um dos métodos mais utilizados para esse caso, mas em algumas telas forms pode não funcionar adequadamente.

Então para essas situações, o uso da mensagem do tipo erro (que tem o RAISE implícito) atende perfeitamente.

Nesse caso a manipulação da propriedade REQUIRED é descartada.

Legal, não é mesmo?

Já baixou o eBook gratuito “11 incríveis usos de Oracle EBS Personalization que você precisa conhecer”? Se ainda não, baixe agora mesmo e confira exemplos práticos de personalizações Forms e OAF.

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *