En aquest mòdul, explorarem diversos estudis de cas que il·lustren com el Llenguatge de Control (CL) es pot utilitzar en aplicacions del món real. Aquests exemples pràctics t'ajudaran a comprendre millor com aplicar els conceptes i les tècniques que has après al llarg del curs.

Objectius d'Aprenentatge

  • Comprendre com s'apliquen les comandes de CL en situacions reals.
  • Analitzar i resoldre problemes pràctics utilitzant CL.
  • Aprendre de les solucions implementades en diferents escenaris.

Estudi de Cas 1: Automatització de Còpies de Seguretat

Descripció del Problema

Una empresa necessita automatitzar el procés de còpia de seguretat dels seus fitxers crítics cada nit. El procés ha de:

  1. Copiar els fitxers des d'un directori específic a un altre.
  2. Comprimir els fitxers copiat.
  3. Enviar una notificació per correu electrònic amb el resultat de l'operació.

Solució Proposada

Utilitzarem un programa CL per automatitzar aquest procés.

Pas 1: Copiar els Fitxers

CPY OBJ('/directori/origen/*') TODIR('/directori/desti/')
  • CPY OBJ: Comanda per copiar objectes.
  • '/directori/origen/*': Directori d'origen.
  • '/directori/desti/': Directori de destí.

Pas 2: Comprimir els Fitxers

QSH CMD('tar -czf /directori/desti/backup.tar.gz /directori/desti/*')
  • QSH CMD: Executa una comanda de shell.
  • tar -czf /directori/desti/backup.tar.gz /directori/desti/*: Comanda per comprimir els fitxers.

Pas 3: Enviar una Notificació per Correu Electrònic

SNDDST TYPE(*LMSG) TOINTNET((‘[email protected]’)) DSTD('Còpia de Seguretat Completa') MSG('La còpia de seguretat s'ha completat correctament.')
  • SNDDST TYPE(*LMSG): Envia un missatge de distribució.
  • TOINTNET((‘[email protected]’)): Adreça de correu electrònic del destinatari.
  • DSTD('Còpia de Seguretat Completa'): Assumpte del correu.
  • MSG('La còpia de seguretat s'ha completat correctament.'): Cos del missatge.

Codi Complet

PGM
    CPY OBJ('/directori/origen/*') TODIR('/directori/desti/')
    MONMSG MSGID(CPF0000) EXEC(DO)
        SNDDST TYPE(*LMSG) TOINTNET((‘[email protected]’)) DSTD('Error en la Còpia de Seguretat') MSG('Hi ha hagut un error en copiar els fitxers.')
        RETURN
    ENDDO

    QSH CMD('tar -czf /directori/desti/backup.tar.gz /directori/desti/*')
    MONMSG MSGID(CPF0000) EXEC(DO)
        SNDDST TYPE(*LMSG) TOINTNET((‘[email protected]’)) DSTD('Error en la Compressió') MSG('Hi ha hagut un error en comprimir els fitxers.')
        RETURN
    ENDDO

    SNDDST TYPE(*LMSG) TOINTNET((‘[email protected]’)) DSTD('Còpia de Seguretat Completa') MSG('La còpia de seguretat s'ha completat correctament.')
ENDPGM

Estudi de Cas 2: Processament per Lots de Factures

Descripció del Problema

Una empresa necessita processar un lot de factures cada final de mes. El procés ha de:

  1. Llegir les factures des d'una base de dades.
  2. Generar un informe resum.
  3. Enviar l'informe per correu electrònic al departament de comptabilitat.

Solució Proposada

Utilitzarem un programa CL per automatitzar aquest procés.

Pas 1: Llegir les Factures

RUNSQL SQL('SELECT * FROM factures WHERE data >= CURRENT_DATE - 30') OUTPUT(*OUTFILE) OUTFILE(QTEMP/FACTURES)
  • RUNSQL SQL: Executa una comanda SQL.
  • SELECT * FROM factures WHERE data >= CURRENT_DATE - 30: Selecciona les factures del darrer mes.
  • OUTPUT(*OUTFILE) OUTFILE(QTEMP/FACTURES): Desa el resultat en un fitxer temporal.

Pas 2: Generar l'Informe

CPYF FROMFILE(QTEMP/FACTURES) TOFILE(MYLIB/FACTURES_REPORT) MBROPT(*REPLACE)
  • CPYF FROMFILE(QTEMP/FACTURES) TOFILE(MYLIB/FACTURES_REPORT): Copia les dades al fitxer d'informe.
  • MBROPT(*REPLACE): Reemplaça el contingut existent.

Pas 3: Enviar l'Informe per Correu Electrònic

SNDDST TYPE(*DOC) TOINTNET((‘[email protected]’)) DSTD('Informe de Factures del Mes') MSG('Adjunt trobareu l'informe de factures del mes.') DOCFILE(MYLIB/FACTURES_REPORT)
  • SNDDST TYPE(*DOC): Envia un document.
  • TOINTNET((‘[email protected]’)): Adreça de correu electrònic del destinatari.
  • DSTD('Informe de Factures del Mes'): Assumpte del correu.
  • MSG('Adjunt trobareu l'informe de factures del mes.'): Cos del missatge.
  • DOCFILE(MYLIB/FACTURES_REPORT): Fitxer adjunt.

Codi Complet

PGM
    RUNSQL SQL('SELECT * FROM factures WHERE data >= CURRENT_DATE - 30') OUTPUT(*OUTFILE) OUTFILE(QTEMP/FACTURES)
    MONMSG MSGID(CPF0000) EXEC(DO)
        SNDDST TYPE(*LMSG) TOINTNET((‘[email protected]’)) DSTD('Error en la Lectura de Factures') MSG('Hi ha hagut un error en llegir les factures.')
        RETURN
    ENDDO

    CPYF FROMFILE(QTEMP/FACTURES) TOFILE(MYLIB/FACTURES_REPORT) MBROPT(*REPLACE)
    MONMSG MSGID(CPF0000) EXEC(DO)
        SNDDST TYPE(*LMSG) TOINTNET((‘[email protected]’)) DSTD('Error en la Generació de l'Informe') MSG('Hi ha hagut un error en generar l'informe.')
        RETURN
    ENDDO

    SNDDST TYPE(*DOC) TOINTNET((‘[email protected]’)) DSTD('Informe de Factures del Mes') MSG('Adjunt trobareu l'informe de factures del mes.') DOCFILE(MYLIB/FACTURES_REPORT)
ENDPGM

Resum

En aquest mòdul, hem vist com aplicar el Llenguatge de Control (CL) en situacions reals a través de dos estudis de cas. Hem après a automatitzar processos de còpia de seguretat i processament per lots de factures, utilitzant comandes de CL per copiar fitxers, comprimir-los, executar comandes SQL i enviar notificacions per correu electrònic. Aquests exemples pràctics t'ajudaran a aplicar els teus coneixements de CL en el teu entorn de treball.

Amb això, concloem el mòdul d'Estudis de Cas. Estàs preparat per abordar el Projecte Final, on podràs aplicar tot el que has après al llarg del curs.

© Copyright 2024. Tots els drets reservats