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