Pensando nisso, fiz o seguinte: Criei um alert chamado Info e uma procedure assim:
PROCEDURE INFO(P_MENSAGEM IN VARCHAR2
,P_IS_ERRO IN BOOLEAN default false) IS
v_number number;
BEGIN
set_alert_property('INFO' ,alert_message_text,p_mensagem);
v_number := show_alert('INFO');
if v_number = alert_button1 then
if p_is_erro then
raise form_trigger_failure;
end if;
end if;
END;
DECLARE
TIPO_ERRO VARCHAR2(03) := ERROR_TYPE;
CODIGO_ERRO NUMBER := ERROR_CODE;
errtxt VARCHAR2(80) := ERROR_TEXT;
BEGIN
IF (TIPO_ERRO = 'FRM') AND (CODIGO_ERRO = 40401) THEN
--Nenhuma alteração a ser feita
BELL;
INFO('Nenhuma alteração a ser Gravada...', false);
else
IF (TIPO_ERRO = 'FRM') AND (CODIGO_ERRO = 40200) THEN
--Campo está protegido
BELL;
INFO('Campo está protegido contra edição...', false);
else
--Erro inesperado...
BELL;
INFO('Erro: '||TIPO_ERRO||'-'||TO_CHAR(CODIGO_ERRO)||': '||errtxt, false);
end if;
end if;
END;
E na Trigger ON-MESSAGE:
DECLARE
TIPO_MENSAGEM VARCHAR2(03) := MESSAGE_TYPE;
CODIGO_MENSAGEM NUMBER := MESSAGE_CODE;
MESSTXT VARCHAR2(80) := MESSAGE_TEXT;
BEGIN
IF (TIPO_MENSAGEM = 'FRM') AND (CODIGO_MENSAGEM = 40400) THEN
--Registro aplicado e salvo
BELL;
info('Registro Salvo com Sucesso!!', false);
ELSE
--Mensagem inesperada...
BELL;
info('Mensagem: '||TIPO_MENSAGEM||'-'||TO_CHAR(CODIGO_MENSAGEM)||': '||MESSTXT, false);
end if;
END;
Alguém tem mais idéias nesse sentido!?
Abraços!
