Bienvenidos a Iseries Venezuela

Las mejores prácticas, recursos, tips, enlaces, videos y artículos para informáticos relacionados con el Iseries y el As/400 lenguajes de programación RPG, ILE RPG y SQL.

The best practices, resources, tips, links, videoes and articles for computer related to the Iseries and the As/400 languages of programming RPG, ILE RPG and SQL.

Sunday, July 19, 2009

¿Qué es un Trigger?






Un trigger es un atributo de un archivo físico que permite al manejador de Base de datos del AS400 ejecutar un programa en el mismo instante que se haga algún cambio sobre ese archivo. El comando para agregar un trigger es: ADDPFTRG.

Podemos especificar que queremos que se ejecute un programa antes o después de añadir, eliminar o modificar un registro en el archivo físico sobre el cual estamos ejecutando el trigger. Este programa es desarrollado por nosotros como programadores del sistema.

El programa que se “dispara” al ejecutar una actualización del archivo debe ser especificado en el comando ADDPFTRG. Este programa debe recibir dos parámetros el primero de los cuales comprende el encabezado o “header” de la información que el manejador de base de datos devuelve sobre el cambio que se ha realizado sobre el archivo. El segundo parámetro contiene especificaciones mas detalladas sobre el cambio que se realizó en los campos del registro que fue alterado.

Cabe destacar que el Trigger no es un Journal. No devuelve trazas de auditoria que indique quien hizo el cambio ni que programa realizó el cambio, simplemente ejecuta el programa que le indicamos debe ejecutar.

A manera de prueba he declarado dos parametros de 5000 posiciones carácter cada uno y me han funcionado las pruebas de trigger.

Sin embargo, para detalles bien precisos sobre el contenido y las longitudes que nuestro programa debe tener para capturar la información del cambio de la base de datos pueden acceder a este link:

http://www.help400.es/asp/scripts/nwart.asp?Num=78&Pag=34&Tip=U


¿Para qué sirve un trigger?

Un trigger puede utilizarse por ejemplo para capturar data entre dos sistemas o módulos completamente distintos. Supongamos que tenemos un Sistema Autorizador de Tarjeta de Crédito que verifica el pin del cliente, su limite de crédito y que no esté bloqueada la tarjeta. El sistema autorizador puede aprobar el crédito y dejar un registro que sea parte de un archivo histórico de la solicitud de consumo recibida, sin embargo el sistema autorizador no tiene la capacidad de detectar un consumo “atípico” relacionado con el comportamiento del cliente que pueda detectar un fraude por usurpación de identidad o robo de tarjeta. Este proceso de detección de fraude le corresponde al Sistema de Monitoreo de Fraude. Si añadimos un trigger en el archivo histórico del autorizador y hacemos que este trigger disparé un programa que ingrese esta información de consumo en forma automática al Sistema de Monitoreo entonces la detección del fraude puede ser prácticamente inmediata y puede procederse preventivamente a un bloqueo de tarjeta para proteger al cliente y al banco de un proceso fraudulento.

El trigger puede ahorrarnos el hacer muchos programas que actualicen archivos de auditoria, y archivos para consulta en línea. Además para procesos nocturnos de largo tiempo de procesamiento el trigger es mas rápido que invocar varios programas que graben información sobre la actualización de la data u otra traza de auditoría que desee almacenarse.


Si te pareció interesante, reenvialo a un amigo haciendo click en el sobrecito que está al final del artículo. El conocimiento es valioso, compártelo.


Autor:  Ing. Liliana Suárez

No comments: