Шаг 1: Пожалуйста, имейте следующие 3 набора данных.
Набор данных 1: рабочая карта и инструкция EXEC.
//JOBNAME JOB ('ACCOUNT INFORMATION'),
// JOBCARD,CLASS=2,MSGCLASS=H,NOTIFY=&SYSUID
//STEP1 EXEC PGM=SORT
Набор данных 2: содержимое SORTIN - это должен быть динамически создаваемый файл.
//SORTIN DD DSN=DES.LQHISE03.ENTRADA,DISP=SHR
Набор данных 3: остальное содержимое
//SORTOUT DD DSN=OUTPUT.DATASET.NAME,
// DISP=(,CATLG,DELETE),
// SPACE=(CYL,(100,0),RLSE),
// DCB=(LRECL=80,RECFM=FB,BLKSIZE=0)
//SYSOUT DD SYSOUT=*
//SYSIN DD *
SORT FIELDS=COPY
/*
//IDCAMS EXEC PGM=IDCAMS,COND=(0,LT,STEP1)
//SYSPRINT DD SYSOUT=*
//DD1 DD DISP=SHR,DSN=YOUR.PDS
DELETE 'YOUR.PDS(MEMBER)' FILE(DD1)
/*
Шаг 2: Объединить наборы данных.
//STEP2 EXEC PGM=IEBGENER
//SYSPRINT DD SYSOUT=*
//SYSUT1 DD DSN=Dataset 1,DISP=SHR
// DD DSN=Dataset 2,DISP=SHR
// DD DSN=Dataset 3,DISP=SHR
//SYSUT2 DD DSN=Sort Step,
// DISP=(,CATLG,DELETE),
// SPACE=(CYL,(100,0),RLSE),
// DCB=(LRECL=80,RECFM=FB,BLKSIZE=0)
//SYSIN DD DUMMY
Шаг 3: Иметь IEBGENER для записи шага сортировки (вывод из STEP 2) в качестве члена в PDS.
//STEP3 EXEC PGM=IEBGENER,COND=(0,LT,STEP2)
//SYSUT1 DD DSN=*.STEP2.SYSUT2,DISP=SHR
//SYSUT2 DD DSN=YOUR.PDS(MEMBER),DISP=SHR
//SYSPRINT DD SYSOUT=*
//SYSIN DD DUMMY
Теперь у вас будет полный JCL в элементе внутри вашего PDS (Примечание. Элемент внутри PDS будет удален после завершения задания SORT). Вам просто нужно отправить участника. Вы можете использовать утилиту IKJEFT01 для запуска функции TSO, LISTDS. Эта функция отображает атрибуты набора данных. Если участник существует, выдается RC 0, и вы можете добавить код, чтобы ОТПРАВИТЬ участника, в противном случае вы можете ввести некоторый код возврата (для обозначения недоступности участника). Подробнее здесь