The rules language used by the products has a very large number of symbolic fields available. Trying to determine which symbolic names are available in a rules environment depends on the product and the execution environment.
The DIFSYMBL utility was created for the support staff to help determine when specific symbolic names are available in the rules. The utility is a CALLEXIT routine that can be added to the rules language. Each time the DIFSYMBL exit is called, approximately 2500 output cards are written to the JES message log (batch) or back to a TSO session.
Activate the Exit - To use the DIFSYMBL utility, first activate the exit with the following DIF console command:
F DIF,ENABLE EXIT DIF DIFSYMBL
Change the product rules to call the exit. Since DIFSYMBL outputs a relatively large number of records, It is recommended to limit the use of the utility to a specific test condition. For example, the following rule limits the trace to a selected userid and job name, and a single DDname. Note: Remember to issue a DIF REFRESH command for the product after adding the CALLEXIT to the rules.
DEFRULE RULE01 CONTINUE(NEXTRULE) IF JOBNAME = (FRED,FREDR)
DDNAME = TESTDMP CALLEXIT(DIFSYMBL)
Batch Test - Run a test job to output the symbolic field
information. Note: The reserved “message DD” for the product must be
include for message output to be written to the JES message log. The
PTLMSG DD can be used for ACC/SRS testing.
//FREDR JOB
//STEP01 EXEC PGM=PTLIVP,ALTDATE=2015.030,ALTTIME=14.00
//STEPLIB DD DISP=SHR,DSN=DTS.PTLR71.SLyyddd.INSTLIB
//TESTDMP DD DISP=(NEW,PASS),SPACE=(TRK,(1)),UNIT=SYSALLDA
//SYSPRINT DD SYSOUT=*
//PTLMSG DD DUMMY
Analyze Output - DIFSYMBL was originally designed for use by
support. The first section displays many of the control block address that
the symbolic fields access for information. If a control block has an
address of zero, then the symbolic fields associated with the control
block will not be available. The second section lists the symbolic field
values available at the time the exit is called. The last section displays
all the symbolic fields available to a product and which control blocks
are used to obtain the information. If the control block is preceded by an
asterisk(*), the control block address is available and the symbolic name
can be used in the rules. For additional questions about the utility,
please contact customer support.