Upload
giovanny-guillen
View
322
Download
20
Embed Size (px)
Citation preview
PROGRAMACION RPG
Conceptos ILE
Ingeniero Giovanny Guillen BustamanteEspecialista Certificado IBM i – PMP – Scrum Master
Agenda
1. Conceptos ILE
2. Programación Modular
3. Prototipos y Procedimientos
4. Estructuras de Datos Calificadas
5. Gestión de errores y excepciones
6. Punteros
7. Manejo de XML
8. Emulación OOP
Ingeniero Giovanny Guillen Bustamante
Especialista Certificado IBM i – PMP – Scrum Master
Conceptos ILE
▪ Entorno donde se puede generar módulos en diferentes lenguajes.
Ingeniero Giovanny Guillen Bustamante
Especialista Certificado IBM i – PMP – Scrum Master
Conceptos ILE
▪ ILE permite escribir código modular y reutilizable.
➢ Grupos de Activación
Los programas se agrupan juntos para que puedan compartir
recursos entre sí y se puedan desactivar juntos.
➢ Subprocedimientos
Subrutinas con parámetros y variables locales.
➢ Módulos
Subprocedimientos agrupados juntos en un objeto.
➢ Programas
Módulos con un punto de entrada que se puede ejecutar con el
comando CALL.
➢ Programas de Servicio
Módulos con muchos puntos de entrada que se puede llamar
desde programas ILE.
Ingeniero Giovanny Guillen Bustamante
Especialista Certificado IBM i – PMP – Scrum Master
Conceptos ILE
▪ Grupos de activación: Permite la carga y descarga de programas en
conjunto.
▪ Directorios de enlace: Una lista, similar en concepto a una lista de
bibliotecas, que permite la búsqueda de una sub-procedimiento.
▪ Lenguaje de enlace: Una lista de los subprocedimientos en un
programa de servicio que puede ser llamado externamente.
▪ Enlace estático / Enlace por copia / Enlace Dinámico / Enlace por
referencia: Una copia de un subprocedimiento se incluye en el
programa que lo necesita, o no.
Ingeniero Giovanny Guillen Bustamante
Especialista Certificado IBM i – PMP – Scrum Master
Conceptos ILE
▪ Grupos de activación: Poner una aplicación en el mismo grupo de
activación hace posible descargar todos sus componentes a la vez,
sin afectar a otros programas.
Ingeniero Giovanny Guillen Bustamante
Especialista Certificado IBM i – PMP – Scrum Master
Conceptos ILE
▪ Grupos de activación: Valores especiales ACTGRP
➢ DFTACTGRP (*YES): Actúan como un programa OPM. No utiliza
las funciones de ILE. LR Finaliza la ejecución.
➢ DFTACTGRP (*NO): Programa permanece en la memoria hasta
que ACTGRP se destruye. LR cierra archivos y variables que
reinicializa en la siguiente llamada.
➢ ACTGRP (*CALLER): Usa el mismo ACTGRP como el programa
que me llamó.
➢ ACTGRP (*NEW): Crear un grupo de activación nuevo, con un
nombre generado por el sistema, cada vez que este programa
se llama.
Ingeniero Giovanny Guillen Bustamante
Especialista Certificado IBM i – PMP – Scrum Master
Conceptos ILE
▪ Módulos:
➢ Toma menos tiempo para comprender.
➢ Más fácil de probar y depurar.
➢ Se puede reutilizar de todas partes.
➢ Si una rutina se vuelve a utilizar en todas partes, sólo hay un
lugar donde encontrar errores o hacer cambios.
▪ ¿Qué es un módulo?
➢ Un miembro fuente se compila en un objeto *MODULE.
➢ Un módulo puede contener muchos subprocedimientos
diferentes. Cada uno puede ser "exportado” de modo que cada
uno puede ser llamado individualmente.
➢ Un objeto * MÓDULO contiene el código compilado y traducido,
pero que el código no se puede ejecutar.
Ingeniero Giovanny Guillen Bustamante
Especialista Certificado IBM i – PMP – Scrum Master
Conceptos ILE
▪ Módulos
➢ Cada objeto de tipo *MODULE se unen para crear un programa
o programa de servicio.
➢ Un programa (o programa de servicio) requiere al menos un
módulo, y puede constan de muchos.
➢ Los módulos no son necesarios una vez que el programa ha
sido creado. (Sin embargo, es posible que desee guardarlos para
acelerar futuras versiones del programa.)
➢ Típicamente:
✓ El primer módulo de un programa tiene un procedimiento
principal. Ese procedimiento principal es lo que se llama
cuando el programa se ejecuta por primera vez.
✓ El resto de los módulos no tienen ningún procedimiento
principal, sólo sub-procedimientos.
Ingeniero Giovanny Guillen Bustamante
Especialista Certificado IBM i – PMP – Scrum Master
Conceptos ILE
▪ Procedimiento Principal y sub-Procedimientos
➢ Los programas están compuestos de uno o más módulos.
➢ Módulos consisten en uno o más procedimiento.
➢ Hay dos tipos de procedimientos, procedimientos principales y
sub-procedimientos.
Ingeniero Giovanny Guillen Bustamante
Especialista Certificado IBM i – PMP – Scrum Master
Conceptos ILE
➢ Contiene las declaraciones de sub-procedimientos “PR” en la hoja “D”.
➢ Realiza las llamadas a los sub-procedimientos
➢ Ejecutan el ciclo RPG
➢ Son rutinas con parámetros.➢ Pueden llamados usando CALLB
CALLP .➢ Comienzan (B) y terminan (E) con la
especificación “P”.➢ Internamente se declaran sus
parámetros (PI)
Ingeniero Giovanny Guillen Bustamante
Especialista Certificado IBM i – PMP – Scrum Master
Conceptos ILE
▪ Prototipos
➢ Es una declaración del llamado a un programa, sub-
procedimiento o clase Java. Contiene una lista de parámetros
(PLIST).
➢ La palabra clave EXTPGM especifica que un prototipo se utiliza
para llamar a un programa.
D Center PR ExtPgm('CTR001R4')
D String 65535A options(*varsize)
D Length 15P 5 const
Ingeniero Giovanny Guillen Bustamante
Especialista Certificado IBM i – PMP – Scrum Master
Conceptos ILE
▪ Prototipos
➢ CONST: Especifica que el parámetro es sólo de entrada
➢ Es auto-documentado. Se puede determinar qué parámetros
son para la entrada y que son para la salida.
➢ El compilador comprueba que el código no cambia el
parámetro.
D CALCTAX PR ExtPgm('CALCTAX')
D Amount 9S 2 const
D Tax 9S 4
D CALCTAX PI
D Amount 9S 2 const
D Tax 9S 4
C eval(h) Tax = Amount * 0.05
C return
Ingeniero Giovanny Guillen Bustamante
Especialista Certificado IBM i – PMP – Scrum Master
Conceptos ILE
▪ Prototipos
FPRICELIST IF E K DISK
/copy prototypes,getPrice
D GetPrice PI
D ItemNo 5P 0 const
D Zone 1A const
D Price 9P 2
D pCountry 3A const options(*nopass)
D Country S 3A inz('USA')
/free
if %parms >= 4;
Country = pCountry;
endif;
chain (ItemNo:Zone) PRICELIST;
if not %found;
Price = -1;
return;
endif;
callp EXCHRATE('USA': Country: plPrice: Price);
return;
/end-free
Ingeniero Giovanny Guillen Bustamante
Especialista Certificado IBM i – PMP – Scrum Master
Conceptos ILE
▪ Prototipos
FPRICELIST IF E K DISK
/copy prototypes,getPrice
D GetPrice PI
D ItemNo 5P 0 const
D Zone 1A const
D Price 9P 2
D pCountry 3A const options(*nopass)
D Country S 3A inz('USA')
/free
if %parms >= 4;
Country = pCountry;
endif;
chain (ItemNo:Zone) PRICELIST;
if not %found;
Price = -1;
return;
endif;
callp EXCHRATE('USA': Country: plPrice: Price);
return;
/end-free
➢ Indica que algunos de losparámetros al final de la listapueden o no pasar en lallamada.
➢ Con %PARMS sedetermina si sepasan los parámetrostotales.
Ingeniero Giovanny Guillen Bustamante
Especialista Certificado IBM i – PMP – Scrum Master
Conceptos ILE
▪ Prototipos
D GetPrice PI
D ItemNo 5P 0 const
D pZone 1A const options(*omit)
D Price 9P 2
D pCountry 3A const
D options(*nopass:*omit)
D Country S 3A inz('USA')
.
.
if %parms >= 4 AND %addr(pCountry) <> *NULL;
Country = pCountry;
endif;
callp GetPrice(ItemNo: *OMIT: Price: Country);
Ingeniero Giovanny Guillen Bustamante
Especialista Certificado IBM i – PMP – Scrum Master
Conceptos ILE
▪ Prototipos
D GetPrice PI
D ItemNo 5P 0 const
D pZone 1A const options(*omit)
D Price 9P 2
D pCountry 3A const
D options(*nopass:*omit)
D Country S 3A inz('USA')
.
.
if %parms >= 4 AND %addr(pCountry) <> *NULL;
Country = pCountry;
endif;
➢ Indica que el valor delparámetro se puedepasar o no.
➢ Con %ADDR() sedetermina si el valordel parámetro fuepasado o no.
callp GetPrice(ItemNo: *OMIT: Price: Country);
Ingeniero Giovanny Guillen Bustamante
Especialista Certificado IBM i – PMP – Scrum Master
Conceptos ILE
▪ Prototipos
D MyProgram PR ExtPgm('MYPGM')
D Parm1 20A const options(*RightAdj)
/copy prototypes,joinname
D JoinName PI
D First 30A varying const
D options(*trim)
D Last 30A varying const
D options(*trim)
D WholeName 50A
/free
Wholename = Last + ', ' + First;
return;
/end-free
Ingeniero Giovanny Guillen Bustamante
Especialista Certificado IBM i – PMP – Scrum Master
Conceptos ILE
▪ Prototipos
D MyProgram PR ExtPgm('MYPGM')
D Parm1 20A const options(*RightAdj)
/copy prototypes,joinname
D JoinName PI
D First 30A varying const
D options(*trim)
D Last 30A varying const
D options(*trim)
D WholeName 50A
/free
Wholename = Last + ', ' + First;
return;
/end-free
➢ Indica que el valor delparámetro se debeajustar a la derecha.
➢ Permite eliminar losespacios en blanco deuna cadena decaracteres.
➢ Indica que la variableo parámetro tieneuna longitud máximay se puede utilizar ono en su totalidad.
Ingeniero Giovanny Guillen Bustamante
Especialista Certificado IBM i – PMP – Scrum Master
Conceptos ILE
▪ Prototipos
Ingeniero Giovanny Guillen Bustamante
Especialista Certificado IBM i – PMP – Scrum Master
Conceptos ILE
▪ Exportación de sub-procedimientos
➢ Permite escribir toda una biblioteca de sub-procedimientos.
➢ Todo sub-procedimiento a ser llamado externamente se debe
marcar con EXPORT.
➢ Los prototipos de estos sub-procedimientos externos se deben
colocar en un archivo /COPY.
➢ Los sub-procedimientos que se utilizan internamente no se
exportan, su prototipos no se colocan en el archivo /copy.
Ingeniero Giovanny Guillen Bustamante
Especialista Certificado IBM i – PMP – Scrum Master
Ingeniero Giovanny Guillen Bustamante
PMP Certified
IBM i Certified Specialist
E-mail: [email protected]
Gracias