ADSO XREF Utility User's Guide
Copyright © 1985-2017 Laderman Associates


Application Cross Reference

    Overview
    Input Statement Types
    Input Syntax Conventions
    Dictionary Definition Statement
    Variable Name Statements
    Options Statements
    Selection Statements
    Input Examples
    OS Execution JCL
    DOS Execution JCL

Overview

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.

Input Statement Types

Four types of input statements may be specified.

Input Syntax Conventions

If DICTNAME is specified, it must be first in the input stream (as the BIND RUN UNIT is executed after reading the first record). Selection statements should follow all other types of input statements. At least one Selection statement is required. Other than that, any combination of input statements, in any order, is permitted. All input begins in position 1 of the input record. Parameters are separated by commas; any specifications following the first blank are ignored. There are no continuations; use multiple input statements if necessary.

Dictionary Definition Statement

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

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

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.

Selection Statements

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.

Input Examples


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.

OS Execution JCL


//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
/*
//

DOS Execution JCL

* $$ 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