50 years ago, a very clever mechanism was designed that enabled programs to execute using different input data and output destinations without the need to change the program. That mechanism is called Job Control Language, or JCL.
Controlling job execution is the most important function of JCL. While it is a programming language, it's not intended for application programming. Instead, JCL is used to stack and queue the execution of other programs and to identify the input and output pipes for each program.
Many programs can be prepped, staged, and executed in-order and at scheduled intervals. This sort of processing is often referred to as "batch" processing, as you can envision a batch, or collection, of work being performed as a single unit.
Use the editor to view and submit JCL to the system for execution. This JCL will execute a job in the background, allowing you to continue to work. When the job completes, z/OS will inform you. This sort of workflow is also called "background processing".
Edit CC#####.JCL, and on the PDS directory primary command line, enter SELECT NEWJCL.
Since NEWJCL did not previously exist, the result of the select command is to create a new, empty member named NEWJCL. The editor will open the new member and present blank input lines.
- On the primary command line enter COPY 'ZOS.PUBLIC.JCL(MYJOB)'.
- Then on the primary command line enter SUBMIT.
- Press F3 to save and exit.
The result of the above steps is to copy MYJOB from ZOS.PUBLIC.JCL to NEWJCL and submit that JCL for execution. Upon successful execution of the JCL, P2.OUTPUT(#04) is created.
That was pretty easy! You just submitted JCL for z/OS to read and execute a nifty program called "SORT" in a batch. Verify your success by viewing CC#####.P2.OUTPUT and select member #04.