En este módulo, aprenderemos cómo integrar programas RPG con otros lenguajes de programación. Esta habilidad es crucial para crear aplicaciones modernas y robustas que puedan interactuar con diferentes sistemas y tecnologías.
Objetivos del Módulo
- Comprender la importancia de la interoperabilidad entre lenguajes.
- Aprender a llamar programas externos desde RPG.
- Integrar RPG con lenguajes como Java, C y Python.
- Manejar datos entre RPG y otros lenguajes.
- Importancia de la Interoperabilidad
La interoperabilidad permite que diferentes sistemas y lenguajes de programación trabajen juntos. Esto es esencial en entornos empresariales donde múltiples tecnologías deben coexistir y comunicarse eficientemente.
Ventajas
- Flexibilidad: Permite utilizar la mejor herramienta para cada tarea.
- Reutilización: Aprovecha el código existente en otros lenguajes.
- Escalabilidad: Facilita la integración de nuevas tecnologías.
- Llamando Programas Externos desde RPG
Llamando Programas Java
Para llamar a un programa Java desde RPG, utilizamos la API de Java Native Interface (JNI). Aquí hay un ejemplo básico:
Código Java (HelloWorld.java)
public class HelloWorld { public static void main(String[] args) { System.out.println("Hello from Java!"); } }
Código RPG
Explicación
- Código Java: Un simple programa que imprime un mensaje.
- Código RPG: Utiliza
QCMDEXC
para ejecutar el comando del sistema que llama al programa Java.
Ejercicio Práctico
- Escribe un programa Java que acepte un argumento y lo imprima.
- Modifica el programa RPG para pasar un argumento al programa Java.
- Integrando RPG con C
Llamando Funciones C
Podemos llamar funciones escritas en C desde RPG utilizando la API de llamadas de programas (PCML).
Código C (hello.c)
Código RPG
Explicación
- Código C: Define una función
hello
que imprime un mensaje. - Código RPG: Declara y llama a la función
hello
utilizandoEXTPROC
.
Ejercicio Práctico
- Escribe una función en C que acepte un argumento y lo imprima.
- Modifica el programa RPG para pasar un argumento a la función C.
- Integrando RPG con Python
Llamando Scripts Python
Podemos ejecutar scripts Python desde RPG utilizando el comando del sistema.
Código Python (hello.py)
Código RPG
DCL-S pythonCmd CHAR(100); pythonCmd = 'python3 hello.py'; CALLP QCMDEXC(pythonCmd: %LEN(pythonCmd));
Explicación
- Código Python: Un simple script que imprime un mensaje.
- Código RPG: Utiliza
QCMDEXC
para ejecutar el comando del sistema que llama al script Python.
Ejercicio Práctico
- Escribe un script Python que acepte un argumento y lo imprima.
- Modifica el programa RPG para pasar un argumento al script Python.
- Manejo de Datos entre RPG y Otros Lenguajes
Ejemplo de Intercambio de Datos
Código Java (DataExchange.java)
public class DataExchange { public static void main(String[] args) { if (args.length > 0) { System.out.println("Received from RPG: " + args[0]); } else { System.out.println("No data received."); } } }
Código RPG
DCL-S javaCmd CHAR(100); DCL-S data CHAR(50) INZ('Hello from RPG'); javaCmd = 'java DataExchange ' + %TRIM(data); CALLP QCMDEXC(javaCmd: %LEN(javaCmd));
Explicación
- Código Java: Recibe un argumento y lo imprime.
- Código RPG: Pasa un argumento al programa Java.
Ejercicio Práctico
- Modifica el programa Java para procesar múltiples argumentos.
- Modifica el programa RPG para pasar múltiples argumentos al programa Java.
Conclusión
En este módulo, hemos aprendido cómo integrar programas RPG con otros lenguajes de programación como Java, C y Python. La interoperabilidad es una habilidad esencial que permite crear aplicaciones más flexibles y escalables. Asegúrate de practicar los ejercicios para consolidar tus conocimientos y estar preparado para integrar RPG con cualquier tecnología que necesites en el futuro.
Curso de Programación RPG
Módulo 1: Introducción a la Programación RPG
- ¿Qué es RPG?
- Configuración de tu Entorno de Desarrollo
- Sintaxis y Estructura Básica
- Programa Hola Mundo
Módulo 2: Conceptos Básicos
- Tipos de Datos y Variables
- Operadores y Expresiones
- Estructuras de Control
- Funciones y Procedimientos
Módulo 3: Trabajando con Datos
Módulo 4: Técnicas Avanzadas de Programación
Módulo 5: RPG IV y Más Allá
Módulo 6: Integrando RPG con Tecnologías Modernas
Módulo 7: Aplicaciones del Mundo Real
- Construyendo una Aplicación Simple
- Estudio de Caso: Sistema de Gestión de Inventarios
- Estudio de Caso: Sistema de Nómina
- Mejores Prácticas y Revisión de Código