Proceso de compilación :
Se puede compilar de dos formas :
a)Compilación en proceso de dos pasos :
CRTRPGMOD : crea módulo en RPG (objeto no ejecutable).
CRTPGM : enlaza uno o más módulos para crear un objeto ejecutable.
b)Compilación en proceso de un solo paso :
CRTBNDRPG : crea un objeto ejecutable.
CRTSRVPGM : crea un programa de servicio.
CRTCLMOD : crea un CL ILE.
UPDPGM : actualiza programa (una vez tengamos el nuevo módulo o módulos, evita recompilar programa al modificar o añadir un módulo)
UPDSRVPGM : actualiza programa de servicio.
Un módulo de ILE RPG : consta de un procedimiento principal opcional y de cero o varios subprocedimientos.
Creación de programas ILE - Estrategia 1 - compatible con OPM (un solo paso) :
El programa creado se beneficiará de las mejora de RPG IV pero no de todas las mejoras del entorno ILE. No se podrá utilizar el enlace estático de ILE. Sería una solución temporal hasta completar la migración hacia ILE.
Primero habría que compartir el fuente a RPG IV (y los /COPY) mediante CVTRPGSRC.
Luego ya se podría crear el programa (en un solo paso) con CRTBNDRPG especificando DFTACTGRP(*YES), que significa que se ejecutará en el grupo de activación por omisión (en el que se ejecutan todos los programas OPM).
Ejemplo :
Creación de programas ILE - Estrategia 2 - utilizando CRTBNDRPG (un solo paso) :
El programa creado se beneficiará del enlace estático de ILE, puede contener procedimientos dinámicos y estáticos (estos últimos enlazando el módulo con otros módulos o programas de servicio que utilicen un directorio de enlace). También se puede especificar el grupo de activación en el que se ejecutará.
El problema de esta estrategia, es que no hay un módulo de objeto permanente que se pueda volver a utilizar con otros módulos y crear así un programa ILE,
Primero habría que convertir un RPG III a RPG IV con CVTRPGSRC (incluído los /COPY).
Si se utiliza CL, utilizar CL ILE en vez de CL OPM.
Crear programa ILE con CRTBNDRPG, especificando el parámetro DFTACTGRP(*NO), el grupo de activación en el parámetro ACTGRP y opcionalmente el directorio de enlace en el parámetro BNDDIR. (Si no se quiere utilizar el directorio de enlace, habría que utilizar la estrategia 3).
Ejemplo :
Permite utilizar toda la potencia del ILE, pero es la estrategia más complicada.
El problema de esta estrategia, es que no hay un módulo de objeto permanente que se pueda volver a utilizar con otros módulos y crear así un programa ILE,
Primero habría que convertir un RPG III a RPG IV con CVTRPGSRC (incluído los /COPY).
Si se utiliza CL, utilizar CL ILE en vez de CL OPM.
Crear programa ILE con CRTBNDRPG, especificando el parámetro DFTACTGRP(*NO), el grupo de activación en el parámetro ACTGRP y opcionalmente el directorio de enlace en el parámetro BNDDIR. (Si no se quiere utilizar el directorio de enlace, habría que utilizar la estrategia 3).
Ejemplo :
Creación de programas ILE - Estrategia 3 - utilizando CRTRPGMOD (en dos pasos) :
Permite utilizar toda la potencia del ILE, pero es la estrategia más complicada.