Note: You can only compile one program per compile step in order to
name the compiler listing PDS(E) member (if using a partitioned data set), and to ensure that only
one compiler listing is written to the output file. Nested COBOL programs are not
supported.
Executes IPVLANGX to process the listing and store it as a side file where the ADFz products can
access it. (For return codes issued by IPVLANGX, see IPVLANGX return codes.)
Writes the listing as part of the job output.
Figure 1. Sample JCL to compile a COBOL program and store the side file
//IPVSCMPS JOB (GSF),'GENERATE.SIDE.FILE',NOTIFY=&SYSUID.,
// MSGCLASS=X,CLASS=A,MSGLEVEL=(1,1)
// JCLLIB ORDER=(IGY.V2R1M0.SIGYPROC) <== INSTALLATION
//* IGYWCLG PROC
//*
//************************************************************/
//* THIS JOB RUNS A COBOL COMPILE PLUS PRODUCES A SIDE FILE */
//* FROM A PROGRAM LISTING THAT THE ADFz PRODUCTS CAN */
//* USE FOR OBTAINING SOURCE INFORMATION. */
//* THE COMPILE OUTPUT IS THEN WRITTEN TO SYSUT2 IN THE */
//* IEBGENER STEP. */
//************************************************************/
//*
//CBLRUN EXEC IGYWC,PARM.COBOL='LIST,MAP,Source,XREF'
//COBOL.SYSIN DD DATA,DLM='##'
⋮
(Program source not shown)
⋮
##
//COBOL.SYSPRINT DD DSN=&&COBLIST(IPVSCBL1),
// DISP=(,PASS),SPACE=(TRK,(10,5,5),RLSE),
// DCB=(RECFM=FBA,LRECL=133,BLKSIZE=0)
//*
//IPVLANGX EXEC PGM=IPVLANGX,REGION=4096K,
// PARM='IDISCBL1 (COBOL ERROR'
//LISTING DD DISP=(OLD,PASS),DSN=&&COBLIST ❶
//IDILANGX DD DISP=SHR,DSN=IPV.IPVLANGX ❷
//SYSUDUMP DD SYSOUT=*
//*
//IEBGENER EXEC PGM=IEBGENER,REGION=4096K
//SYSUT1 DD DISP=OLD,DSN=&&COBLIST(IPVSCBL1)
//SYSUT2 DD SYSOUT=*
//SYSPRINT DD SYSOUT=*
//SYSIN DD *
/*
After you have created and stored a side file, there is no benefit
to ADFz products in retaining the listing.
If you already have listings, you can turn them into side files. Here is sample JCL to do this
conversion (it is provided as member IPVSFILE in the IPV.SIPVSAM1 data set):
Figure 2. Sample JCL to create a side file from a COBOL listing
//IPVLANGX JOB (C97),'IPVLANGX',MSGCLASS=X,
// CLASS=A,NOTIFY=&SYSUID
//*************************************************************
//* This job produces a side file from a program listing that
//* the ADFz products can use for obtaining source information.
//* This particular example is set up for a COBOL extraction
//* from IPV.LISTING.COBOL(COBOLA) to IPV.IPVLANGX
//*************************************************************
//IPVLANGX EXEC PGM=IPVLANGX,REGION=4096K,
// PARM='COBOLA (COBOL ERROR'
//LISTING DD DISP=SHR,DSN=IDI.LISTING.COBOL ❶
//IDILANGX DD DISP=SHR,DSN=IDI.IPVLANGX ❷
//SYSUDUMP DD SYSOUT=*
Notes:
❶
DDname must be LISTING for all types of compiler listings, or SYSADATA for an assembler ADATA
file.
❷
DDname must be IDILANGX for the output LANGX side file. The data set must be sequential or
PDS(E), RECFM=VB, LRECL≥1562.
Refer to the documentation for the individual ADFz products for
information about how to provide the LANGX side file for processing.
A compiler listing is the only data format that IPVLANGX accepts
as input, with the exception of SYSADATA for assembler.