The Job/Step Completion Status Facility (JSCSF) enables users to define common rules for analyzing job results that determine whether jobs ended OK or NOTOK. The rules are defined in the PGMST member located in the CTM.PARM library. In additional to the Step and Procedure Step Names, the Program Names can also be defined under the Job Step criteria in the PGMST member.
The JSCSF rules are logically added to the 'DO OK' / 'DO NOTOK' actions of the ON PGMST statements specified in the Control-M Job Scheduling Definitions. The general rules in the JSCSF might override the more specific rules defined in the ON PGMST statements or might be overridden by them, depending on the JSCSF definitions in the PGMST member.
The lines starting with ‘/*’ (slash and asterisk) are comment lines.
The data must be defined in Columns 1 – 72 of the member.
Valid CODE values are: Cxxxx = Completion Code, Uxxxx = User ABEND, Sxxx = System ABEND, Nyxxxx = NOT some code (where y can be C, U, or S).
The following wild characters are supported: ‘*’ matches any string; ‘?’ matches any character. The wild characters are not supported in the STATUS (OK/NOTOK) position. The codes used in defining ranges or greater or less than relationships cannot contain wild characters (‘*’, ‘?’).
The codes and code ranges defined in PGMST are processed with ‘OR’ relationships. The only exception is the Nyxxxx definition, which must match the event (AND relationship). It is similar to the logic of ON PGMST in Control-M Schedule Definition.
Unlike ON PGMST statements, a Nyxxxx definition can be the only code in the record and its matching is enough for a matching of the condition (in ON PGMST statements, a Step Code must also match any other Code defined without ‘NOT’ relationship). See the example in the Program Name CTRCTR record.
Continuation record(s) can be defined (see the MANYCODE line in the example above). Only CODE VALUES can be defined in the continuation record.
Codes ranges and more or less relationships can be defined for Completion Codes (Cxxxx) and User Abends (Uxxxx), but not for System Abends (Sxxx), since the number suffixes in the System Abends do not indicate priority (for example, S0C4 is not "more than" S0C1).
The first entry in the table which matches all the job step criteria (Member Name, Job Name, Step Name, Procstep Name, Program Name) is processed. If CODES match as well, the corresponding rule would be implemented. If the CODE does not match (but all the criteria mentioned before do match), the rule is not implemented and no more PGMST records are checked for the step. Therefore, ensure that the entries which are more specific are listed first and the more global entries are listed last.
If any of the PGMST member definitions matches all the job step criteria for some step of the job (Member Name, Job Name, Step Name, Procstep Name, Program Name) the Job Return Code (JOBRC) extracted by Control-M for z/OS (and, if defined, the corresponding ON PGMST +JOBRC statement) will be ignored in evaluating whether a job ended OK or NOT OK.
The OVER JDEF value defines which definition takes precedence in the case of a conflict. A value of N for OVER JDEF indicates that the local ON PGMST definitions in the Job Schedule Definition take precedence over the common (global) rules defined in the corresponding record in this member. A value of Y for OVER JDEF indicates that the common (global) rules defined in the corresponding record in this member take precedence over the local ON PGMST definitions in the Job Schedule Definition.
To define exclusion criteria, you can add the ^ (Hex 5F) or \ (Hex E0) character as the first character in any of the following criteria: MEMBER NAME, JOB NAME, STEP NAME, PROCSTEP NAME, or PROGRAM NAME. The criteria is matched when the actual item is different from the one that you defined. In the example above, Completion Code C0004 is defined as NOTOK for all programs except IDCAMS (third line from the end).
In the STATUS (OK/NOTOK) position, as an alternative to the OK and NOTOK values, you can define a special (logical) Code value. Such a special Code value must begin with an asterisk character *, followed by 1 to 4 characters, where the first character after the asterisk is an alphabetical character. This special Code value can be used in the CODES of ON PGMST statements in the same way as Cxxxx, Sxxx, or Uxxxx Codes. In the example above, the last two lines define a Logical Code for when program ASMA90 ends with errors (RC>4), and another Logical Code for when program ASMA90 ends with warnings (RC=4).
The NEWPARM operator Modify command for Control-M Monitor can dynamically reload the PGMST member (in additional to reloading the CTMPARM, CTRPARM, and TIMEZONE definitions).