Está en la página 1de 18

Comunicación con el

usuario
• La forma en que Oracle Forms
se comunica con el usuario es
mediante mensajes durante la
ejecución.
• Los tipos de mensajes que nos
podemos encontrar son:
– Un mensaje de información
– Un mensaje de error
– Un mensaje de trabajo
– Una alerta del sistema
• Además nuestros mensajes:
– Un mensaje de aplicación
– Una alerta de aplicación
Tema 22_Alertas 1
Runform
Tipos de mensajes
• Mensaje de información:
– Comunica al usuario del estado actual
del proceso o proporciona información
sobre el contexto. Ej: mensaje
asociado al commit.
– Aparece en la línea de mensajes y si
está ocupada, como una alerta en una
ventana modal.
– La aparición de estos mensajes se
puede suprimir con el disparador ON-
MESSAGE
• Mensaje de error:
– Este mensaje informa al usuario sobre
un error que impide la acción actual.
– Ej: errores relacionados con las
excepciones producidas.
– La aparición de este mensaje se
puede suprimir con el disparador ON-
ERROR.

Tema 22_Alertas 2
Runform
Tipos de mensajes
• Mensaje de trabajo:
– Este mensaje informa al usuario de
que Oracle Forms está procesando.
– Este mensaje se puede suprimir si se
establece el valor TRUE para la
variable de sistema
SUPRESS_WORKING, y lo podemos
hacer por ejemplo en el evento
WHEN-NEW-FORM-INSTANCE
– :SYSTEM.SUPRESS_WORKING:=‘T
RUE’;
• Alerta del sistema:
– Aparece como una ventana modal.
– Las alertas proporcionan información
al usuario y esperan una respuesta
antes de continuar el procesamiento.
– Cuando hay más de un mensaje
esperando aparecer en la línea de
mensajes, el mensaje activo también
aparece como una alerta

Tema 22_Alertas 3
Runform
Tipos de mensajes
• Un mensaje de aplicación:
– Se trata de un mensaje que se
construye con el MESSAGE.
• Alerta de la aplicación:
– Se trata de una alerta que se
diseña como parte de una
aplicación.
– Se emite para comunicar algo al
usuario y espera una respuesta
de éste.
– Se crea con el subprograma
SHOW_ALERT().

Tema 22_Alertas 4
Runform
Control de los mensajes
del sistema
• Supresión de los mensajes en
función de su severidad:
– Oracle Forms clasifica cada
mensaje con un nivel de
severidad, el cual indica lo crítico
o trivial de la información.
– La aparición de los mensajes se
puede suprimir en función del
nivel de severidad de los
mensajes
– Hay hasta 6 niveles, cuanto más
altos sean los números, más
críticos son los mensajes.

Tema 22_Alertas 5
Runform
Control de los mensajes
del sistema
• Tabla de niveles de severidad:

Nivel Significado
0 Todos los mensajes
5 Reafirma una condición obvia
10 El usuario ha cometido un error de proceso
15 El usuario intenta realizar una acción que el
formulario no acepta.
20 No se puede continuar la acción debido a un
problema con un disparador u otra condición
pendiente.
25 Condición que podría indicar el rendimiento
incorrecto del formulario
>25 Mensajes que el diseñador no puede
suprimir

• Variable de sistema MESSAGE_LEVEL:


el Oracle Forms sólo emite mensajes
que están por encima del nivel de
severidad definido en esta variable.
Tema 22_Alertas 6
Runform
Control de los mensajes
del sistema
• El valor por defecto para
:SYSTEM.MESSAGE_LEVEL
al arrancar el formulario es 0,
es decir, se van a mostrar
todos los mensajes. Si sólo
nos interesa recibir los
mensajes críticos,
asignaremos a esta variable el
valor 15.
• Por tanto, el valor de esta
variable no sólo se puede leer,
sino que también se puede
cambiar en tiempo de
ejecución.

Tema 22_Alertas 7
Runform
Control de los mensajes
del sistema
• Supresión de mensajes de trabajo:
– los mensajes de trabajo aparecen cuando
Oracle Forms está procesando una acción.
– Para suprimir estos mensajes, utilizaremos la
variables de sistema SUPRESS_WORKING.
– :SYSTEM.SUPRESS_WORKING=‘TRUE’;
• Disparadores de errores:
– estos disparadores interceptan los mensajes
del sistema antes de que muestren en
pantalla y los reemplazan.
– Estos disparadores se pueden definir a
cualquier nivel.
– Ej: un disparador ON-ERROR, a nivel de ítem,
sólo interceptará mensajes de error que
ocurran mientras el control esté en un ítem.
– Normalmente estos disparadores se definen a
nivel de formulario para que los mensajes
puedan ser atrapados en cualquier lugar del
formulario.

Tema 22_Alertas 8
Runform
Control de los mensajes
del sistema
• Disparador ON-ERROR:
– Se activa cuando se emite un mensaje
de error del sistema.
– Se puede definir a nivel de formulario,
a nivel de bloque o de elemento. No
obstante, en la mayoría de los casos
se hace a nivel de formulario.
– Se utiliza para atrapar errores de
Oracle Forms y Oracle Server y
reemplazarlos por otros propios.
– Existen una serie de funciones que
nos proporcionan información acerca
de estos errores:
• ERROR_CODE: devuelve el número de
error (tipo NUMBER)
• ERROR_MESSAGE: devuelve el texto del
mensaje (tipo VARCHAR)
• ERROR_TYPE: devuelve el tipo de error.
Puede ser FRM error del Form Builder y
ORA error de Oracle (tipo Varchar)

Tema 22_Alertas 9
Runform
Control de los mensajes
del sistema
• Disparador ON-MESSAGE:
– Se activa cuando se emite un mensaje de
información del sistema.
– Se puede definir a nivel de formulario, a nivel
de bloque o de elemento. No obstante, en la
mayoría de los casos se hace a nivel de
formulario.
– Se utiliza para atrapar mensajes de
información y cambiarlos por otros.
– Existen una serie de funciones que nos
proporcionan información acerca de estos
mensajes:
• MESSAGE_CODE: devuelve el número de
mensaje de información que se hubiera
visualizado (tipo NUMBER)
• MESSAGE_TEXT: devuelve el texto del
mensaje (tipo VARCHAR)
• MESSAGE_TYPE: devuelve el tipo de
mensaje. Puede ser FRM del Form Builder ,
ORA del Oracle o NULL que indica que no se
ha emitido mensaje (tipo Varchar)
• Todas estas funciones devuelven información
sobre el último mensaje emitido.

Tema 22_Alertas 10
Runform
Creación y control de
alertas
• Las alertas proporcionan un
método eficaz de llamar la
atención del usuario y forzarle
a responder al mensaje antes
de continuar la ejecución
• Se presentan en una ventana
modal.
• Se utilizan cuando queremos:
– Mostrar un mensaje que un
usuario no puede ignorar y debe
confirmar
– Hacer una pregunta. Existen tres
respuestas apropiadas: ‘Sí, ‘No’
y ‘Cancelar’

Tema 22_Alertas 11
Runform
Creación y control de
alertas
• La creación de una alerta y sus
respuestas se controlan
mediante subprogramas.
• Las alertas se gestionan en
dos fases:
– Crearlas en el momento del
diseño.
– Iniciarlas en el momento de la
ejecución.

Tema 22_Alertas 12
Runform
Creación de alertas
• Se crean en el navegador de objetos,
nos situamos sobre el nodo alertas y
hacemos un clic en el botón de crear.
• Posteriormente definimos sus
propiedades de funcionalidad.
• Propiedades específicas:
– Nombre: nombre del objeto
– Título: Título de la alerta, por defecto
– Estilo de alerta: símbolo que acompaña al
mensaje:
• Parar: aparece un semáforo rojo
• Precaución: aparece la admiración dentro de
un triángulo
• Nota: aparece la i de Información
– Etiqueta Botón1, Etiqueta Botón2, Etiqueta
Botón3: etiqueta para cada uno de los tres
posibles botones. Nulo, indica que el botón no
es necesario.
– Botón de alerta por defecto: Botón 1, Botón 2
o Botón 3
– Mensaje: mensaje que aparecerá en la alerta
(máximo de 80 caracteres).

Tema 22_Alertas 13
Runform
Control de alertas
• Existen subprogramas que
permiten cambiar las propiedades
de las alertas en tiempo de
ejecución
• Una única alerta se puede utilizar
para presentar muchos mensajes,
siempre que los botones
disponibles respondan a cada uno
de los mensajes.
• Para controlar las alertas utilizamos
los siguientes subprogramas:
– SHOW_ALERT
– SET_ALERT_PROPERTY
– SET_ALERT_BUTTON_PROPERTY

Tema 22_Alertas 14
Runform
Control de alertas
• SHOW_ALERT: esta función
muestra cómo se presenta una
alerta durante la ejecución y
devuelve la respuesta del usuario
al disparador que la llamó.
• Formato: SHOW_ALERT(nombre_de_alerta)
RETURN NUMBER;
• Donde
– Nombre_de_alerta, es el nombre que
se le dio a la alerta al crearla
– Devuelve un número constante que
indica cuál de los tres botones pulsó el
usuario. Estos números se
corresponden con los valores de las
tres constantes PL/SQL definidas en
Oracle Forms:
• Alert_button1 se seleccionó el botón1
• Alert_button2 se seleccionó el botón 2
• Alert_button3 se seleccionó el 3

Tema 22_Alertas 15
Runform
Control de alertas
• SET_ALERT_PROPERTY: este
procedimiento se utiliza para
cambiar el mensaje actualmente
asignado a una alerta. Al arrancar
el formulario, el mensaje por
defecto asignado inicialmente a la
alerta es el definido en su paleta de
propiedades.
• Formato:
• SET_ALERT_PROPERTY(nombre_de_alerta,
propiedad, mensaje);
• Donde
– Nombre_de_alerta, es el nombre que
se le dio a la alerta al crearla
– Propiedad: la que se quiere fijar. Se
usa ALERT_MESSAGE_TEXT
cuando se define un nuevo mensaje y
TITLE para un nuevo título.
– Mensaje: Cadena de caracteres que
define el mensaje.

Tema 22_Alertas 16
Runform
Presentación de errores
en una alerta
• Ejemplo: este código se asocia al
disparador ON-ERROR (asociado a
su vez al formulario) y hará que
todos los mensajes de error que se
visualizan en la línea de mensaje, lo
hagan en una alerta.
DECLARE
N INTEGER;
BEGIN
SET_ALERT_PROPERTY(‘alertaerror’,
ALERT_MESSAGE_TEXT,
ERROR_TYPE||’-
’||TO_CHAR(ERROR_CODE) || ‘:’ ||
ERROR_TEXT);
N:=SHOW_ALERT(‘alertaerror’);
END;

Tema 22_Alertas 17
Runform
Detección de errores de
ejecución
• Cuando ejecutamos un formulario y surge un error,
al hacer una llamada a un subprograma
incorporado, el programa continúa su ejecución a
pesar del fallo, es decir, no provoca una excepción o
una parada del programa
• Para detectar estos errores utilizamos las siguientes
funciones incorporadas, que detectan el éxito o
fracaso de la ejecución de un subprograma:
– FORM_SUCESS:
• TRUE :si se ha realizado satisfactoriamente
• FALSE : ha ocurrido un error o un error fatal.
– FORM_FAILURE
• TRUE: ha ocurrido un error no fatal
• FALSE: ningún error o un error fatal
– FORM_FATAL
• TRUE: ha ocurrido un error fatal
• FALSE: ningún error o un error fatal
• La más utilizada es la de FORM_SUCESS, que
devuelve FALSE, en caso de error, sea del tipo que
sea. En esta caso, si queremos saber más sobre el
error, podré emplear las funciones vistas
anteriormente de ejecución: ERROR_CODE,
ERROR_TEXT y ERROR_TYPE.

Tema 22_Alertas 18
Runform

También podría gustarte