La compilación de un programa ILE-RPG en un sistema iSeries consta de los siguientes pasos:

 

- Introducir el fuente con su código

 

Vamos a suponer que queremos generar el programa de CC8888, cuyo fuente radica en QRPGLESRC.

 

 

- Compilar el fuente y generar el módulo a enlazar

 

         SBMJOB CMD(CRTRPGMOD MODULE(CC8888) DBGVIEW(*ALL)) JOB(CC8888)

 

Con esta instrucción se somete la compilación del módulo CC8888, mediante el comando CRTRPGMOD, que se emplea con la opción  DBGVIEW(*ALL)  para que podamos acceder al fuente si estamos en modalidad de depuración.

 

El resto de opciones que se especificaban explícitamente para crear un módulo C se toman aquí por defecto, o se complementan en las hojas H del fuente.

 

Mientras que en los programas escritos en C este paso es altamente recomendable, en RPG suele saltarse para acudir directamente al mandato CRTBNDRPG, que se cita luego y que reúne en uno solo los mandatos CRTRPGMOD y CRTPGM. Sin embargo, la generación del módulo tiene interés en sí mismo al resultar mucho más rápido, particularmente en módulos de gran tamaño.

 

 

- Crear la lista de enlace y especificar las dependencias externas del módulo

 

Hay que utilizar la instrucción  CRTBNDDIR CC8888  para crear la lista, y luego el mandato  WRKBNDDIR CC8888  para añadir las dependencias, que en este ejemplo serían:

 

                      Work with Binding Directory Entries                   

Binding Directory:   CC8888        

Type options, press Enter.                                                

   1=Add   4=Remove                                                         

                                                   --------Creation---------

 Opt     Object         Type        Library        Date           Time     

         SRAGG          *SRVPGM     *LIBL          02/21/09       11:31:42 

         SRAGM          *SRVPGM     *LIBL          03/06/09       23:42:12 

         SRRCG          *SRVPGM     *LIBL          02/28/09       04:57:04 

 

 

- Compilar el programa

 

SBMJOB CMD(CRTBNDRPG PGM(CC8888) DFTACTGRP(*NO) ACTGRP(*CALLER) BNDDIR(CC8888) DBGVIEW(*ALL)) JOB(CC8888)

 

Con esta instrucción se somete la compilación del programa CC8888, con el comando CRTBNDRPG, que se emplea con las opciones:

 

CRTBNDRPG PGM(CC8888) DFTACTGRP(*NO) ACTGRP(*CALLER) BNDDIR(CC8888) DBGVIEW(*ALL)

 

DFTACTGRP(*NO) y ACTGRP(*CALLER) Indican que el programa pertenecerá al grupo de activación del programa de llamada, compartiendo con él memoria y por tanto los ficheros virtuales de la aplicación.

 

 BNDDIR(CC8888) Indica que se utiliza el directorio de enlace CC8888 que se creó con el CRTBNDDIR

 

 DBGVIEW(*ALL)  Para que podamos acceder al fuente si estamos en modalidad de depuración

 

Tras estos pasos se generaría el programa CC8888 que puede consultarse con el mandato DSPPGM para ver la lista de procedimientos importados, las signaturas utilizadas, etc.

 

                                                                                         ________

 

A diferencia de los programas de servicio, que carecen de punto de entrada por lo que siempre se utilizarán indirectamente llamando desde otros programas a sus procedimientos, CC8888 se crea como programa ejecutable, que puede invocarse directamente con el mandato CALL, como por ejemplo en

 

                           CALL PGM(CC8888) PARM('000002' '000002' '000225' '1' '0')

 

                                                                                         ________

iSeries ficheros virtuales