How do you submit JCL via a Cobol program?
Answers were Sorted based on User's Feedback
Answer / abhinandan
Below is explanation with example:-
THE BELOW GIVEN IS AN EXAMPLE OF HOW TO SUBMIT A JCL FROM A
COBOL PGM:
============================================================
============
COBOL CODE WHICH HAS THE JCL STATEMENTS:
=========================================
IDENTIFICATION DIVISION.
PROGRAM-ID. PROG55.
ENVIRONMENT DIVISION.
INPUT-OUTPUT SECTION.
FILE-CONTROL.
SELECT IN-FILE ASSIGN DDFILE1
ORGANIZATION IS SEQUENTIAL
FILE STATUS IS IN-STATUS.
DATA DIVISION.
FILE SECTION.
FD IN-FILE.
01 IN-REC PIC X(80).
WORKING-STORAGE SECTION.
01 IN-STATUS PIC X(2).
PROCEDURE DIVISION.
OPEN OUTPUT IN-FILE.
DISPLAY IN-STATUS.
MOVE '//SORT002 JOB MSGCLASS=X,CLASS=T,' TO IN-
REC.
WRITE IN-REC.
MOVE '// MSGLEVEL=(1,1),NOTIFY=XXXXX'
TO IN-
REC.
WRITE IN-REC.
MOVE '//STEPDEF EXEC PGM=IEFBR14' TO IN-
REC.
WRITE IN-REC.
MOVE '//DATA1 DD DSN=TNL.PV.INTRDR.SAMF,DISP=
(NEW,CATLG),'
TO IN-
REC.
WRITE IN-REC.
MOVE '// LRECL=80' TO IN-
REC
WRITE IN-REC.
DISPLAY IN-STATUS.
CLOSE IN-FILE.
STOP RUN.
THIS IS THE JCL TO RUN THE ABOVE COBOL PGM 'PROG55' FROM
ENDEVOR LIBRARY.
Note: '//DDFILE1 DD SYSOUT=(*,INTRDR)' USED BELOW.
ALSO THE DDFILE1 IS USED AS THE DD NAME IN THE ABOVE COBOL
PGM
============================================================
===============
EDIT ,xxxxx.GENERAL.JCL(INTR1) - 01.03
******,***************************** Top of Data
******************************
000001,//XXXXX98 JOB CLASS=A,
000002,// MSGCLASS=X,TIME=NOLIMIT,
000003,// NOTIFY=&SYSUID,
000004,// MSGLEVEL=(1,1)
000005,//STEP0010 EXEC PGM=PROG55
000006,//DDFILE1 DD SYSOUT=(*,INTRDR)
000007,//SYSPRINT DD SYSOUT=*
000008,//SYSUDUMP DD SYSOUT=*
000009,//STEPLIB DD DSN=PMI.CR.SUPT.LOADLIB,DISP=SHR
000010,//SYSIN DD DUMMY
******,**************************** Bottom of Data
****************************
THIS IS THE JOB THAT IS CREATED & SUBMITTED BY THE COBOL
PGM:
============================================================
===
SYSVIEW ISPF1 RCEM --------------,Job Queues,-------
26Jan08 11:08:50
,* ,ALL, ,ALL ,ALL ,
Cmd Jobname Type Jobnr Queue Stat|
CCode
,SORT002 JOB 93409 OUTP
HLDC,..................... 0,
********************************* End of Data
*********************************
THIS NEW JCL CONTAINS THE BELOW GIVEN JCL STATEMENTS:
======================================================
******,***************************** Top of Data
******************************
000001,//SORT002 JOB MSGCLASS=X,CLASS=T,
000002,// MSGLEVEL=(1,1),NOTIFY=XXXXX
000003,//* $ACFJ219 ACF2 ACTIVE RCEMP1
000004,//STEPDEF EXEC PGM=IEFBR14
000005,//DATA1 DD DSN=TNL.PV.INTRDR.SAMF,DISP=(NEW,CATLG),
000006,// LRECL=80
******,**************************** Bottom of Data
****************************
| Is This Answer Correct ? | 18 Yes | 3 No |
Answer / guest
In your JCL define as //JOBA JOB 1111, JOB1 //STEP01 EXEC
PGM=PROG1 //ddname DD SYSOUT=(*,INTRDR)....and your
COBOL(PROG should look like this SELECT JCL-FILE ASSIGN TO
ddname. Open this file and write the JCL statements into
this file. E.g. MOVE '//TESTJOB JOB 1111,VISVEISH' TO
JCL-REC.MOVE '//STEP01 EXEC PGM=IEFBR14' TO JCL- REC and
close this file. Then TESTJOB will be submitted.
| Is This Answer Correct ? | 14 Yes | 0 No |
delete rules in db2
In a JCL if previous steps return code is greater than 0 or 4 then the next step will not execute. But the job will be successfull with the maximum return code. How can we reset this maximum return code to '0' regardless of return codes of any steps?
What type of versions we r using in mainframe (jcl, cobol, db2, vsam, cics)?
List in order the hierarchical levels of jcl?
What is the meaning of data definition name (ddname) and dataset name (dsname) in the DD statement?
How to execute step2,step1, step3 if step1,2,3 are in order
I have 20 steps in a job... step01, 02....step17...step20. For some reason I want to execute step17 only if the return code for all the previous steps are less than or equal to 4. otherwise if return code for any of the previous 16 steps is greater than 4, then step17 should be bypassed. How do I do that ?? how and in which step should i formulate COND parameter
I have a PDS and want to omit few rows of all members of a PDS. How to do it?
Can we use two or more SYSPUNCH DD statements in a JCL for multiple unload (SYSREC00 & SYSREC01)..?
how to put a dependency on job in jcl using opc scheduler?
In My job I have 15 procs.and in each proc i have 3 steps. i want to execute 3 step in proc 10.is it possible? if possible how?
Can we give two user name in NOTIFY parameter in JOBCARD