Cuando monitoreamos errores en un programa RPG, esperamos haber dado con la lista de todos los errores posibles que puedan presentarse antes de que el programa pase del ambiente de desarrollo al ambiente de producción. Sin embargo, esto no sucede siempre.
En el transcurso de las pruebas se producen ciertos errores que podemos controlar, corregir o monitorear. Cuando el programa entra en producción puede sorprendernos la aparición de errores inesperados de acuerdo a la autoridad, la data en los archivos y los objetos creados que pueden ser distintos al entorno de pruebas que teníamos en producción.
Cuando un sistema está recién instalado en producción, el operador del sistema puede encontrarse ante el dilema de no saber que respuesta presionar ante la consola del As400. ¿debo presionar C= cancelar, D= Dump o G= GO?.
Según la experticia del operador y la disponibilidad del encargado del sistema, muchas veces se cancela el proceso perdiéndose la oportunidad de tener un DUMP de memoria que permita acceder a información que hace posible analizar el error y tomar las acciones correctivas y evitar que se produzca una próxima vez.
La solución es no dejar que el operador tenga en sus manos la responsabilidad de dar una respuesta. Para ello vamos a forzar un DUMP a nivel del programa RPG.
En versiones previas a V5R1 esta es la rutina standard de monitoreo de error. Puedes observar que en la hoja H se especifica debug (*YES)
H Debug( *Yes )
C *PSSR BegSr
C Dump
* Colocar el código para manejar la excepción
C EndSr
En versiones posteriors a V5R1 Forzamos el DUMP asi:
C *PSSR BegSr
C Dump(A)
* Colocar código para manejar la excepción.
C EndSr
Un DUMP con un código de operación extendido con una ‘A’ el programa siempre ejecutará el DUMP sin considerar los atributos de DEBUG. Puedes remover las especificaciones de la hoja H y utilizar el código DUMP(A)
EL DUMP, arroja un listado con el valor de las variables y campos del programa en el momento que sucedió la falla.
Si tienes dudas en el funcionamiento de la rutina *PSSR, revisa articulos previos que te explicaran en este mismo blog cómo se monitorean errores en RPG.
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