Submitting JCL to compile, link, and run jobs tutorial
About this tutorial
After you complete coding changes by using IBM Z Open Editor, you want to test your changes. In order to upload all the necessary files to z/OS and run jobs, you can use Zowe CLI commands, Zowe Explorer, or both for the operation.
Prerequisites
- Install IBM Z Open Editor and its prerequisites such as Java as described in Getting Started.
- Install Zowe CLI as described in Setting up integrations.
Procedure
To ensure that you have a working set of files, switch your local workspace to the
tutorial-complete
Git branch that has the final updated set of programs and support files through the branch icon at the lower left.Allocate the data sets on z/OS. Sample JCL files such as
ALLOCATE.jcl
are provided to allocate the necessary files. Alternatively, you can use your own existing PDS, or create new data sets in the Data Sets view or with Zowe CLI commands.Before you use a JCL file, adjust it for your user name with these steps:
Click the JCL file to open it in the editor.
Note: Language support for JCl is unavailable now. But JCL syntax highlighting is enabled.
Review the file. It creates data sets in the format
HLQ.SAMPLE.*
.Modify the value for the symbolic
HLQ
to the high-level qualifier you want to use and save the file. For example, replaceTSOUSER
with your value.Execute the JCL with one of the following methods:
- Zowe CLI command:
zowe jobs submit local-file "JCL/ALLOCATE.jcl"
The
Submit Job
option in Zowe ExplorerTake
ALLOCATE.jcl
as an example. To execute the job, take the following steps:- Switch to Zowe Explorer.
- Click the
USER1.SAMPLE.JCL(ALLOCATE)
data set member you created to open it in the editor. - Copy and paste the contents of JCL/ALLOCATE.jcl in the file tree into the PDS member, and save the member.
- From the Zowe Explorer view, right-click the
ALLOCATE
member ofSAMPLE.JCL
, and selectSubmit Job
.
After you submit the job, a message box that shows the jcl was submitted and a job number in the lower right corner.
You can go to the
JOBS
view in Zowe Explorer to see the return code of the job. If the job does not exist inJOBS
view, you might need to set the job owner to your USERID by right-clicking thezoweCLI
line and selectingSet Owner
.
Verify the creation of these data sets using your user name by refreshing your data sets view. You might see the following lines:
HLQ.SAMPLE.COBOL HLQ.SAMPLE.COBCOPY HLQ.SAMPLE.COPYLIB HLQ.SAMPLE.OBJ HLQ.SAMPLE.LOAD HLQ.SAMPLE.CUSTFILE HLQ.SAMPLE.TRANFILE
After the data sets are created, upload the sample files to the appropriate data sets. Replace the user name with your name. Take COBOL as an example.
For COBOL and COPYBOOK PDS members, right-click the data set and select
Create New Member
to create files in MVS™ data set. You need to create the members as follows:- Upload the contents of the local files into the PDS data sets using the commands:
zowe files ul dir-to-pds "COBOL" "USER1.SAMPLE.COBOL" zowe files ul dir-to-pds "COPYBOOK" "USER1.SAMPLE.COBCOPY" zowe files ul dir-to-pds "COPYLIB" "USER1.SAMPLE.COPYLIB" zowe files ul dir-to-pds "COPYLIB-MVS" "USER1.SAMPLE.COPYLIB"
Limitation: Drag and drop support to upload files in MVS data sets from the local file system is unavailable now.
For sequential files, use these Zowe CLI upload commands:
zowe files ul ftds "RESOURCES/SAMPLE.CUSTFILE" "USER1.SAMPLE.CUSTFILE" zowe files ul ftds "RESOURCES/SAMPLE.TRANFILE" "USER1.SAMPLE.TRANFILE"
After uploading to the data sets, click the COBOL data set members to open them in the editor. You see that the extension recognizes files as COBOL based on the defined files.associations preferences. Based on those settings, the editor is now using COBOL syntax highlight and provides all the other language server features mentioned earlier. Making changes and saving writes back to the MVS data set member directly.
Before executing the
RUN.jcl
that contains the COMPILE, LINK, and RUN steps for the program, modify the data set names again by following these steps:Click
RUN.jcl
in the File view to open it in the editor.Perform the same modification to the
HLQ
symbolic, replacingTSOUSER
with the same value used previously.You might or might not need to modify the other symbolics depending on the compile and link libraries your host system uses.
You might or might not change the
SPACE1
andSPACE2
symbolics, and save the file.Submit the job with this Zowe CLI command:
zowe jobs submit local-file "JCL/RUN.jcl"
Verify the completion of the job with Zowe JES Explorer or using this Zowe CLI command:
zowe jobs ls js
A response showing your job ID is displayed.
Check the job status with this command, replacing the job ID with yours:
zowe jobs view jsbj JOB03772
Refresh the Remote Systems view to locate the data sets created by the
RUN.jcl
file.
If the job succeeded, you can examine the results directly from the data sets explorer. Click the
USER1.SAMPLE.CUSTOUT
andUSER1.SAMPLE.CUSTRPT
data set. They are opened in the editor as text files that you can inspect.You can use Zowe CLI commands to download the files as well. Get the contents of
SAMPLE.CUSTOUT
andSAMPLE.CUSTRPT
with the following commands using your user name:zowe files download ds "USER1.SAMPLE.CUSTOUT" zowe files download ds "USER1.SAMPLE.CUSTRPT"
These two downloaded files are now on the left in your editor and ready for review. You also can open these files directly from the Remote Systems explorer by double-clicking each file or dragging these files to the editor.
If you are exploring the REXX tutorial, you will notice a JCL called
REXALLOC.jcl
exists for allocating the necessary data sets to run the sample REXX program. There is not a JCL member to compile or run the REXX exec. After uploadingRSAM1
and the input data files to your TSO data set, you can run it by using the following Zowe CLI command:zowe tso issue command "exec 'user1.sample.rexx(rsam1)'" -a <ACCT#>
Note: If you create a TSO profile,
-a ACCT#
is not needed because it will be stored in that profile.While this REXX example is not interactive, it is possible to execute interactive REXX execs (and other commands) with the RSE CLI plug-in as demonstrated in Run interactive TSO commands.