Операционные системы и программное обеспечение на платформе zSeries



Процедуры JCL - часть 2


Имя оператора EXEC является именем шага процедуры. В общем виде процедура имеет следующую структуру:

//имя PROC параметры // EXEC // DD ... // EXEC // DD ... // PEND

В теле процедуры могут быть записаны так называемые символические или формальные параметры, которые при вызове процедуры могут быть заменены на заданные пользователем значения (фактические параметры). Формальные параметры представляются в виде &имя, и могут быть указаны в процедуре в качестве параметра, подпараметра или значения в любом операторе. Фактические значения для символических параметров устанавливаются в вызывающем процедуру операторе EXEC, в виде списка, каждый элемент которого выглядит так:

имя=фактическое_значение

Рассмотрим пример некоторой абстрактной процедуры, на котором будут показаны особенности построения и использования процедур:

//MYPROC PROC UNT=SYSDA,PRN=A,TOM=DISK8,P=P2,NAME=DS.OPT //ST1 EXEC PGM=SUV,REGION=50K //LIB DD DSN=SYSLIB,DISP=OLD //SYSIN DD DSN=&NAME,DISP=(NEW,KEEP), // VOL=SER=&TOM,UNIT=&UNT, // SPACE=(TRK,(10,1,10)) //SYSOUT DD SYSOUT=&PRN //ST2 EXEC PGM=CALC,PARM=(P1,&P,P3) //TABL DD DSN=TABL.DATA,DISP=SHR // VOL=SER=WORK1,UNIT=DISK // PEND

Данная процедура с именем MYPROC содержит два шага (ST1 и ST2). В теле процедуры выделено пять формальных параметров. В операторе PROC представлен список фактических стандартных значений формальных параметров, которые будут использоваться по умолчанию в случае, если пользователь не определит собственные фактические значения. Например, если процедура будет вызвана в задании следующим образом:

//PRIM1 EXEC MYPROC

то это как раз такой случай: все значения формальных параметров будут выбраны из оператора PROC.

Если же пользователь захочет изменить все или некоторые стандартные значения, их необходимо указать непосредственно в операторе EXEC:

//PRIM2 EXEC MYPROC,NAME=BIBL,UNT=3390

В данном случае устанавливаются новые значения для формальных параметров NAME и UNT, а остальные параметры примут стандартные значения, записанные в операторе PROC.


Содержание  Назад  Вперед