SlideShare una empresa de Scribd logo
PROGRAMACION RPG
Conceptos ILE
Ingeniero Giovanny Guillen Bustamante
Especialista 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 los
parámetros al final de la lista
pueden o no pasar en la
llamada.
➢ Con %PARMS se
determina si se
pasan los parámetros
totales.
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 del
parámetro se puede
pasar o no.
➢ Con %ADDR() se
determina si el valor
del parámetro fue
pasado 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 del
parámetro se debe
ajustar a la derecha.
➢ Permite eliminar los
espacios en blanco de
una cadena de
caracteres.
➢ Indica que la variable
o parámetro tiene
una longitud máxima
y se puede utilizar o
no 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: giovanny_guillen_b@Hotmail.com
Gracias

Más contenido relacionado

La actualidad más candente

121267067 archivos-fisicos-as400
121267067 archivos-fisicos-as400121267067 archivos-fisicos-as400
121267067 archivos-fisicos-as400
rusocaliente
 
Kevin Kempter PostgreSQL Backup and Recovery Methods @ Postgres Open
Kevin Kempter PostgreSQL Backup and Recovery Methods @ Postgres OpenKevin Kempter PostgreSQL Backup and Recovery Methods @ Postgres Open
Kevin Kempter PostgreSQL Backup and Recovery Methods @ Postgres Open
PostgresOpen
 

La actualidad más candente (20)

RPGLE MINICOMPUTADORAS
RPGLE MINICOMPUTADORASRPGLE MINICOMPUTADORAS
RPGLE MINICOMPUTADORAS
 
Programacion RPG - Gestión de Errores y Excepciones
Programacion RPG - Gestión de Errores y ExcepcionesProgramacion RPG - Gestión de Errores y Excepciones
Programacion RPG - Gestión de Errores y Excepciones
 
121267067 archivos-fisicos-as400
121267067 archivos-fisicos-as400121267067 archivos-fisicos-as400
121267067 archivos-fisicos-as400
 
Utilisacion del utilitario strssda as400
Utilisacion del utilitario strssda as400Utilisacion del utilitario strssda as400
Utilisacion del utilitario strssda as400
 
Manejo de errores as400
Manejo de  errores as400Manejo de  errores as400
Manejo de errores as400
 
As400
As400As400
As400
 
Operación y control
Operación y controlOperación y control
Operación y control
 
Mq conceptos y programacion as400
Mq conceptos y programacion as400Mq conceptos y programacion as400
Mq conceptos y programacion as400
 
64518313 manual-basico-as400
64518313 manual-basico-as40064518313 manual-basico-as400
64518313 manual-basico-as400
 
Kevin Kempter PostgreSQL Backup and Recovery Methods @ Postgres Open
Kevin Kempter PostgreSQL Backup and Recovery Methods @ Postgres OpenKevin Kempter PostgreSQL Backup and Recovery Methods @ Postgres Open
Kevin Kempter PostgreSQL Backup and Recovery Methods @ Postgres Open
 
As400mejorado
As400mejoradoAs400mejorado
As400mejorado
 
OOP Python workshop
OOP Python workshopOOP Python workshop
OOP Python workshop
 
Lazy java
Lazy javaLazy java
Lazy java
 
Taller básico Herramientas Rendimiento DB2 en iSeries
Taller básico Herramientas Rendimiento DB2 en iSeriesTaller básico Herramientas Rendimiento DB2 en iSeries
Taller básico Herramientas Rendimiento DB2 en iSeries
 
SEMINARIO: ACCESO A BASE DE DATOS CON JDBC
SEMINARIO: ACCESO A BASE DE DATOS CON JDBCSEMINARIO: ACCESO A BASE DE DATOS CON JDBC
SEMINARIO: ACCESO A BASE DE DATOS CON JDBC
 
7 Ventajas de Funciones en PHP
7 Ventajas de Funciones en PHP7 Ventajas de Funciones en PHP
7 Ventajas de Funciones en PHP
 
The Linux Command Cheat Sheet
The Linux Command Cheat SheetThe Linux Command Cheat Sheet
The Linux Command Cheat Sheet
 
Clean code and Code Smells
Clean code and Code SmellsClean code and Code Smells
Clean code and Code Smells
 
CURSO COBOL MAINFRAME
CURSO COBOL MAINFRAMECURSO COBOL MAINFRAME
CURSO COBOL MAINFRAME
 
JCL MAINFRAMES
JCL MAINFRAMESJCL MAINFRAMES
JCL MAINFRAMES
 

Similar a Programacion RPG: Conceptos ILE

Intro a cakephp
Intro a cakephpIntro a cakephp
Intro a cakephp
betabeers
 
"Hola Mundo" C18, PIC18F y MPLAB
"Hola Mundo"  C18,  PIC18F y MPLAB"Hola Mundo"  C18,  PIC18F y MPLAB
"Hola Mundo" C18, PIC18F y MPLAB
BlackD10
 

Similar a Programacion RPG: Conceptos ILE (20)

Ing. Mecatronica Prog. Básica, U5 Módulos
Ing. Mecatronica Prog. Básica, U5 MódulosIng. Mecatronica Prog. Básica, U5 Módulos
Ing. Mecatronica Prog. Básica, U5 Módulos
 
TRABAJO FINAL PROGRAMACIÓN.pdf
TRABAJO FINAL PROGRAMACIÓN.pdfTRABAJO FINAL PROGRAMACIÓN.pdf
TRABAJO FINAL PROGRAMACIÓN.pdf
 
Greach 2013 - Todo lo que me hubiera gustado saber cuando empecé a desarrolla...
Greach 2013 - Todo lo que me hubiera gustado saber cuando empecé a desarrolla...Greach 2013 - Todo lo que me hubiera gustado saber cuando empecé a desarrolla...
Greach 2013 - Todo lo que me hubiera gustado saber cuando empecé a desarrolla...
 
Intro a cakephp
Intro a cakephpIntro a cakephp
Intro a cakephp
 
Intro a cakephp
Intro a cakephpIntro a cakephp
Intro a cakephp
 
Charla C++
Charla C++Charla C++
Charla C++
 
Funciones y procedimientos
Funciones y procedimientosFunciones y procedimientos
Funciones y procedimientos
 
Unidad 1
Unidad 1Unidad 1
Unidad 1
 
PHP Unit y TDD
PHP Unit y TDDPHP Unit y TDD
PHP Unit y TDD
 
Paralela10
Paralela10Paralela10
Paralela10
 
Glpk+java+windows
Glpk+java+windowsGlpk+java+windows
Glpk+java+windows
 
Optimización global
Optimización globalOptimización global
Optimización global
 
Mini clase Intro Programación Python UTN Profesorado 2015
Mini clase Intro Programación Python UTN Profesorado 2015Mini clase Intro Programación Python UTN Profesorado 2015
Mini clase Intro Programación Python UTN Profesorado 2015
 
Fundamentos de Programación - Unidad V: Modularidad
Fundamentos de Programación - Unidad V: ModularidadFundamentos de Programación - Unidad V: Modularidad
Fundamentos de Programación - Unidad V: Modularidad
 
2 lop–cv-20017-3-conceptos básicos y metodología para la solución de problemas
2 lop–cv-20017-3-conceptos básicos y metodología para la solución de problemas2 lop–cv-20017-3-conceptos básicos y metodología para la solución de problemas
2 lop–cv-20017-3-conceptos básicos y metodología para la solución de problemas
 
"Hola Mundo" C18, PIC18F y MPLAB
"Hola Mundo"  C18,  PIC18F y MPLAB"Hola Mundo"  C18,  PIC18F y MPLAB
"Hola Mundo" C18, PIC18F y MPLAB
 
Programacion Modular
Programacion ModularProgramacion Modular
Programacion Modular
 
Semana 1 - Principios de Algoritmos.pdf
Semana 1 - Principios de Algoritmos.pdfSemana 1 - Principios de Algoritmos.pdf
Semana 1 - Principios de Algoritmos.pdf
 
Taller de Introducción a Scripting con gvSIG
Taller de Introducción a Scripting con gvSIGTaller de Introducción a Scripting con gvSIG
Taller de Introducción a Scripting con gvSIG
 
Testing efectivo con pytest
Testing efectivo con pytestTesting efectivo con pytest
Testing efectivo con pytest
 

Más de Giovanny Guillen

Más de Giovanny Guillen (20)

Curso java desde cero nivel i - modulo v
Curso java desde cero   nivel i - modulo vCurso java desde cero   nivel i - modulo v
Curso java desde cero nivel i - modulo v
 
Curso java desde cero nivel i - modulo iv
Curso java desde cero   nivel i - modulo ivCurso java desde cero   nivel i - modulo iv
Curso java desde cero nivel i - modulo iv
 
Curso java desde cero nivel i - modulo iii
Curso java desde cero   nivel i - modulo iiiCurso java desde cero   nivel i - modulo iii
Curso java desde cero nivel i - modulo iii
 
Curso java desde cero nivel i - modulo ii
Curso java desde cero   nivel i - modulo iiCurso java desde cero   nivel i - modulo ii
Curso java desde cero nivel i - modulo ii
 
Curso java desde cero nivel i - modulo i
Curso java desde cero   nivel i - modulo iCurso java desde cero   nivel i - modulo i
Curso java desde cero nivel i - modulo i
 
Cobol training
Cobol trainingCobol training
Cobol training
 
Libro Ingeniería del Software
Libro Ingeniería del SoftwareLibro Ingeniería del Software
Libro Ingeniería del Software
 
Portafolio de proyectos
Portafolio de proyectosPortafolio de proyectos
Portafolio de proyectos
 
Seguridad del ibm i as400
Seguridad del ibm i as400Seguridad del ibm i as400
Seguridad del ibm i as400
 
Organizational values
Organizational valuesOrganizational values
Organizational values
 
Ingenieria requerimientos
Ingenieria requerimientosIngenieria requerimientos
Ingenieria requerimientos
 
Earn value
Earn valueEarn value
Earn value
 
Gestión de la Capacidad en Fábricas de Software
Gestión de la Capacidad en Fábricas de SoftwareGestión de la Capacidad en Fábricas de Software
Gestión de la Capacidad en Fábricas de Software
 
Fabricas de software
Fabricas de softwareFabricas de software
Fabricas de software
 
Template project status report
Template project status reportTemplate project status report
Template project status report
 
Gestion de Proyectos - Gestion de Riesgos
Gestion de Proyectos - Gestion de RiesgosGestion de Proyectos - Gestion de Riesgos
Gestion de Proyectos - Gestion de Riesgos
 
La ejecución estratégica
La ejecución estratégicaLa ejecución estratégica
La ejecución estratégica
 
La transición del producto del proyecto
La transición del producto del proyectoLa transición del producto del proyecto
La transición del producto del proyecto
 
Gerencia de Proyectos - Responsabilidades del Sponsor
Gerencia de Proyectos - Responsabilidades del SponsorGerencia de Proyectos - Responsabilidades del Sponsor
Gerencia de Proyectos - Responsabilidades del Sponsor
 
Lograr el éxito del proyecto
Lograr el éxito del proyectoLograr el éxito del proyecto
Lograr el éxito del proyecto
 

Último

Último (10)

Escaneo y eliminación de malware en el equipo
Escaneo y eliminación de malware en el equipoEscaneo y eliminación de malware en el equipo
Escaneo y eliminación de malware en el equipo
 
infografia del sena para analisis y desarrollo de software
infografia del sena para analisis y desarrollo de softwareinfografia del sena para analisis y desarrollo de software
infografia del sena para analisis y desarrollo de software
 
FICHA DE TRABAJO DE CREACION DE TABLAS EN WORD
FICHA  DE TRABAJO DE CREACION DE TABLAS EN WORDFICHA  DE TRABAJO DE CREACION DE TABLAS EN WORD
FICHA DE TRABAJO DE CREACION DE TABLAS EN WORD
 
Los desafíos de calidad de software que nos trae la IA y los LLMs
Los desafíos de calidad de software que nos trae la IA y los LLMsLos desafíos de calidad de software que nos trae la IA y los LLMs
Los desafíos de calidad de software que nos trae la IA y los LLMs
 
Maquina de Dibujo y Escritura Automática.pdf
Maquina de Dibujo y Escritura Automática.pdfMaquina de Dibujo y Escritura Automática.pdf
Maquina de Dibujo y Escritura Automática.pdf
 
Virus informático (tipos y opciones para prevenir)
Virus informático (tipos y opciones para prevenir)Virus informático (tipos y opciones para prevenir)
Virus informático (tipos y opciones para prevenir)
 
Documento colaborativo. Solución del caso GA1-240201526-AA6-EV01.pdf
Documento colaborativo. Solución del caso GA1-240201526-AA6-EV01.pdfDocumento colaborativo. Solución del caso GA1-240201526-AA6-EV01.pdf
Documento colaborativo. Solución del caso GA1-240201526-AA6-EV01.pdf
 
trabajo integrador final sofi y vane.docx
trabajo integrador final sofi y vane.docxtrabajo integrador final sofi y vane.docx
trabajo integrador final sofi y vane.docx
 
experiencia de aprendizaje sobre lectura y escritura como herramientas de ap...
experiencia de aprendizaje sobre lectura y escritura como  herramientas de ap...experiencia de aprendizaje sobre lectura y escritura como  herramientas de ap...
experiencia de aprendizaje sobre lectura y escritura como herramientas de ap...
 
MODULO BASICO DE WORD - I CICLO.DOC.DOC.
MODULO BASICO DE WORD - I CICLO.DOC.DOC.MODULO BASICO DE WORD - I CICLO.DOC.DOC.
MODULO BASICO DE WORD - I CICLO.DOC.DOC.
 

Programacion RPG: Conceptos ILE

  • 1. PROGRAMACION RPG Conceptos ILE Ingeniero Giovanny Guillen Bustamante Especialista Certificado IBM i – PMP – Scrum Master
  • 2. 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
  • 3. Conceptos ILE ▪ Entorno donde se puede generar módulos en diferentes lenguajes. Ingeniero Giovanny Guillen Bustamante Especialista Certificado IBM i – PMP – Scrum Master
  • 4. 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
  • 5. 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
  • 6. 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
  • 7. 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
  • 8. 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
  • 9. 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
  • 10. 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
  • 11. 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
  • 12. 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
  • 13. 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
  • 14. 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
  • 15. 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 los parámetros al final de la lista pueden o no pasar en la llamada. ➢ Con %PARMS se determina si se pasan los parámetros totales. Ingeniero Giovanny Guillen Bustamante Especialista Certificado IBM i – PMP – Scrum Master
  • 16. 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
  • 17. 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 del parámetro se puede pasar o no. ➢ Con %ADDR() se determina si el valor del parámetro fue pasado o no. callp GetPrice(ItemNo: *OMIT: Price: Country); Ingeniero Giovanny Guillen Bustamante Especialista Certificado IBM i – PMP – Scrum Master
  • 18. 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
  • 19. 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 del parámetro se debe ajustar a la derecha. ➢ Permite eliminar los espacios en blanco de una cadena de caracteres. ➢ Indica que la variable o parámetro tiene una longitud máxima y se puede utilizar o no en su totalidad. Ingeniero Giovanny Guillen Bustamante Especialista Certificado IBM i – PMP – Scrum Master
  • 20. Conceptos ILE ▪ Prototipos Ingeniero Giovanny Guillen Bustamante Especialista Certificado IBM i – PMP – Scrum Master
  • 21. 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
  • 22. Ingeniero Giovanny Guillen Bustamante PMP Certified IBM i Certified Specialist E-mail: giovanny_guillen_b@Hotmail.com Gracias