Job Control Language (JCL) –język opisu zadań, jest zbiorem wyrażeń (poleceń), które są przekazywane do systemu, aby wykonać program, podążając według pewnych instrukcji wyjściowych i wejściowych. Takie wyrażenia przekazują systemowi, gdzie znajdują się odpowiednie wejścia i jak należy przetworzyć owo wejście (uruchomienie programu) i co z rezultatem działania programu. Job pozwala na wykonanie zadania (zadań) w tle pracy systemu.
Występuje 18 klas wyrażeń dla JCL:JOB, EXEC, DD, PROC, PEND, COMMENT, NULL, DELIMITER, OUTPUT, JCL COMMAND (obsługiwany przez JES2), CNTL, ENDCNTL, COMMAND, IF/THEN/ELSE/ENDIF, INCLUDE, JCLLIB, SET, XMIT (obsługiwany przez JES3).
Najważniejszymi wyrażeniami z powyższych klas są:JOB,EXEC,DD.
//jobname JOB positionals,keywords----//MOJJOB1 JOB (ACCT),'USER.U',CLASS=A
Inne parametry, które może przyjmować wyrażenie JOB:REGION, NOTIFY, USER, TYPRUN, CLASS, MSGCLASS, MSGLEVEL.
//stepname EXEC positional,keywords----//STEP1 EXEC PGM=(executable program name or a JCL procedure name(PROC=))
//ddname DD ...----//INDD1 DD ...//OUTDD1 DD ...
Jobname, stepname, ddname powinny być unikatowe, maksymalna długość wynosi 8 znaków,positional i keyword są to parametry.Przykładowy fragment zadania wykorzystujący powyższe wyrażenia:
000100 //MOJJOB1 JOB NOTIFY=&SYSUID,CLASS=A 000110 //STEP1 EXEC PGM=IEFBER14 000120 //DD1 DD DSN=TEST.ALOTEST1.PDS,DISP=(NEW,CATLG,CATLG), 000130 // LIKE=TEST.ALOTEST.PDS...
// na początku linii.//*// świadczy to o końcu zadaniaJCl korzysta z pewnych narzędzi, które wspomagają przetwarzanie danych. Narzędzia te pozwalają na kopiowanie, tworzenie, usuwanie zestawów danych oraz wykonywanie na nich wszelkich operacji, dzieli się je na narzędzia systemowe i zestawów danych.