JCL - Dichiarazione EXEC

Ogni JCL può essere composto da molte fasi di lavoro. Ogni fase di lavoro può eseguire direttamente un programma o può chiamare una procedura, che a sua volta esegue uno o più programmi (fasi di lavoro). L'istruzione, che contiene le informazioni sul programma / procedura della fase di lavoro, èEXEC statement.

Lo scopo dell'istruzione EXEC è fornire le informazioni richieste per il programma / procedura eseguita nella fase del lavoro. I parametri codificati in questa istruzione possono passare dati al programma in esecuzione, possono sovrascrivere alcuni parametri dell'istruzione JOB e possono passare parametri alla procedura se l'istruzione EXEC chiama una procedura invece di eseguire direttamente un programma.

Sintassi

Di seguito è riportata la sintassi di base di un'istruzione JCL EXEC:

//Step-name EXEC Positional-param, Keyword-param

Descrizione

Vediamo la descrizione dei termini usati nella sintassi dell'istruzione EXEC sopra.

STEP-NAME

Ciò identifica la fase di lavoro all'interno del JCL. Può avere una lunghezza compresa tra 1 e 8 con caratteri alfanumerici.

EXEC

Questa è la parola chiave per identificarlo come un'istruzione EXEC.

PARAMETRI POSIZIONALI

Questi sono parametri posizionali, che possono essere di due tipi:

Parametro posizionale Descrizione
PGM Si riferisce al nome del programma da eseguire nella fase del lavoro.
PROC Si riferisce al nome della procedura da eseguire nella fase del lavoro. Ne discuteremo in un capitolo a parte.

PAROLA CHIAVE

Di seguito sono riportati i vari parametri delle parole chiave per l'istruzione EXEC. È possibile utilizzare uno o più parametri in base ai requisiti e sono separati da virgola:

Parametro parola chiave Descrizione
PARM

Utilizzato per fornire dati parametrizzati al programma che viene eseguito nella fase di lavoro. Questo è un campo dipendente dal programma e non ha regole definite, tranne per il fatto che il valore PARM deve essere incluso nella citazione in caso di caratteri speciali.

Ad esempio riportato di seguito, il valore "CUST1000" viene passato al programma come valore alfanumerico. Se il programma è in COBOL, il valore passato attraverso un parametro PARM in un JCL viene ricevuto nella SEZIONE COLLEGAMENTO del programma.

ADDRSPC

Viene utilizzato per specificare se la fase di lavoro richiede una memoria virtuale o reale per l'esecuzione. La memoria virtuale è paginabile mentre quella reale non lo è e viene collocata nella memoria principale per l'esecuzione. Le fasi del lavoro, che richiedono un'esecuzione più rapida, possono essere collocate nella memoria reale. La seguente è la sintassi:

ADDRSPC=VIRT | REAL

Quando un ADDRSPC non è codificato, VIRT è quello predefinito.

ACCT

Specifica le informazioni contabili della fase di lavoro. La seguente è la sintassi:

ACCT=(userid)

Questo è simile al parametro posizionale accounting informationnell'istruzione JOB. Se è codificato sia nell'istruzione JOB che nell'istruzione EXEC, le informazioni contabili nell'istruzione JOB si applicano a tutte le fasi del lavoro in cui un parametro ACCT non è codificato. Il parametro ACCT in un'istruzione EXEC sovrascriverà quello presente nell'istruzione JOB solo per quella fase di lavoro.

Parametri delle parole chiave comuni dell'istruzione EXEC e JOB

Parametro parola chiave Descrizione
ADDRSPC ADDRSPC codificato nell'istruzione JOB sovrascrive l'ADDRSPC codificato nell'istruzione EXEC di qualsiasi fase del lavoro.
TIME Se TIME è codificato in un'istruzione EXEC, si applica solo a quella fase di lavoro. Se è specificato sia nell'istruzione JOB che nell'istruzione EXEC, entrambe saranno attive e possono causare un errore di timeout a causa di una delle due. Non è consigliabile utilizzare il parametro TIME sia nell'istruzione JOB che in quella EXEC insieme.
REGION

Se REGION è codificato in un'istruzione EXEC, si applica solo a quella fase di lavoro.

REGION codificato nell'istruzione JOB sovrascrive la REGION codificato nell'istruzione EXEC di qualsiasi fase del lavoro.

COND

Utilizzato per controllare l'esecuzione della fase di lavoro in base al codice di ritorno della fase precedente.

Se un parametro COND è codificato in un'istruzione EXEC di una fase di lavoro, il parametro COND dell'istruzione JOB (se presente) viene ignorato. I vari test che possono essere eseguiti utilizzando un parametro COND sono spiegati in Elaborazione condizionale.

Esempio

Di seguito è riportato un semplice esempio di script JCL insieme alle istruzioni JOB ed EXEC:

//TTYYSAMP JOB 'TUTO',CLASS=6,MSGCLASS=X,REGION=8K,
//      NOTIFY=&SYSUID
//*
//STEP010 EXEC PGM=MYCOBOL,PARAM=CUST1000,
//      ACCT=(XXXX),REGION=8K,ADDRSPC=REAL,TIME=1440