La automatización de tareas del sistema es una de las aplicaciones más poderosas del Lenguaje de Control (CL). Permite a los administradores de sistemas y desarrolladores programar y ejecutar tareas repetitivas sin intervención manual, mejorando la eficiencia y reduciendo el riesgo de errores humanos.

Objetivos de Aprendizaje

Al final de esta sección, deberías ser capaz de:

  • Comprender los conceptos básicos de la automatización de tareas del sistema.
  • Escribir scripts CL para automatizar tareas comunes.
  • Programar tareas para que se ejecuten en horarios específicos.
  • Utilizar comandos CL para gestionar y monitorear tareas automatizadas.

Conceptos Básicos de Automatización

¿Qué es la Automatización de Tareas?

La automatización de tareas implica el uso de scripts y programas para realizar tareas repetitivas sin intervención manual. En el contexto de CL, esto se logra mediante la creación de scripts que ejecutan comandos del sistema en secuencia.

Beneficios de la Automatización

  • Eficiencia: Ahorra tiempo al ejecutar tareas repetitivas automáticamente.
  • Consistencia: Reduce el riesgo de errores humanos.
  • Escalabilidad: Permite manejar un mayor volumen de trabajo sin aumentar la carga de trabajo manual.

Escribiendo Scripts de Automatización

Ejemplo de Script Básico

A continuación, se muestra un ejemplo de un script CL que automatiza la copia de archivos de un directorio a otro.

PGM
    /* Definir variables */
    DCL VAR(&SRC) TYPE(*CHAR) LEN(50) VALUE('/source_directory')
    DCL VAR(&DEST) TYPE(*CHAR) LEN(50) VALUE('/destination_directory')

    /* Comando para copiar archivos */
    CPY OBJ(&SRC/*) TOOBJ(&DEST) REPLACE(*YES)

    /* Mensaje de confirmación */
    SNDPGMMSG MSG('Archivos copiados exitosamente de' *BCAT &SRC *BCAT 'a' *BCAT &DEST)
ENDPGM

Explicación del Script

  1. Definición de Variables:

    DCL VAR(&SRC) TYPE(*CHAR) LEN(50) VALUE('/source_directory')
    DCL VAR(&DEST) TYPE(*CHAR) LEN(50) VALUE('/destination_directory')
    

    Se definen dos variables, &SRC y &DEST, que almacenan las rutas de los directorios de origen y destino.

  2. Comando de Copia:

    CPY OBJ(&SRC/*) TOOBJ(&DEST) REPLACE(*YES)
    

    El comando CPY copia todos los archivos (*) del directorio de origen al directorio de destino, reemplazando los archivos existentes.

  3. Mensaje de Confirmación:

    SNDPGMMSG MSG('Archivos copiados exitosamente de' *BCAT &SRC *BCAT 'a' *BCAT &DEST)
    

    Envía un mensaje de confirmación indicando que los archivos han sido copiados exitosamente.

Programación de Tareas

Uso del Comando SBMJOB

El comando SBMJOB se utiliza para enviar un trabajo a la cola de trabajos, permitiendo que se ejecute en un horario específico.

Ejemplo de Programación

SBMJOB CMD(CALL PGM(MYLIB/MYPGM)) JOB(MYJOB) SCDDATE('2023-12-31') SCDTIME('23:59:00')

Explicación del Comando

  • CMD: Especifica el comando a ejecutar, en este caso, llamar a un programa MYPGM en la biblioteca MYLIB.
  • JOB: Nombre del trabajo.
  • SCDDATE: Fecha en la que se debe ejecutar el trabajo.
  • SCDTIME: Hora a la que se debe ejecutar el trabajo.

Monitoreo y Gestión de Tareas Automatizadas

Comandos Útiles

  • WRKJOB: Muestra información sobre trabajos específicos.
  • WRKACTJOB: Muestra los trabajos activos en el sistema.
  • WRKSBMJOB: Muestra los trabajos enviados por el usuario.

Ejemplo de Uso

WRKJOB JOB(MYJOB)

Este comando muestra información detallada sobre el trabajo MYJOB.

Ejercicio Práctico

Ejercicio 1: Automatización de Copia de Archivos

Escribe un script CL que copie archivos de un directorio a otro y prográmalo para que se ejecute diariamente a las 2:00 AM.

Solución

PGM
    /* Definir variables */
    DCL VAR(&SRC) TYPE(*CHAR) LEN(50) VALUE('/source_directory')
    DCL VAR(&DEST) TYPE(*CHAR) LEN(50) VALUE('/destination_directory')

    /* Comando para copiar archivos */
    CPY OBJ(&SRC/*) TOOBJ(&DEST) REPLACE(*YES)

    /* Mensaje de confirmación */
    SNDPGMMSG MSG('Archivos copiados exitosamente de' *BCAT &SRC *BCAT 'a' *BCAT &DEST)
ENDPGM

/* Programar el trabajo */
SBMJOB CMD(CALL PGM(MYLIB/MYPGM)) JOB(COPYJOB) SCDDATE(*CURRENT) SCDTIME('02:00:00') FREQ(*DAILY)

Retroalimentación y Consejos

  • Errores Comunes:
    • No definir correctamente las rutas de los directorios.
    • No especificar correctamente la fecha y hora en el comando SBMJOB.
  • Consejos:
    • Verifica siempre las rutas de los directorios antes de ejecutar el script.
    • Utiliza el comando WRKJOB para monitorear el estado de los trabajos programados.

Conclusión

En esta sección, hemos aprendido cómo automatizar tareas del sistema utilizando scripts CL. Hemos cubierto desde la escritura de scripts básicos hasta la programación de tareas para su ejecución automática. La automatización es una herramienta poderosa que puede mejorar significativamente la eficiencia y la consistencia en la gestión de sistemas.

En la siguiente sección, exploraremos el procesamiento por lotes, otra técnica importante para la gestión eficiente de tareas en sistemas complejos.

© Copyright 2024. Todos los derechos reservados