Lea en AS/400 System i . . .

Aprovechando las posibilidades del WRKACTJOB a través de sus parámetros

Obtenga una salida diferente de la habitual al ejecutar el comando WRKACTJOB, aprovechando lo ofrecido por algunos parámetros interesantes que posibilitan entre otras acciones la de renovar automáticamente la pantalla resultante.

FaceBookTwitterGoogle+

Cómo saber cuáles son los triggers definidos en su sistema AS400

Obtenga información sobre todos los programas triggers definidos en el sistema y a qué tablas (archivos físicos de datos) de AS400 están asociados y aprenda distintas formas de lograrlo.

Uno de los tópicos relacionados  con la gestión de base de datos en DB2 UDB en AS400, es la posibilidad de definir "triggers" (también lllamados desencadenantes o activadores).

Los triggers se definen sobre archivos físicos de datos (objetos *FILE PF-DTA) o tablas SQL,  y en AS400 existen dos tipos posibles a definir: triggers "externos" (o también llamados "del sistema") y  triggers SQL (ya desde la versión V5R1)

Un trigger Externo puede ser un programa  definido por el usuario en cualquier lenguaje en AS400,  incluyendo el lenguaje de Control CL/400, a diferencia de un trigger SQL que sólo especifica en el "cuerpo" del mismo, una o más sentencias SQL. Las acciones indicadas se ejecutan cuando ese trigger se  "activa" o se "dispara".

Los triggers (SQL o externos) se activan antes o después de que ocurra una operación de Insert, Update o Delete sobre la TABLA donde el trigger está definido. El DB2 invoca al trigger que se “dispara” automáticamente realizando una acción determinada, sin tener en cuenta qué aplicación o qué interfase se utilizó para modificar esa tabla.

Descubriendo dónde están definidos los triggers en el sistema

Teniendo en cuenta que un trigger se activa automáticamente al realizar una acción determinada sobre la tabla donde está asociado, y que podría realizar acciones no deseadas en el sistema, es muy importante conocer cuáles son los triggers definidos en TODO el sistema, verificar sobre qué tablas están definidos y controlar de esta forma que no se estén realizando acciones inapropiadas dentro del sistema.

El sistema operativo provee algunos mecanismos que permiten obtener esta información:

Usando el comando PRTTRGPGM

El OS/400 incluye un comando que permite "rastrear" los triggers que están definidos en su sistema AS400.

El comando PRTTRGPGM (Imprimir programas desencadenantes) genera un archivo en spool (con nombre QPSECTRG) de todos los programas triggers (tanto Externos como SQL) para los archivos físicos de datos (tablas) existentes en una biblioteca determinada, y posibilita luego su ejecución periódica para obtener un informe de sólo los nuevos programas triggers que se generaron o de aquéllos que sufrieron algún cambio:

AS400-comando-PRTTRGPGM

Si se ejecuta el comando especificado arriba, generará un archivo de spool con los programas triggers que estén asociados a todas las tablas que se encuentren en la biblioteca TEKDB2, solicitando que muestre el informe completo (parámetro CHGRPTONLY - Sólo informe de cambios = *NO).

Si se ejecuta posteriormente el comando pero sólo para generar un informe de cambios, contendrá los programas desencadenantes que aparecen ahora en la biblioteca especificada y que no estaban en ella cuando se ejecutó con anterioridad el mandato PRTTRGPGM para la biblioteca. Si el mandato PRTTRGPGM no se ejecutó con anterioridad para la biblioteca, no habrá 'Informe de cambios".

Para obtener un informe completo de TODOS los triggers dentro del sistema, ejecutar el comando PRTTRGPGM LIB(*ALL).

Es importante tener en cuenta que para ejecutar el comando PRTTRGPGM es necesario poseer las autorizaciones especiales *ALLOBJ o *AUDIT.

Existe un archivo con nombre QSECTRGOLD en la biblioteca QUSRSYS que contiene información de la última vez que se ejecutó el mandato PRTTRGPGM para una biblioteca. Dentro de este archivo existe un miembro con el mismo nombre que la biblioteca especificada, para cada biblioteca especificada con anterioridad en el mandato.

Además, el archivo del sistema QAFDTRG en la biblioteca QSYS cuyo nombre de formato es QWHFDTRG,  es el archivo modelo para el archivo QSECTRGOLD.

Como alternativa a lo planteado anteriormente, para obtener una lista de todos los archivos físicos en el sistema que tienen triggers asociados, se puede utilizar el archivo del sistema QAFDTRG en el comando CPYF:

Por ejemplo, ejecutando el comando::

CPYF FROMFILE(QADBXTRIGB) TOFILE(TEKPRU/ARCHTRIGG) CRTFILE(*YES)

Luego, identificando los campos que contiene el nombre del trigger y la tabla a la cual está asociado,  con QUERY/400 se puede crear una consulta seleccionando los campos de interés y obtener una salida de lectura más fácil para la identificación de los programas triggers.

 

La tabla SYSTRIGGER

Existen algunas tablas del catálogo del sistema que registran y almacenan información relacionada con triggers. Las tablas comienzan con SYS y se encuentran en la biblioteca QSYS2. Particularmente, la tabla SYSTRIGGER contiene una fila por cada trigger que exista en una biblioteca y registra información de triggers externos como SQL.

Teniendo ésto en cuenta y como otra propuesta alternativa a las ya planteadas para obtener información sobre triggers, puede realizarse una consulta SQL sobre la tabla SYSTRIGGER de la siguiente forma:

  • Por ejemplo, si se desea obtener todos los nombres de programas triggers en la biblioteca TEKDB2:

SELECT DISTINCT TRIGGER_PROGRAM_NAME FROM QSYS2/SYSTRIGGER

WHERE TRIGGER_PROGRAM_LIBRARY = 'TEKDB2'

 

  • Para encontrar todos los programas triggers y además las tablas en donde están definidos,  en la biblioteca TEKPRUTRG:

SELECT DISTINCT TRIGGER_PROGRAM_NAME, TRIGGER_PROGRAM_LIBRARY FROM QSYS2/SYSTRIGGER

WHERE EVENT_OBJECT_SCHEMA = 'TEKPRUTRG'

Visualizando triggers con DSPFD

Además de las opciones de ejecución vistas anteriormente, también es posible visualizar información de triggers ejecutando el comando DSPFD (Display File Description) sobre un archivo físico de datos determinado, y conocer si posee programas triggers asociados al mismo:

En el comando DSPFD es encesario especificar en el parámetro TYPE el  valor *TRG o *ALL para obtener la información solicitada.

Ejemplo:

DSPFD FILE(TEKDBM8/ARTICULOS) TYPE(*TRG)

Desde iSeries Navigator: visualizando triggers en una tabla determinada

Mediante el iSeries Navigator, es posible visualizar de manera fácil los triggers definidos sobre una tabla determinada. Para ello: Abrir iSeries Navigator → Mis conexionesConexión a su Sistema AS400 → Base de Datos Esquema y sobre el esquema seleccionado (biblioteca) elegir Desencadenantes. Se observará la información de los triggers asociados a esa tabla, como muestra la siguiente imagen:

AS400-iseries-navigator-triggers

 

Para tener en cuenta ...

  • Es posible además, definir triggers sobre vistas SQL. Es recomendable la lectura del tip "Triggers Instead of - Triggers sobre vistas"  publicado también en Teknodatips.
  • Considerar que una tabla puede tener asociados 300 triggers.

  • n_Nora_Salmun

- Especialista AS400

- Supervisor editorial Teknodatips


Copyright 2012 - Teknoda S.A.

IMPORTANTE:
“Notas técnicas de AS/400" se envía con frecuencia variable y sin cargo como servicio a nuestros clientes AS/400. Contiene notas/tutoriales/artículos técnicos desarrollados en forma totalmente objetiva e independiente. Teknoda es una organización de servicios de tecnología informática y NO comercializa hardware, software ni otros productos.
Si desea suscribir otra dirección de e-mail para que comience a recibir las Notas Técnicas AS400, envíe un mensaje desde esa direcciónletter400@teknoda.com, aclarando nombre, empresa, cargo y país del suscriptor.

AS400 , iSeries y System i son marcas registradas de IBM. IBM no es el editor de esta publicación y no es responsable de la misma en ningún aspecto. La información contenida en esta publicación ha sido generada por nuestros especialistas a partir de fuentes consideradas confiables y del ejercicio profesional cotidiano. No obstante, por la posibilidad de error humano, mecánico, cambio de versión u otro, Teknoda no garantiza la exactitud o completud de la misma.
COPYRIGHT TEKNODA S.A. PROHIBIDA SU REPRODUCCION TOTAL O PARCIAL SIN CONSENTIMIENTO DE TEKNODA


Comentarios  

0 #2 Alfonso Segovia 19-06-2013 04:43
Buena Información
Citar
0 #1 Oscar Ferreyra 07-09-2012 14:05
Muy buen articulo.
Citar

Escribir un comentario


Código de seguridad
Refescar

Suscribirse a Teknodatips


Recibirá un mail cada vez que se publique un nuevo tip. Seleccionar AL MENOS un casillero:
  • AS/400 Tips
  • SAP/ABAP Tips



Joomla Extensions powered by Joobi

Lea en AS/400 Tips . . .

Infografía comparativa Comandos de SAVE RESTORE del AS400

save_restore_thumbnail

Conozca y diferencie visualmente qué partes del almacenamiento resguarda y restaura cada comando y cada opción del Menú Salvar y Restaurar. PUEDE DESCARGAR UN FORMATO POSTER PARA IMPRESION.

Para lograr un entendimiento conceptual es de suma utilidad contar con una ayuda gráfica, que  permita diferenciarlos a primera vista. Nuestro equipo de especialistas ha desarrollado el "Infographics" que presentamos con este tip. Por supuesto, el mismo debe complementarse con la información detallada de los innumerables parámetros de cada comando, pero es un útil marco de referencia  para recordar el área de injerencia de cada comando.

LEER ESTE ARTICULO >>>>>

 

 

 

Copyright © 2017 Teknoda tips - Tecnologia SAP Netweaver - IBM AS400 - System i - iSeries. Todos los derechos reservados.