Translating your COBOL program

Before you translate your program, include the QMF edit exit interface control block, DXEECSC.C, in the LIBDEF statement. DXEECSC.C is located in the sublibrary where QMF is installed.

Translate your program using the CICS translator for COBOL. When you translate your program, CICS normally supplies the standard procedure and linkage sections. Replace the standard CICS communications area DFHCOMMAREA by providing a structure as specified in the previous linkage section example.

Compiling

Specify COBOL compiler options RENT, RES, and NODYNAM, and run time options NOSTAE and NORTEREUS.

QMF distributes the user edit routine control block DXEECSC.C, using quotes as literal delimiters. You must use the QUOTE compiler option if you use the DXEECSC control block as distributed by IBM.

Link-editing

You create a new QMF edit exit module DSQUECIC by including your edit exit program with the EXEC CICS interface control module DFHECI, located in the CICS module library, as distributed by the CICS product. DFHECI must be the first module in the edit exit module and the entry point must be module DSQUECIC. DSQUECIC must be executable in 31-bit addressing mode.

Example JCL statements for translating, compiling, and link-editing on VSE

Figure 179 shows the sample job DSQ3XCTC.Z, which is shipped with QMF. This job translates, compiles, and link-edits the example COBOL program (DSQUXCTC.Z), which is also shipped with QMF. Use the sample job as a starting point to create JCL that translates, assembles, and link-edits your own edit exit routine.

Ignore weak external references unresolved by the linkage editor, and also the associated messages about unresolved address constants. For more information on installing a program in CICS, see CICS System Definition Guide.

Figure 179. Example JCL for translating, compiling, and link-editing a COBOL routine
// JOB DSQ3XCTC  Install QMF Edit Exit for COBOL
* ---------------------------------------------------------------------
* Install QMF edit exit (COBOL Version)
* ---------------------------------------------------------------------
// SETPARM VOLID=volid         *-- update volid for syspch
// SETPARM START=rtrk          *-- update start track/block
// SETPARM SIZE=ntrks          *-- update number of tracks/blocks
* ---------------------------------------------------------------------
// DLBL   IJSYSPH,'CICS.TRANSLAT.OUTPUT',0
// EXTENT SYSPCH,,1,0,&STARTL,&SIZE. 
ASSGN SYSPCH,DISK,VOL=&VOLID.,SHR 
*  Library search chain must contain the QMF, CICS and COBOL sublibraries
// LIBDEF *,SEARCH=(PRD2.PROD,PRD1.BASE,PRD2.CONFIG) 
// LIBDEF PHASE,CATALOG=PRD2.PROD 
* ---------------------------------------------------------------------
* Step 1: Translate user edit exit program
*----------------------------------------------------------------------
// EXEC   DFHECP1$,SIZE=256K,PARM='XOPTS(CICS,QUOTE)'
  :
 COBOL source program here
  :
/*
*----------------------------------------------------------------------
* Step 2: Compile  translated user edit exit program
*----------------------------------------------------------------------
CLOSE SYSPCH,00D
// DLBL   IJSYSIN,'CICS.RANSLAT.OUTPUT',0
// EXTENT SYSIPT
ASSIGN SYSIPT,DISK,VOL=&VOLID.,SHR
// OPTION CATAL
   PHASE DSQUECIC,*,SVA
         INCLUDE DFHEC1
// EXEC IGYCRCTL,PARM='SZ(MAX),OBJECT,MAP,RES,NODYNAM,QUOTE,LIB,RENT
CLOSE SYSIPT,SYSRDR
/*
*----------------------------------------------------------------------
* Step 3: Link-edit user edit exit program
*----------------------------------------------------------------------
// EXEC LNKEDT,PARM='AMODE=31,RMODE=31'
/*
/&
// JOB  RESET
ASSGN SYSIPT,SYSRDR   IF 1A93D, CLOSE SYSIPT,SYSRDR
ASSGN SYSPCH,00D      IF 1A93D, CLOSE SYSPCH,00D
/&
[ Previous Page | Next Page | Contents | Index ]