JCL - instrukcja EXEC

Każdy JCL może składać się z wielu etapów pracy. Każdy krok zadania może wykonać program bezpośrednio lub może wywołać procedurę, która z kolei wykonuje jeden lub więcej programów (kroki zadania). Instrukcja, która przechowuje informacje o programie / procedurze etapu zadania, toEXEC statement.

Celem instrukcji EXEC jest dostarczenie wymaganych informacji o programie / procedurze wykonywanej na etapie zadania. Parametry zakodowane w tej instrukcji mogą przekazywać dane do wykonywanego programu, mogą przesłonić niektóre parametry instrukcji JOB i mogą przekazywać parametry do procedury, jeśli instrukcja EXEC wywołuje procedurę zamiast bezpośrednio wykonywać program.

Składnia

Poniżej przedstawiono podstawową składnię instrukcji JCL EXEC:

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

Opis

Zobaczmy opis terminów użytych w powyższej składni instrukcji EXEC.

NAZWA KROKU

To identyfikuje krok zadania w JCL. Może mieć długość od 1 do 8 ze znakami alfanumerycznymi.

EXEC

To jest słowo kluczowe identyfikujące ją jako instrukcję EXEC.

PARAMETRY POZYCYJNE

Są to parametry pozycyjne, które mogą mieć dwa typy:

Parametr pozycyjny Opis
PGM Odnosi się to do nazwy programu, który ma zostać wykonany w kroku zadania.
PROC Odnosi się to do nazwy procedury, która ma zostać wykonana w kroku zadania. Omówimy to w osobnym rozdziale.

KEYWORD-PARAM

Poniżej przedstawiono różne parametry słów kluczowych dla instrukcji EXEC. Możesz użyć jednego lub więcej parametrów w zależności od wymagań i są one oddzielone przecinkami:

Parametr słowa kluczowego Opis
PARM

Służy do dostarczania sparametryzowanych danych do programu, który jest wykonywany w kroku zadania. Jest to pole zależne od programu i nie ma określonych reguł, poza tym, że wartość PARM musi być zawarta w cudzysłowie w przypadku posiadania znaków specjalnych.

Na przykład podana poniżej wartość „CUST1000” jest przekazywana do programu jako wartość alfanumeryczna. Jeśli program jest w języku COBOL, wartość przekazana przez parametr PARM w JCL jest odbierana w sekcji LINKAGE programu.

ADDRSPC

Służy do określenia, czy etap zadania wymaga wirtualnego, czy rzeczywistego magazynu do wykonania. Pamięć wirtualna jest stronicowana, podczas gdy pamięć rzeczywista nie jest i jest umieszczana w pamięci głównej w celu wykonania. Etapy pracy, które wymagają szybszego wykonania, można umieścić w rzeczywistym magazynie. Oto składnia:

ADDRSPC=VIRT | REAL

Gdy ADDRSPC nie jest zakodowane, VIRT jest domyślnym.

ACCT

Określa informacje rozliczeniowe etapu zadania. Oto składnia:

ACCT=(userid)

Jest to podobne do parametru pozycyjnego accounting informationw instrukcji JOB. Jeśli jest zakodowany zarówno w instrukcji JOB, jak i EXEC, wówczas informacje rozliczeniowe w instrukcji JOB mają zastosowanie do wszystkich kroków zadania, w których parametr ACCT nie jest kodowany. Parametr ACCT w instrukcji EXEC zastąpi parametr obecny w instrukcji JOB tylko dla tego kroku zadania.

Wspólne parametry słów kluczowych instrukcji EXEC i JOB

Parametr słowa kluczowego Opis
ADDRSPC ADDRSPC zakodowane w instrukcji JOB zastępuje ADDRSPC zakodowane w instrukcji EXEC dowolnego kroku zadania.
TIME Jeśli CZAS jest zakodowany w instrukcji EXEC, dotyczy to tylko tego kroku zadania. Jeśli zostanie określony zarówno w instrukcji JOB, jak i EXEC, oba będą obowiązywać i mogą powodować błąd przekroczenia limitu czasu z powodu jednego z nich. Nie zaleca się używania parametru TIME jednocześnie w instrukcji JOB i EXEC.
REGION

Jeśli REGION jest zakodowany w instrukcji EXEC, ma zastosowanie tylko do tego kroku zadania.

REGION zakodowany w instrukcji JOB zastępuje REGION zakodowany w instrukcji EXEC dowolnego kroku zadania.

COND

Służy do sterowania wykonaniem kroku zadania na podstawie kodu powrotu z poprzedniego kroku.

Jeśli parametr COND jest zakodowany w instrukcji EXEC kroku zadania, to parametr COND instrukcji JOB (jeśli występuje) jest ignorowany. Różne testy, które można wykonać przy użyciu parametru COND, wyjaśniono w sekcji Przetwarzanie warunkowe.

Przykład

Poniżej znajduje się prosty przykład skryptu JCL wraz z instrukcjami JOB i 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