En aquest tema, aprendrem com crear i utilitzar procediments en JCL. Els procediments (o PROCs) són una manera eficient de reutilitzar codi JCL, permetent definir una sèrie d'instruccions que es poden invocar des de múltiples treballs JCL. Això ajuda a estalviar temps i a mantenir la consistència en l'execució de tasques repetitives.

Què és un Procediment?

Un procediment en JCL és un conjunt d'instruccions JCL que es defineixen una vegada i es poden utilitzar múltiples vegades en diferents treballs. Els procediments es defineixen en fitxers de llibreria de procediments (PROCLIB) i es poden invocar mitjançant la instrucció EXEC.

Avantatges d'Utilitzar Procediments

  • Reutilització del Codi: Permet definir una vegada i utilitzar múltiples vegades.
  • Manteniment Fàcil: Canvis en el procediment es reflecteixen en tots els treballs que l'utilitzen.
  • Consistència: Assegura que les mateixes instruccions s'executin de manera consistent en diferents treballs.

Crear un Procediment

Un procediment es defineix en un fitxer de llibreria de procediments. A continuació es mostra un exemple de com definir un procediment senzill:

//MYPROC PROC
//STEP1  EXEC PGM=IEFBR14
//DD1    DD   DSN=MY.DATA.SET,DISP=(NEW,CATLG,DELETE),
//             SPACE=(TRK,1),UNIT=SYSDA
//STEP2  EXEC PGM=IEBGENER
//SYSPRINT DD SYSOUT=*
//SYSIN    DD DUMMY
//SYSUT1   DD DSN=MY.DATA.SET,DISP=SHR
//SYSUT2   DD SYSOUT=*
//

Explicació del Codi

  • //MYPROC PROC: Defineix el nom del procediment com MYPROC.
  • //STEP1 EXEC PGM=IEFBR14: Defineix un pas que executa el programa IEFBR14.
  • //DD1 DD DSN=MY.DATA.SET,DISP=(NEW,CATLG,DELETE),...: Defineix un conjunt de dades nou.
  • //STEP2 EXEC PGM=IEBGENER: Defineix un segon pas que executa el programa IEBGENER.
  • //SYSPRINT DD SYSOUT=*: Defineix la sortida del sistema.
  • //SYSIN DD DUMMY: Defineix una entrada fictícia.
  • //SYSUT1 DD DSN=MY.DATA.SET,DISP=SHR: Defineix un conjunt de dades existent.
  • //SYSUT2 DD SYSOUT=*: Defineix la sortida del sistema.

Utilitzar un Procediment

Per utilitzar un procediment en un treball JCL, es fa servir la instrucció EXEC amb el nom del procediment. A continuació es mostra un exemple de com invocar el procediment MYPROC:

//MYJOB  JOB (ACCT),'EXEMPLE',CLASS=A,MSGCLASS=A
//STEP1  EXEC MYPROC

Explicació del Codi

  • //MYJOB JOB (ACCT),'EXEMPLE',CLASS=A,MSGCLASS=A: Defineix un treball JCL.
  • //STEP1 EXEC MYPROC: Invoca el procediment MYPROC.

Sobreescriure Paràmetres en un Procediment

És possible sobreescriure paràmetres en un procediment quan s'invoca. Això es fa especificant els nous valors en la instrucció EXEC. A continuació es mostra un exemple:

//MYJOB  JOB (ACCT),'EXEMPLE',CLASS=A,MSGCLASS=A
//STEP1  EXEC MYPROC
//STEP1.DD1 DD DSN=NEW.DATA.SET,DISP=(NEW,CATLG,DELETE)

Explicació del Codi

  • //STEP1.DD1 DD DSN=NEW.DATA.SET,DISP=(NEW,CATLG,DELETE): Sobreescriu el conjunt de dades DD1 definit en el procediment MYPROC amb un nou conjunt de dades NEW.DATA.SET.

Exercici Pràctic

Exercici

  1. Defineix un procediment anomenat COPYPROC que copiï un conjunt de dades a un altre.
  2. Utilitza el procediment COPYPROC en un treball JCL.
  3. Sobreescriu el conjunt de dades d'entrada i sortida en la invocació del procediment.

Solució

Definició del Procediment

//COPYPROC PROC
//COPYSTEP EXEC PGM=IEBGENER
//SYSPRINT DD SYSOUT=*
//SYSIN    DD DUMMY
//SYSUT1   DD DSN=INPUT.DATA.SET,DISP=SHR
//SYSUT2   DD DSN=OUTPUT.DATA.SET,DISP=(NEW,CATLG,DELETE),
//             SPACE=(TRK,1),UNIT=SYSDA
//

Utilització del Procediment

//MYJOB  JOB (ACCT),'EXEMPLE',CLASS=A,MSGCLASS=A
//STEP1  EXEC COPYPROC
//STEP1.SYSUT1 DD DSN=MY.INPUT.DATA,DISP=SHR
//STEP1.SYSUT2 DD DSN=MY.OUTPUT.DATA,DISP=(NEW,CATLG,DELETE),
//               SPACE=(TRK,1),UNIT=SYSDA

Explicació de la Solució

  • Definició del Procediment: COPYPROC defineix un pas COPYSTEP que utilitza IEBGENER per copiar dades.
  • Utilització del Procediment: MYJOB invoca COPYPROC i sobreescriu els conjunts de dades d'entrada (SYSUT1) i sortida (SYSUT2).

Conclusió

En aquest tema, hem après com crear i utilitzar procediments en JCL. Els procediments són una eina poderosa per reutilitzar codi i mantenir la consistència en els treballs JCL. També hem vist com sobreescriure paràmetres en la invocació d'un procediment per adaptar-lo a necessitats específiques. Amb aquesta base, estàs preparat per explorar paràmetres simbòlics en el següent tema.

© Copyright 2024. Tots els drets reservats