• Embed Doc
  • Readcast
  • Collections
  • CommentGo Back
Download
 
http://iseriesvenezuela.blogspot.comAlgunas veces debemos reemplazar programas que ya están en producción y que fueroncompilados bajo ciertas condiciones por una persona que ya se ha ido de la empresa o por algúnanalista que aunque sigue en la institución no recuerda las especificaciones de compilación y noestán documentadas en ningún lado.
En programas de recepción y envío de data, en ocasioneses imperativo compilar con Ignore decimal data error = *yes.
¿Cómo saber si el programa que estoy cambiando fue compilado con esteparámetro = *yes?.
 Para dar respuesta a esta pregunta, se redacto el presente documento.Utility para determinar si un programa RPG fue compilado con Ignore Data Decimal error = *yes.La estrategia consiste en ejecutar el programa haciendo que falle y responder con ‘D’ (dump) almensaje de error. En el spool de salida buscamos la cadena de caracteres:
ZIGNDECD
acontinuación de este palabra clave, puedes ver un ‘0’ o u ‘1’. Si aparece un ‘1’, significa que elprograma fue compilado con ignore data decimal = *yes.Se puede realizar un programa que en forma automática haga el recorrido por una tablacontentiva de la lista de programas y librerías en RPG sobre la cual deseamos determinar si el RPGen proceso fue compilado con Ignore Data Decimal Error.Autor: Ing. Liliana Suárezhttp://iseriesvenezuela.blogspot.com
 
http://iseriesvenezuela.blogspot.comConstruimos en primer lugar un archivo de entrada que tienes dos campos: Librería objeto yPrograma. En este archivo puede estar especificado uno o varios programas. Llamaremos a estearchivo:
PROGRAMA
Necesitamos también un archivo de salida que tenga los campos: Librería Objeto, Nombre delprograma, Flag de Ignore (alfabético 1). Llamaremos a este archivo
: SALIDA
.Un tercer archivo para copiar el spool generado por la respuesta ‘D’ (DUMP) al mensaje de errorque emite el programa rpg. Este archivo lo llamaremos
PRINT.
Debe ser creado con un crtpf sinDDS asociado y un largo de 198 de longitud.Se crean dos programas un programa CLP y un RPG.El programa CLP, lee el archivo
PROGRAMA
donde están especificados los programas y suslibrerías y hace un CALL al programa que está leyendo en ese momento. Para asegurarnos de queel programa va a fallar, hacemos un CHGLIBL al comenzar el CLP y así establecemos que la lista delibrerías tenga una sola librería DUMMY que no contenga ningún archivo.Al hacer un CALL del programa RPG en el programa CLP, se genera un error CPF4101 entre otros,que debe ser monitoreado. Este error CPF4101 dice: “no se encontró el archivo X de la bibliotecaY”. Sabíamos que esto iba a pasar.Si tenemos una lista extensa de programas, responder manualmente al mensaje de error con una‘D’ para generar el spool del DUMP es poco práctico. Podemos entonces activar un comandoantes de ejecutar el programa CLP para que el sistema emita una respuesta automática delmensaje sin la intervención nuestra o de un operador.A nivel de línea de comando antes de ejecutar el programa utilizamos dos comandos:
WRKRPYLE
(trabajar con lista de entrada de respuestas ) y
ADDRPYLE
(añadir respuesta a la lista de entradade respuestas).Cuando escribimos el WRKRPYLE obtenemos la siguiente pantalla: (Figura 1)Autor: Ing. Liliana Suárezhttp://iseriesvenezuela.blogspot.com
 
http://iseriesvenezuela.blogspot.com
Figura 1.
Vemos por ejemplo, que el mensaje: CPA0700 tiene una respuesta ‘D’ es decir cuando unaaplicación en RPG falle, el sistema no le va a preguntar al usuario o al operador la respuesta sinoque genera en forma automática un DUMP de las variables y del programa que falló. Podemos vertambién que quedan secuencias libres. ( 11, 12, 13,..19, 21.. etc). Esta es la numeraciónconsecutiva que el sistema tiene registrado para cada respuesta. Para el mensaje CPF4101, yahabíamos incluido una respuesta automática. Para este proceso en particular nos interesa generaresa respuesta automática, sin embargo debes tener presente, que cualquier otro proceso que seejecute en este equipo emitirá una ‘D’ en forma automática. Quizás convenga realizar unRMVRPYLE al terminar de ejecutar esta utility para remover la respuesta automática que hemoscreado para el mensaje CPF4101 porque posiblemente a los otros procesos que se ejecutan eneste equipo no les convenga esta respuesta automática.Autor: Ing. Liliana Suárezhttp://iseriesvenezuela.blogspot.com
of 00

Leave a Comment

You must be to leave a comment.
Submit
Characters: ...
You must be to leave a comment.
Submit
Characters: ...