CA Easytrieve: Example of CA Easytrieve calling Cobol
search cancel

CA Easytrieve: Example of CA Easytrieve calling Cobol

book

Article ID: 137146

calendar_today

Updated On:

Products

Easytrieve Report Generator

Issue/Introduction

Please provide an example of a CA Easytrieve program calling a COBOL program and the JCL involved.

Environment

Release : 11.6

Component : CA Easytrieve Plus Report Generator

Resolution

Sample COBOL program:
...
       ID DIVISION.
       PROGRAM-ID.    CBLTST6.
       ENVIRONMENT DIVISION.
       DATA DIVISION.
      *---------------------------------------------------------------
       WORKING-STORAGE SECTION.
      *--------------------------------------------------------------*
       01  WS-DATETIME.
           05  WS-DATE                    PIC 9(06).
           05  WS-TIME                    PIC 9(08).


      *--------------------------------------------------------------*
       LINKAGE SECTION.
      *--------------------------------------------------------------*
       PROCEDURE DIVISION.
      *--------------------------------------------------------------* 
       MAIN SECTION.
      *--------------------------------------------------------------*
           DISPLAY 'START CBLTST6'                   UPON SYSOUT


           ACCEPT WS-DATE FROM DATE
           ACCEPT WS-TIME FROM TIME


           DISPLAY 'DATE: ' WS-DATE                  UPON SYSOUT
           DISPLAY 'TIME: ' WS-TIME                  UPON SYSOUT


           DISPLAY 'END  CBLTST6'                    UPON SYSOUT
           GOBACK
           EXIT
... 
Sample JCL to compile the COBOL program:
...
//jobcard...
//*------------------------------------------------------------------*
//   SET COB#PGM='CBLTST6'
//   SET SRC#LIB='xxxx.COBOL.LIBRARY'
//   SET COB#LIB='xxxx.COBOL.V6R1M0.SIGYCOMP'
//   SET OBJ#LIB='xxxx.TEST.OBJ'
//   SET OUT#LIB='xxxx.COBOL.PDSE.LOAD'
//*------------------------------------------------------------------*
//SC#COBOL EXEC PGM=IGYCRCTL,
//         REGION=0M,
//  PARM=('OPT(0),MAP,TRUNC(BIN),LIST,NOOFF,NOMDECK,FLAG(W,E)')
//STEPLIB  DD DISP=SHR,DSN=&COB#LIB
//         DD DISP=SHR,DSN=CEE.SCEELKED
//         DD DISP=SHR,DSN=CEE.SCEERUN
//SYSIN    DD DISP=SHR,DSN=&SRC#LIB(&COB#PGM)
//SYSPRINT DD DSN=&COBOUT,DISP=(,PASS),UNIT=SYSDA,
//            DCB=BLKSIZE=133,SPACE=(4000,(990,2000))
//SYSLIN   DD DISP=SHR,DSN=&OBJ#LIB(&COB#PGM)
//SYSUT1   DD UNIT=SYSDA,SPACE=(4600,(350,800))
//SYSUT2   DD UNIT=SYSDA,SPACE=(4600,(350,800))
//SYSUT3   DD UNIT=SYSDA,SPACE=(4600,(350,800))
//SYSUT4   DD UNIT=SYSDA,SPACE=(4600,(350,800))
//SYSUT5   DD UNIT=SYSDA,SPACE=(4600,(350,800))
//SYSUT6   DD UNIT=SYSDA,SPACE=(4600,(350,800))
//SYSUT7   DD UNIT=SYSDA,SPACE=(4600,(350,800))
//SYSUT8   DD UNIT=SYSDA,SPACE=(4600,(350,800))
//SYSUT9   DD UNIT=SYSDA,SPACE=(4600,(350,800))
//SYSUT10  DD UNIT=SYSDA,SPACE=(4600,(350,800))
//SYSUT11  DD UNIT=SYSDA,SPACE=(4600,(350,800))
//SYSUT12  DD UNIT=SYSDA,SPACE=(4600,(350,800))
//SYSUT13  DD UNIT=SYSDA,SPACE=(4600,(350,800))
//SYSUT14  DD UNIT=SYSDA,SPACE=(4600,(350,800))
//SYSUT15  DD UNIT=SYSDA,SPACE=(4600,(350,800))
//SYSMDECK DD UNIT=SYSDA,SPACE=(4600,(350,800))
//*------------------------------------------------------------------*
//SC#LINK  EXEC PGM=IEWL,COND=(7,LT,SC#COBOL),
//            PARM=(MAP,LET,LIST,XREF)
//SYSLIB   DD DISP=SHR,DSN=&OUT#LIB
//         DD DISP=SHR,DSN=&COB#LIB
//         DD DISP=SHR,DSN=ISP.SISPLOAD
//         DD DISP=SHR,DSN=CEE.SCEELKED
//         DD DISP=SHR,DSN=CEE.SCEERUN
//SYSLMOD  DD DISP=SHR,DSN=&OUT#LIB(&COB#PGM)
//SYSUT1   DD UNIT=SYSDA,DCB=BLKSIZE=1024,SPACE=(10240,(200,700))
//SYSUT2   DD UNIT=SYSDA,DCB=BLKSIZE=1024,SPACE=(10240,(200,700))
//SYSPRINT DD SYSOUT=*
//SYSLIN   DD DISP=SHR,DSN=&OBJ#LIB(&COB#PGM)
...
JCL to compile and run the CA Easytrieve program:
...
//jobcard...
//   SET STEPLIB1='XXXX.EZTP.R116.CBAALOAD'
//   SET CAIMAC01='XXXX.EZTP.R116.CBAAMAC'
//   SET EZOPTBL1='XXXX.EZTP.R116.EZOPTBL'
//   SET SYSLMOD1='XXXX.TEST.LOAD'
//   SET STEPLIB2='XXXX.COBOL.PDSE.LOAD'
//   SET EZTPGMN='EB6CBL6'
//*------------------------------------------------------------------*
//COMPILE  EXEC  PGM=EZTPA00,COND=(4,LT)
//STEPLIB  DD  DISP=SHR,DSN=&STEPLIB1
//EZOPTBL  DD  DISP=SHR,DSN=&EZOPTBL1
//MACDD    DD  DISP=SHR,DSN=&CAIMAC01
//SYSPRINT DD  SYSOUT=*
//SYSOUT   DD  SYSOUT=*
//SYSLIN   DD  UNIT=SYSDA,SPACE=(400,(100,50)),DISP=(,PASS),
//             DSN=&&SYSLIN
//SYSIN    DD  *
PARM LINK (EB6CBL6 R) +
     DEBUG(FLOW PMAP DMAP STATE XREF LONG) ABEXIT NO SORT(MSG(ALL)) +
     LIST(FILE PARM) +
     ENVIRONMENT(COBOL)
*
JOB INPUT NULL
*
DISPLAY 'EZT+ --> BEFORE CALL CBLTST6'
CALL CBLTST6
DISPLAY 'EZT+ --> AFTER  CALL CBLTST6'
*
STOP
*
//*------------------------------------------------------------------*
//LINK     EXEC PGM=IEWL,PARM='LET,LIST,RENT,MAP',COND=(4,LT)
//SYSLIB   DD  DISP=SHR,DSN=&STEPLIB1
//SYSLIN   DD  DSN=&&SYSLIN,DISP=(OLD,DELETE)
//         DD  DDNAME=SYSIN
//SYSUT1   DD  UNIT=SYSDA,SPACE=(CYL,(1,5))
//SYSPRINT DD  SYSOUT=*
//SYSLMOD  DD  DISP=SHR,DSN=&SYSLMOD1
//*------------------------------------------------------------------*
//EZTPGM   EXEC PGM=&EZTPGMN,COND=(4,LT)
//STEPLIB  DD  DISP=SHR,DSN=&STEPLIB1
//         DD  DISP=SHR,DSN=&STEPLIB2
//         DD  DISP=SHR,DSN=&SYSLMOD1
//EZOPTBL  DD  DISP=SHR,DSN=&EZOPTBL1
//SYSPRINT DD  SYSOUT=*
//SYSOUT   DD  SYSOUT=*
//EZTVFM   DD  UNIT=SYSDA,SPACE=(CYL,(3,1))
//SYSWK01  DD  UNIT=SYSDA,SPACE=(CYL,(3,1))