# Executing jCL programs

Updated: 10/19/2020, 10:24:56 AM
Created: 10/19/2020, 10:24:56 AM
Last Updated By: Daniel Klein
Read Time: 1 minute(s)

Tags: jcl

jCL programs can be executed in several ways:

  • Enter the name of the program from jSHELL,
  • "jump to" another jCL  program of the same type by using the ( ) command,
  • "call" another jCL program of the same type, as a subroutine, by using the [ ] command,
  • Using  PERFORM , EXECUTE or CHAIN  statement from a jBC  program, or
  • Convert the program to a UNIX executable and call it from any shell. Change the first line to
#!usr/jbc/bin/jpq
1

and then use chmod to create an executable file.

Once started, a jCL  program will remain active until:

  • control is explicitly passed to another jCL  program
  • the jCL  program is explicitly exited
  • all of the lines of the jCL  program are exhausted
  • a fatal error is encountered.

Even when the jCL  program temporarily passes control to another process such as jED  or jBC , it will still remain in control (unless control is passed to a jBC program which then CHAINs or ENTERs another jCL program). Exiting from the called process will return control to the jCL program.

If it is desired to not store the main body of a jCL program in the MD file, a "pointer" jCL program can be created in the MD instead.
For example, to run a jCL program called DAILY which is held on a file called REPORTS, create an MD entry like this:

DAILYYREPORT
001 PQN
002 (REPORTS DAILY)
1
2
3

This will chain to jCL  program DAILY in file REPORTS.

Note that the "pointer" program and the "pointed to" program can have the same name.

Back to jCL Commands