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