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.
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.
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.
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.
// 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 /&