Итак, прежде чем передать пакетное задание системе, пользователь должен подготовить его текст на языке JCL. Обычно текст задания создается в некотором наборе данных с помощью текстового редактора, откуда специальными средствами пользовательского интерфейса его можно направить на обработку в подсистему JES2. z/OS требует, чтобы для представления заданий использовались только последовательные и библиотечные наборы данных с параметрами RECFM=FB и LRECL=80. Текст задания вводится, как правило, прописными буквами.
Задание состоит из последовательности управляющих предложений JCL (job control statement)2). Каждое предложение имеет следующую структуру:
//ИМЯ ОПЕРАТОР ОПЕРАНДЫ КОММЕНТАРИЙ
В первых двух позициях всегда (или почти всегда) указываются две косые черты (знак слэш /), которые являются главным отличительным признаком предложений JCL.
Поле имя начинается с третьей позиции и служит для идентификации представленного в предложении оператора. Фактически это метка, на которую можно ссылаться из различных предложений задания или других заданий. Имя может содержать не более восьми символов, включающих латинские буквы, цифры и специальные знаки ($ # @). Имя должно начинаться с буквы или специального знака, русские буквы и пробелы использовать нельзя. В некоторых специальных случаях применяют составные имена, использующие в качестве разделителя точку. Пробел в третьей позиции является признаком отсутствия имени.
Примеры правильных имен: STOUT1, SYSPRINT, IVANOV, IVAN#S
Примеры неправильных имен: 3DIAGNOZ (начинается с цифры), DIAGNOSTIKA (содержит более восьми символов), ТОМ+И (содержит недопустимый символ И).
Вслед за полем имени следуют другие поля, отделяемые друг от друга одним или несколькими пробелами.
JOB | Начало задания и режим выполнения задания |
EXEC | Начало шага задания, указание выполняемой программы или процедуры |
DD | Описание набора данных и используемых устройств |
COMMAND | Ввод системной (консольной) команды MVS или команды JES |
PROC | Начало процедуры и описание параметров процедуры |
PEND | Конец процедуры |
JCLLIB | Список библиотек для поиска процедур, указанных в задании |
OUTPUT | Параметры формирования отчета о выполнении задания (SYSOUT) |
INCLUDE | Имя раздела библиотеки, текст которого необходимо включить в указанное место задания |
CNTL/ENDCNTL | Начало и конец блока управляющих параметров, передаваемых программе во входном потоке |
IF/THEN/ELSE/ENDIF | Условное выполнение шагов задания (ветвление) |
SET | Инициализация или изменение значений символических параметров |
/* | Оператор ограничения данных, представленных во входном потоке |
// | Пустой оператор (конец задания) |
//* | Оператор комментария |