Previous Topic: The $VERBTBL MacroNext Topic: The SUBCHEK Feature


The $VTB Macro

This macro defines valid values for a parameter. The value table controls the validation of the parameter's operand, indicates whether CA JCLCheck should save the operand, and indicates whether an exit routine exists for the parameter.

label    $VTB     -LEN=(0,72)|(min-length,max-length)-
                   -EXIT=exit-routine name-
                   -SAVE=buffer-name-|-XSAVE=buffer-name-
                   -KTB=(*|ktb-name-,MASKED-)-
                   [VAL=ALPHA|ALPH1|NUM]
                   [SPEC=SLASH|DOT|HYPH]
                   [BREF=NO|YES]
                   [QUOTE=NO|YES]
                   -RANGE=(min-value,max-value)-
                   [LOAD=NO|YES]
                   [OPTEXIT=NO|YES]
                   [FULWD=NO|YES]
                   -CAEXIT=name
label

Defines a value table name $J6PCB macros reference.

LEN

Specifies the minimum and maximum lengths of the operand, in bytes.

EXIT

Specifies the name of a routine to invoke after CA JCLCheck validates the operand.

You must specify the name of an external symbol.

SAVE

Specifies saving the JCL parameter's value and names the field in the XJB where CA JCLCheck should store the operand.

If you specify VAL=NUM, CA JCLCheck saves the operand in halfword binary; otherwise CA JCLCheck saves the operand exactly as it is coded on the JCL statement (excluding quotation marks), padded to its maximum length with spaces. Saving of operand values occurs prior to invoking an exit routine, so that the exit can refer to the operand in the XJB field (that is, $JCLXJB TYPE=ALL). Do not use the SAVE parameter in combination with the XSAVE parameter.

XSAVE

Works like the SAVE parameter.

Use this parameter to save the value of specific parameters in the extended global or main global. Do not use the XSAVE parameter in combination with the VAL=NUM or SAVE parameters.

VAL

Prompts CA JCLCheck validation on the following operands:

ALPHA

Specifies the operand must be alphanumeric.

ALPH1

Specifies the operand must be alphanumeric and first character cannot be a digit.

NUM

Specifies the operand must be numeric.

KTB

Allows keyword value operands and names the keyword table defining all valid values.

If you specify KTB=*, CA JCLCheck uses a modified keyword table. Its $KTB macro must immediately follow this $VTB macro. CA JCLCheck ignores all operands on its $J6PCB macros other than NAME, resulting in a much shorter table. If you code a VAL parameter, the KTB=* is inoperative.

If you specify MASKED as the second operand, CA JCLCheck treats the values in the keyword table as masks for a programmed comparison. Characters within a mask have the following significances:

.

Matches any character

#

Matches any digit or trailing blank

+

Matches any nonzero digit

@

Matches any alphanumeric character

Use the RANGE parameter when you want CA JCLCheck to perform a range check on the digits extracted with # and + masks.

SPEC

Allows an alphanumeric operand that can contain specific special characters:

SLASH

Specifies the operand can contain slashes (/).

HYPH

Specifies the operand can contain hyphens (-).

DOT

Specifies the operand can contain periods (.).

BREF

Specifies to allow a backward reference operand (for example, *.step.ddname)

QUOTE

Allows you to enclose the operand in quotes.

If you specify QUOTE=YES and the operand is enclosed in quoted, CA JCLCheck bypasses alphanumeric validation.

RANGE

Specifies the permissible range of values for a parameter validated as numeric.

LOAD

YES loads the exit at runtime. NO links the exit with CA JCLCheck.

Default: NO

OPTEXIT

If this is set to Y, and the linkage editor does not find the EXIT parameter, no error will occur.

FULWD

VAL-NUM with SAVE=NAME and FULWD=YES saves the operand in a fullword binary; otherwise CA JCLCheck saves in a halfword.

CAEXIT

Refers to a supplied CA JCLCheck parameter exit.

This parameter changes the way you would code a user parameter exit that is defined by the EXIT parameter. If the $VTB macro already contains a CAEXIT and you want your own exit, you must specify both EXIT and CAEXIT and use the LOAD=YES parameter.

In the user parameter exit, upon return you need to use the $JCLPRTN macro and code the parameter NOCAEXIT. The JOBACTG and EXECACTG CSECTs define the syntax of the JOB statement accounting fields and the EXEC statement ACCT parameter, respectively. The CA JCLCheck tables accept any syntactically legal value for these parameters. The CA JCLCheck default JOBACTG CSECT is:

JOBACTG  CSECT
         $PTB   LAST=(ACCOUNT,REUSE)
         $J6PCB   NAME=ACCOUNT,VTB=JACCT

JACCT    $VTB   LEN=(0,140),QUOTE=YES,SPEC=HYPH

The CA JCLCheck default EXECACTG CSECT is almost identical to the preceding one.