Alarmas y procesos

De WikiDgp21
Revisión del 13:12 7 jul 2009 de Christian Fuertes (Discusión | contribuciones) (Hora de ejecución)

Saltar a: navegación, buscar
Alarmas y procesos - dgen050

Una alarma es un proceso que se activa periódicamente para realizar algunas comprobaciones y avisar a quienes convenga.

Campos

Doid

Código identificador de la alarma.

Descripción

Nombre o pequeña descripción de la alarma.

Descripción ampliada

Descripción ampliada para indicar con mayor precisión que comprobará la alarma.

Última ejecución

Fecha y hora en la que se ha realizado la ultima ejecución de la alarma.

Hora de ejecución

Hora en la que se deberá ejecutar la alarma por primera vez.

Periodicidad

Frecuencia en la que se repetirá la alarma expresada en horas.

Tipo de alarma

Indica el tipo de la alarma a ejecutar con un carácter.

Destinatarios

Este botón abre una nueva ventana en la que se pueden añadir nuevos o borrar antiguos destinatarios, de entre todos los usuarios de la aplicación, a la alarma seleccionada.

Sentencia SQL

En este campo va la sentencia SQL que hará las comprobaciones para saber si tiene que enviar mensajes y su contenido. Para saber mas sobre como escribir este campo consultar la sección Crear una nueva alarma.

Tipos de alarma

  • Alarma (A): Este tipo de alarmas avisan a los destinatarios cuando encuentran algún resultado y envían un mensaje a cada uno de ellos por cada anomalía encontrada. Por ejemplo, si una alarma busca los pedidos pendientes de servir, en las notificaciones tendrán la información de cada pedido que cumpla las condiciones.
  • Proceso(P): Este tipo de alarmas solo avisan en caso de que haya habido algún fallo en la sentencia a comprobar. Es decir, si simplemente hiciera unas comprobaciones rutinarias de la base de datos, en caso de no poder ejecutarse correctamente se enviaría un mensaje a los destinatarios informándoles.

Crear una nueva alarma

Como en toda la aplicación, el primer paso para crear una alarma nueva será pulsar el botón Boto 006.png nuevo y a continuación rellenamos los campos. Una vez hayamos acabado la creación, añadiremos los destinatarios con el botón Destinatarios.

Por ejemplo, queremos crear una alarma que compruebe los pedidos no servidos cuya fecha de entrega pasó hace un día o mas. La sentencia SQL que deberíamos introducir sería parecida a ésta.

 select E'Este pedido ya debería haber sido servido. \r\n  
    Ejercicio: '||ejer|| '  Número de pedido: '||num|| E'\r\n  
    Cliente: ' || cliente || ' - ' ||nombre|| E'\r\n  
    Producto: '||cod_art||' - '||desc1|| E'\r\n  
    Fecha de envio: '||fechaent from vistped where servido != 'S' and tipped = 'C'
    and (fechaent < now()- ('1 day'::interval))

Esta sentencia creará un mensaje con el texto indicado entre comillas y substituyendo \r\n1 por un salto de línea, y las variables como ejer o cliente por sus valores en la tabla de la base de datos. Por cada entrada encontrada que cumpla las condiciones indicadas después de where enviará un mensaje.

En nuestro ejemplo tendremos indicar que los pedidos aun no han sido servidos (servido != 'S' ), que son de tipo compras (tipped = 'C' ) y ademas, que haya transcurrido un día desde la fecha de entrega (fechaent < now() - ('1 day'::interval)).

Entre el cuerpo del mensaje y las condiciones nos encontramos con que pone from vistped, aquí lo que se indica es de donde se extrae la información, en este caso sera de la tabla de pedidos Vistped.

Hay algunos elementos en la sentencia que no han sido explicados y serán necesarios para la creación de las alarmas.

  • E: Antes abrir comillas ( ' ) para poner texto se pone una letra E para que interprete \r\n como un salto de linea.
  • now(): Función SQL para obtener la fecha y hora actual.
  • ('1 day'::interval): Expresa un intervalo de tiempo de un día. Si quisiéramos hacer las comprobaciones para varios días solo habría que cambiar el número o si nos interesara que fuera en una semana, se puede poner week en lugar de day.
  • ||: Utilizado para crear el cuerpo del mensaje. Concatena un texto con el valor de una variable para formar un único texto.


1 Al guardar desaparecerán de la pantalla, pero el salto de linea será interpretado igual.