En este módulo, aprenderemos cómo el Lenguaje de Control (CL) puede interactuar con programas externos. Esta capacidad es crucial para integrar aplicaciones y servicios, permitiendo que los programas CL se comuniquen y colaboren con otros sistemas y lenguajes.
Objetivos de Aprendizaje
Al final de esta sección, deberías ser capaz de:
- Entender cómo y por qué llamar programas externos desde CL.
- Utilizar comandos CL para ejecutar programas externos.
- Manejar la entrada y salida de datos entre CL y programas externos.
- Resolver problemas comunes al llamar programas externos.
Conceptos Clave
¿Por qué llamar programas externos?
Llamar programas externos permite:
- Integración de sistemas: Conectar aplicaciones escritas en diferentes lenguajes.
- Reutilización de código: Aprovechar funcionalidades ya implementadas en otros programas.
- Automatización: Ejecutar tareas automatizadas que requieren la colaboración de múltiples programas.
Comandos CL para llamar programas externos
Los comandos más comunes para llamar programas externos en CL son:
CALL
: Llama a un programa CL o RPG.SBMJOB
: Envía un trabajo para que se ejecute en segundo plano.RUNRMTCMD
: Ejecuta un comando en un sistema remoto.
Ejemplo Práctico: Llamando un Programa Externo
Paso 1: Crear un Programa Externo
Primero, crearemos un programa simple en otro lenguaje, por ejemplo, un script de Python que imprime "Hola desde Python".
Paso 2: Configurar el Entorno
Asegúrate de que el programa externo esté accesible desde el sistema donde se ejecutará el CL. Esto puede implicar configurar rutas de acceso o permisos.
Paso 3: Llamar al Programa Externo desde CL
Utilizaremos el comando RUNRMTCMD
para ejecutar el script de Python.
Explicación del Comando
CMD
: Especifica el comando que se ejecutará en el sistema remoto.RMTLOCNAME
: Especifica la dirección del sistema remoto.
Paso 4: Manejar la Salida del Programa Externo
Para capturar la salida del programa externo, podemos redirigir la salida a un archivo y luego leer ese archivo desde CL.
RUNRMTCMD CMD('python /ruta/a/tu/script/hola.py > /ruta/a/tu/salida.txt') RMTLOCNAME('192.168.1.100') /* Leer la salida */ RTVMBRD FILE(QTEMP/SALIDA) MBR(SALIDA) RTNVAR(&SALIDA)
Explicación del Comando
RTVMBRD
: Recupera el contenido de un miembro de archivo físico en una variable CL.
Ejercicio Práctico
Ejercicio 1: Llamar un Script de Shell
- Crea un script de shell que imprima "Hola desde Shell".
- Llama al script desde un programa CL utilizando
RUNRMTCMD
. - Captura y muestra la salida del script en el programa CL.
Solución
-
Crear el script de shell:
# hola.sh echo "Hola desde Shell"
-
Llamar al script desde CL:
RUNRMTCMD CMD('sh /ruta/a/tu/script/hola.sh > /ruta/a/tu/salida.txt') RMTLOCNAME('192.168.1.100')
-
Capturar y mostrar la salida:
RTVMBRD FILE(QTEMP/SALIDA) MBR(SALIDA) RTNVAR(&SALIDA) SNDPGMMSG MSG(&SALIDA)
Errores Comunes y Consejos
Errores Comunes
- Permisos insuficientes: Asegúrate de que el programa externo y los archivos de salida tengan los permisos adecuados.
- Rutas incorrectas: Verifica que las rutas a los scripts y archivos sean correctas y accesibles.
- Problemas de red: Asegúrate de que el sistema remoto esté accesible y que no haya problemas de conectividad.
Consejos Adicionales
- Prueba localmente primero: Antes de integrar con CL, prueba tus scripts y programas externamente para asegurarte de que funcionan correctamente.
- Manejo de errores: Implementa manejo de errores en tus scripts externos para que puedas diagnosticar problemas fácilmente.
Conclusión
Llamar programas externos desde CL es una técnica poderosa que permite la integración y automatización de tareas entre diferentes sistemas y lenguajes. Con los comandos adecuados y una buena gestión de la entrada y salida de datos, puedes ampliar significativamente las capacidades de tus programas CL.
En el próximo tema, exploraremos cómo interactuar con bases de datos desde CL, lo que te permitirá gestionar y manipular datos de manera eficiente.
Curso de CL (Lenguaje de Control)
Módulo 1: Introducción a CL
- ¿Qué es el Lenguaje de Control?
- Configuración de tu Entorno
- Sintaxis y Estructura Básica
- Escribiendo tu Primer Programa CL
Módulo 2: Comandos Básicos de CL
- Introducción a los Comandos de CL
- Comandos de Gestión de Archivos
- Comandos de Gestión de Trabajos
- Comandos de Gestión del Sistema
Módulo 3: Variables y Expresiones
- Entendiendo las Variables
- Definiendo y Usando Variables
- Expresiones y Operadores
- Manipulación de Cadenas
Módulo 4: Estructuras de Control
Módulo 5: Comandos Avanzados de CL
- Operaciones Avanzadas de Archivos
- Programación Avanzada de Trabajos
- Comandos de Configuración del Sistema
- Seguridad y Permisos