How to execute a set of JCL statements from a COBOL program ?
Answer Posted / pradeep
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 ,Columns,00001,00072,
Command
===>, ,Scroll
===>,CSR ,
******,***************************** 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
Command,====>,
,Scroll,*===>,PAGE
------------------------------------------ Lvl 1 Row 1-2/2
Col 1-36&424-466/525
Total Lines, 60 ,Total Pages,0,
------------------------------------------------------------
-------------------
,* ,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:
======================================================
EDIT ,SORT002_J0093409_JCL ,C
olumns,00001,00072,
Command
===>, ,Scroll
===>,CSR ,
******,***************************** 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 ? | 5 Yes | 0 No |
Post New Answer View All Answers
Mainframes gets a text file that contains the name of the file. Now using JCL i want to locate that file name in the mainframe system and perform further processing. Please tell how to proceed
What is the use of symbol // in jcl?
what are the types of abends that occur on job failure? And explain the possible causes of these
How to resolve the error "WER488A JOIN CAPACITY EXCEEDED" I am using SYNCSORT with JOINKEYS to compare 2 files. I am Getting error - > WER488A JOIN CAPACITY EXCEEDED There are 2 files to be compared with about 2 million records each. LRECL is 3665. Can somebody give a pointer as to how to resolve this problem? I am using SYNCSORT with JOINKEYS to compare 2 files. I am Getting error - > WER488A JOIN CAPACITY EXCEEDED There are 2 files to be compared with about 2 million records each. LRECL is 3665. Can somebody give a pointer as to how to resolve this problem?
which parameter is use to declare the name of dataset in dd statement?
in order to execute step2 a job after a return code of 8 in step1, what condition you will code in step2?
What is the use of disp parameter?
What is the motivation behind coding class parameter in job statement?
what is the use of IEBGENER utility?
what is use of dcb parameter in dd statement?
I want to join to input files and write the matching fields on to an output file but i dont want the output file a sorted one
what is the use of JCL?
whats the diff bw the evaluate also and and?
how can the same proc be re-used and called by many jobs?
I have a job called careerride and some steps in it as step1,step2. But I want to execute step2 before step1 ? How do I do that?