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 recuperar el fuente de un programa o módulo CL en AS400

Recupere las sentencias fuente de un programa CL OPM (Original Program Model), y desde IBM i 7.1 también las sentencias fuente de un módulo CL ILE (Integrated Language Environment).

Es probable que tanto los programadores como los administradores u operadores en AS400, hayan escrito una incontable cantidad de fuentes en el Lenguaje de Control CL (tipo de fuente CLP). Se sabe que para que existan los programas CL para su ejecución, esos fuentes deben compilarse. Es en el momento que esos fuentes se "compilan", cuando el sistema crea los programas correspondientes a partir de estos fuentes, generando los objetos *PGM con atributo CLP en alguna biblioteca, para una futura ejecución con el comando CALL del Lenguaje de Control CL.

Pero ... ¿qué sucede si Ud. en algún momento necesita editar algún fuente porque hay cambios a realizar en el comportamiento del programa, y el fuente CL a partir del cual se creó el objeto *PGM ya no existe?¿O qué ocurre si lo que se desea es examinar un programa CL del sistema operativo, en QSYS, para el que nunca se contó con un fuente? ¿O si lo que pasó, en cambio, es que suprimió por accidente dicho fuente CL para el que no tiene un backup?

Para las distintas situaciones planteadas anteriormente, entre otras, el sistema operativo i5/OS  - IBM i -  de AS400 provee la posibilidad de ejecutar el comando RTVCLSRC que permitirá recrear un fuente CL a partir del objeto *PGM existente (el programa que se invoca con CALL).

Uso del comando RTVCLSRC

Debido a que el comando RTVCLSRC utiliza la referencia a un objeto en una biblioteca específica para recuperar el fuente CL correspondiente, como se muestra en la siguiente pantalla, RTVCLSRC requiere especificar el nombre del programa CL del cual recuperar sus sentencias fuente CL, la biblioteca donde se encuentra el programa y el nombre del archivo físico de fuentes (que ya debe existir) en donde almacenar el miembro fuente recuperado, que por default tendrá el mismo nombre del programa:

AS400-recuperar-fuente-CL-1

Para poder ejecutar el comando RTVCLSRC es importante tener en cuenta algunas consideraciones:

  • Se puede recuperar un fuente CL con el comando RTVCLSRC sólo si en el momento de su compilación, que implica crear el programa con el comando CRTCLPGM (Create CL Program), se especificó el parámetro ALWRTVSRC(*YES).

  • El valor por default de este campo "Permitir RTVCLSRC" con parámetro ALWRTVSRC es *YES, a menos que el usuario lo cambie. Por lo tanto, si en el momento de crear el programa CL (compilarlo), con el comando Create CL Program - CRTCLPGM), el parámetro ALWRTVSRC está especificado en *NO, considerar que no se podrá recuperar el fuente del programa CL al ejecutar el comando RTVCLSRC.

  • Es aconsejable, que siempre se mantenga el valor de este parámetro en su valor default (*YES) para estar en condiciones de recuperar el fuente CL de ese programa cuando se den algunas de las situaciones mencionadas al principio de esta nota, al menos que se determine lo contrario dentro de la organización.

El comando DSPOBJD

Por otro lado .... Muchas veces sucede que se conoce donde está el objeto, pero no dónde está su fuente ... ¿Cómo averiguar esa información?

El comando DSPOBJD es muy útil y permite visualizar la información descriptiva de cualquier objeto.

En base a eso, cuando se ejecuta el comando DSPOBJD sobre un objeto de tipo *PGM determinado, si se especifica DETAIL(*SERVICE), como resultado se observará entre otra información, cuál es el nombre del miembro fuente CL a partir del cual se creó el objeto y en qué archivo fisico de fuentes está (o estuvo!) ubicado el mismo, teniendo en cuenta que posiblemente ese fuente pueda ya no existir.

Por ejemplo:

DSPOBJD OBJ(TEKM7/prumsg) OBJTYPE(*pgm) DETAIL(*SERVICE), devuelve la siguiente pantalla:

AS400-visualizar-descripcion-de-objeto

En donde se puede observar: que el nombre del miembro fuente a partir del cual se creó el objeto es PRUMSG, y su atributo es CLP, y además, que el archivo físico de fuentes que lo contiene es QCLSRC ubicado en la biblioteca TEKM7.

 

IBM i 7.1: Recuperar sentencias CL de un MODULO ILE

A partir de la versión IBM i 7.1, también es posible utillizar el comando RTVCLSRC (Retrieve CL Source) para recuperar sentencias fuente del lenguaje de Control (CL) de un módulo ILE (Integrated Language Environment).

El módulo tiene que ser creado con el comando CRTCLMOD (Crear módulo CL) o por el comando CRTBNDCL (Create Bound CL Program o Crear Programa CL enlazado) especificando *YES en el parámetro ALWRTVSRC.

El módulo que contiene el fuente CL a recuperar puede ser:  un objeto módulo (*MODULE),  un módulo dentro de un programa (*PGM) ILE, o un objeto de tipo programa de servicio (^SRVPGM).

Al "promptear" el comando RTVCLSRC en versión IBM 7.1 se van a visualizar 2 parámetros que no se encuentran en las versiones anteriores.

  • parámetro Programa de Servicio (SRVPGM): especifica el objeto programa de servicio desde el cual será recuperado el fuente CL original. Tener en cuenta que este parámetro y el parámetro Programa (PGM) son mutuamente excluyentes.
  • parámetro Módulo (MODULE): especifica el módulo CL desde el cual se va a recuperar el fuente CL original. Si se ha asignado un valor en el parámetro Programa (PGM) o en el parámetro Programa de Servicio (SRVPGM), este parámetro identifica qué modulo CL (en el programa o en el programa de servicio) contiene el fuente CL a ser recuperado. Tener en cuenta que el parámetro MODULE se va a ignorar cuando en el parámetro PGM se especifique un objeto *PGM del Modelo de Programa Original (OPM).

Ej. de RTVCLSRC en i 7.1:

RTVCLSRC   PGM(CLPGM1)  MODULE(MOD1)  SRCFILE(OTRALIB/QCLSRC)

Este comando recupera el fuente CL del módulo MOD1en el programa ILE CLPGM1. El fuente CL recuperado se almacena en el miembro MOD1 del archivo físico de fuentes QCLSRC ubicado en la biblioteca OTRALIB.

Para tener en cuenta ...

  • En la versión del sistema operativo IBM i 7.1, el comando Retrieve CL Source (RTVCLSRC) puede ser usado con programas ILE CL, en las versiones anteriores del sistema operativo, recuperar el fuente CL sólo es una capacidad provista para la programación CL OPM (Original Programa Module).
  • Es posible utilizar el comando RTVCLSRC para también recuperar un fuente CL de un programa de QSYS, como QSTRUP.
  • El comando DSPOBJD también puede ser útil para averiguar la información sobre el nombre y ubicación del fuente DDS para un objeto *FILE PF-DTA determinado.

Copyright 2012 - Teknoda S.A.

IMPORTANTE:
“Notas técnicas de AS/400 - IBM i" se envía con frecuencia variable y sin cargo como servicio a nuestros clientes IBM i - AS/400. Contiene notas/tutoriales/artículos técnicos desarrollados en forma totalmente objetiva e independiente. NS iTech - 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 - IBM i, envíe un mensaje desde esa dirección a info@nsitech.com.ar  o  a letter400@nsitech.com.ar, aclarando nombre, empresa, cargo y país del suscriptor.

AS400 , iSeries, System i, IBM Power Systems, IBM 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, NS iTech - Teknoda no garantiza la exactitud o completud de la misma.
COPYRIGHT NS iTech - TEKNODA S.A.  PROHIBIDA SU REPRODUCCION TOTAL O PARCIAL SIN CONSENTIMIENTO DE  NS iTech - TEKNODA


 

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 © 2025 Teknoda Tech Portal & Training. Todos los derechos reservados.
Joomla! es software libre, liberado bajo la GNU General Public License.