The Application Cross Reference produces up to 9 separate reports detailing the use of various entity types within an ADS application or grouping of dialogs. Each report line lists the entity name & version, owning dialog name & version, referencing process name & version, process text sequence, and the active verb. For entities referenced within maps (such as elements, tables, and messages), the reports list the map data field name in lieu of the process name.
Any of the reports may be suppressed by using OPTIONS statements, as detailed below.
Four types of input statements may be specified.
A Dictionary Definition statement is required only if you are executing against a secondary dictionary (i.e. one which requires DBNAME table translation).
DICTNAME=dictname [,NODE=nodename]
dictname specifies the DBNAME of the IDD. It is used as part of the BIND RUN UNIT
in the extract program.
nodename specifies the node for DDS sites.
Variable Name statements define the names of data fields used in process code to hold a dictionary message ID (for a DISPLAY MSG CODE command), a message prefix, or a dialog name (for an inter-dialog control command). When the AXU is parsing process code, it will save any values moved to these fields and process them in the appropriate manner. A maximum of 3 of each type of statement may be specified.
MSGFIELD=data-name
any 6 position numeric (literal or constant) or 8 position quoted literal (including
prefix) which is MOVEd to data-name will be treated as a dictionary message ID. Note that
CA applications standardly issue messages in this manner.
MPRFIELD=data-name
any literal which is MOVEd to data-name will be used as the prefix for all 6
position dictionary message IDs captured due to a MSGFIELD specification. This prefix
will be used until the end of the process in which it appears or until it is superceded.
If MPRFIELD is not specified, the dialog default message prefix will be used.
IDCFIELD=data-name
any literal which is MOVEd to data-name will be treated as an called dialog. The
Called Dialog Report will display MOVE as its verb.
Options statements may be used to suppress the generation of specified report(s). If no options are specified, all reports will be generated.
Multiple Options statements may be specified in one input record. Simply separate each option with a comma. See the input example in this chapter for a better understanding.
OPTIONS= DIALOGS=BYP
MODULES=BYP
RECORDS=BYP
ELEMENTS=BYP
SETAREA=BYP
MESSAGES=BYP
SUBROUTINES=BYP
TABLES=BYP
DIALOGS specifies to bypass generation of the Called Dialog Cross Reference
and the Calling Dialog Cross Reference.
MODULES specifies to bypass generation of the Module Cross Reference.
RECORDS specifies to bypass generation of the Record Cross Reference.
ELEMENTS specifies to bypass generation of the Element Cross Reference.
SETAREA specifies to bypass generation of the Set/Area Cross Reference.
MESSAGES specifies to bypass generation of the Message Cross Reference.
SUBROUTINES specifies to bypass generation of the Subroutine Cross Reference.
TABLES specifies to bypass generation of the Table Cross Reference.
The various selection statements are:
ADSA=name [,VERSION=version-n] Specifies the ADSA application name to be selected. All dialogs and programs that are defined to the application will be cross referenced. Entities used by subroutine dialogs and programs which are called within the application, but are not defined to the application, will not be included in the reports. To include these dialogs and programs, use some combination of DIALOG/DMASK statements. If VERSION= is specified, then the specified version of the application and of each dialog and program will be selected, if that version exists. If the specified version does not exist, version 1 will be selected. This fully mimics the rules in effect during DCUF TEST. DIALOG=name [,VERSION=version-n] The specified DIALOG will be cross referenced. If VERSION is not specified, it defaults to 1. DMASK=mask [,VERSION=version-n/ALL] All DIALOGS which match the mask (character by character, left to right) will be cross referenced. An asterisk (*) may be used in the mask to match any character. If VERSION is omitted, it defaults to 1. VERSION=ALL may be specified to cross reference all versions of any dialogs which match the mask.
DICTNAME=TEST OPTIONS=DIALOGS=BYP,MODULES=BYP,ELEMENTS=BYP,MESSAGES=BYP OPTIONS=SUBROUTINES=BYP,TABLES=BYP ADSA=APPL2 DMASK=APPL2S** In this example, we are cross referencing ADSA application APPL2 (version 1) which resides in a secondary dictionary (TEST). Within this application, dialogs link to a few subroutine dialogs (whose names begin APPL2S) which are not defined to the ADSA application. Our project involves changes to database records and sets. We, therefore, only need to use the Record Cross Reference and Set/Area Cross Reference and are suppressing all other reports. MSGFIELD=MSG-PASS-FIELD IDCFIELD=DIAL-PASS-FIELD DMASK=* In this example, we are cross referencing all dialogs in our default dictionary. Any message IDs which are placed in the field MSG-PASS-FIELD will appear in the Message Cross Reference. Any literals which are MOVEd to DIAL-PASS-FIELD will appear in the Called Dialog Cross Reference.
//jobname JOB site parameters //step1 EXEC PGM=LADAXU25 //STEPLIB DD DSN=loadlib,DISP=SHR // DD DSN=idmsload,DISP=SHR //ddldml DD DSN=ddldml,DISP=SHR //ddldclod DD DSN=ddldclod,DISP=SHR //sysjrnl DD DUMMY //EXTRACT DD DSN=extract,DISP=(,PASS),UNIT=unit, // SPACE=(CYl,(5,5),RLSE),DCB=(RECFM=FB,LRECL=200,BLKSIZE=blksz) //SYSLST DD SYSOUT=sysout class //CARDIN DD * input statements here /* //step2 EXEC standard site sort include standard site SORT JCL //SORTIN DD DSN=extract,DISP=(OLD,DELETE) //SORTOUT DD DSN=sorted,DISP=(,PASS),UNIT=unit, // SPACE=(CYL,(5,5),RLSE),DCB=(RECFM=FB,LRECL=200,BLKSIZE=blksz) //SYSIN DD * SORT FIELDS=(126,3,A,1,39,A,79,39,A,40,39,A,132,5,A),FORMAT=BI /* //step3 EXEC PGM=LADAXU26 //STEPLIB DD DSN=loadlib,DISP=SHR //EXTRACT DD DSN=sorted,DISP=(OLD,PASS) //SYSLST DD SYSOUT=sysout class /* Execute the following 2 steps only if you wish to generate the Calling Dialog Cross Reference //step4 EXEC standard site sort include standard site SORT JCL //SORTIN DD DSN=sorted,DISP=(OLD,DELETE) //SORTOUT DD DSN=sort2,DISP=(,PASS),UNIT=unit, // SPACE=(CYL,(5,5),RLSE),DCB=(RECFM=FB,LRECL=200,BLKSIZE=blksz) //SYSIN DD * SORT FIELDS=(79,39,A,1,78,A),FORMAT=BI /* //step5 EXEC PGM=LADAXU27 //STEPLIB DD DSN=loadlib,DISP=SHR //EXTRACT DD DSN=sort2,DISP=(OLD,DELETE) //SYSLST DD SYSOUT=sysout class /* //
* $$ JOB JNM=jobname,site parameters
// JOB site parameters
* step 1 - LADAXU25, Place LIBDEFS here
// UPSI 0
// ASSGN SYS005,SYSLST
// ASSGN SYS006,SYSRDR
// ASSGN SYS030,DISK,VOL=volume,SHR
// DLBL EXTRACT,'extract',0
// EXTENT SYS030,volume,,,space allow 5 or 10 cylinders
JCL for the DDLDML and DDLDCLOD areas of the IDD
IGNORE for sysjrnl
// EXEC LADAXU25,SIZE=640K
/*
* step 2 - SORT 'extract'
Execute your standard site SORT using 'extract' as SORTIN and SORTOUT
SORT FIELDS=(126,3,BI,A,1,39,BI,A,79,39,BI,A,40,39,BI,A,132,5,BI,A), X
WORK=1
RECORD TYPE=F,LENGTH=(200)
INPFIL BLKSIZE=3000
OUTFIL BLKSIZE=3000
END
/*
* step 3 - LADAXU26, Place LIBDEFS here
// ASSGN SYS005,SYSLST
// ASSGN SYS030,DISK,VOL=volume,SHR
// DLBL EXTRACT,'extract',0
// EXTENT SYS030,volume,,,space
// EXEC LADAXU26,SIZE=640K
/*
Execute the following 2 steps only if you wish to generate the Calling Dialog Cross Reference
* step 4 - SORT 'extract'
Execute your standard site SORT using 'extract' as SORTIN and SORTOUT
SORT FIELDS=(79,39,BI,A,1,78,BI,A),WORK=1
RECORD TYPE=F,LENGTH=(200)
INPFIL BLKSIZE=3000
OUTFIL BLKSIZE=3000
END
/*
* step 5 - LADAXU27, Place LIBDEFS here
// ASSGN SYS005,SYSLST
// ASSGN SYS030,DISK,VOL=volume,SHR
// DLBL EXTRACT,'extract',0
// EXTENT SYS030,volume,,,space
// EXEC LADAXU27,SIZE=640K
/*
/&
* $$ EOJ