El processament condicional en JCL permet que els treballs s'executin de manera dinàmica basant-se en certes condicions. Això és especialment útil per gestionar errors, optimitzar l'execució de treballs i assegurar que només es realitzin certes tasques quan es compleixin determinades condicions.

Conceptes Clau

  1. Condicions de Retorn (Return Codes - RC):

    • Els programes que s'executen en un entorn mainframe solen retornar un codi de sortida (RC) que indica l'estat de l'execució.
    • Els codis de retorn poden variar, però generalment, un codi de retorn de 0 indica èxit, mentre que altres valors poden indicar diferents tipus d'errors o estats.
  2. Paràmetre COND:

    • El paràmetre COND s'utilitza en la declaració EXEC per especificar condicions sota les quals un pas del treball ha de ser saltat.
    • La sintaxi bàsica és COND=(code,operator), on code és el codi de retorn i operator és l'operador de comparació (EQ, NE, GT, LT, GE, LE).
  3. Paràmetre IF/THEN/ELSE/ENDIF:

    • Permet una estructura condicional més complexa dins del JCL.
    • La sintaxi bàsica és:
      //IF (condició) THEN
      // Pas a executar si la condició és certa
      //ELSE
      // Pas a executar si la condició és falsa
      //ENDIF
      

Exemples Pràctics

Exemple 1: Ús del Paràmetre COND

//JOB1    JOB (ACCT),'COND EXAMPLE',CLASS=A,MSGCLASS=A
//STEP1   EXEC PGM=PROG1
//STEP2   EXEC PGM=PROG2,COND=(4,LT)
//STEP3   EXEC PGM=PROG3,COND=(0,EQ)
  • STEP2 s'executarà només si el codi de retorn de STEP1 és 4 o més gran (LT significa "less than").
  • STEP3 s'executarà només si el codi de retorn de STEP1 és 0.

Exemple 2: Ús de la Estructura IF/THEN/ELSE/ENDIF

//JOB2    JOB (ACCT),'IF/THEN EXAMPLE',CLASS=A,MSGCLASS=A
//STEP1   EXEC PGM=PROG1
//IF (STEP1.RC = 0) THEN
//STEP2   EXEC PGM=PROG2
//ELSE
//STEP3   EXEC PGM=PROG3
//ENDIF
  • Si STEP1 retorna un codi de retorn de 0, s'executarà STEP2.
  • Si STEP1 retorna qualsevol altre codi de retorn, s'executarà STEP3.

Exercicis Pràctics

Exercici 1: Ús del Paràmetre COND

Escriu un treball JCL que executi tres passos. El segon pas només s'ha d'executar si el primer pas retorna un codi de retorn diferent de 0. El tercer pas només s'ha d'executar si el primer pas retorna un codi de retorn de 0.

Solució

//JOB3    JOB (ACCT),'COND EXERCISE',CLASS=A,MSGCLASS=A
//STEP1   EXEC PGM=PROG1
//STEP2   EXEC PGM=PROG2,COND=(0,NE)
//STEP3   EXEC PGM=PROG3,COND=(0,EQ)

Exercici 2: Ús de la Estructura IF/THEN/ELSE/ENDIF

Escriu un treball JCL que executi dos passos. Si el primer pas retorna un codi de retorn de 4 o més gran, s'ha d'executar un tercer pas. Si no, s'ha d'executar un quart pas.

Solució

//JOB4    JOB (ACCT),'IF/THEN EXERCISE',CLASS=A,MSGCLASS=A
//STEP1   EXEC PGM=PROG1
//IF (STEP1.RC GE 4) THEN
//STEP2   EXEC PGM=PROG2
//ELSE
//STEP3   EXEC PGM=PROG3
//ENDIF

Errors Comuns i Consells

  1. Error: Condició Incorrecta

    • Assegura't que les condicions especificades en COND o IF/THEN/ELSE/ENDIF siguin correctes i que els operadors de comparació siguin adequats.
  2. Error: Sintaxi Incorrecta

    • Verifica que la sintaxi de les declaracions IF/THEN/ELSE/ENDIF sigui correcta. Un error comú és oblidar el ENDIF.
  3. Consell: Prova amb Diferents Codis de Retorn

    • Prova els teus treballs JCL amb diferents codis de retorn per assegurar-te que les condicions es comporten com s'espera.

Conclusió

El processament condicional en JCL és una eina poderosa per controlar l'execució de treballs basant-se en els resultats de passos anteriors. Mitjançant l'ús de COND i IF/THEN/ELSE/ENDIF, pots crear treballs més flexibles i robustos que responen dinàmicament a diferents situacions. Practica amb els exemples i exercicis proporcionats per dominar aquests conceptes.

© Copyright 2024. Tots els drets reservats