System and Application Specific Overrides

Within an override, you can use the keywords *BEGINAPL and *ENDAPL to mark a section for selected applications only. Usually this would be a class, but the specification of instances is also supported. Each marked sequence is contained only in the AT where an instance is linked.

Likewise you use the keywords *BEGINMVC and *ENDMVC to mark a section for selected MVC components only. Furthermore you can use the keywords *BEGINSYS and *ENDSYS to mark a section for selected systems only. Each marked system is contained only in the AT of the corresponding system.

The keywords are accepted in upper case and mixed case. The Begin keywords allow the specification of one or more entry names, separated by blanks or commas. A Begin keyword without a entry name is ignored and the current selection (if any) remains in effect. If you need to specify more entry names than fit onto one line, use a continuation line by adding another line with the Begin keyword. The name specifications in multiple consecutive lines with Begin keywords are evaluated together.

There is no syntax check for the specified names and it is not verified whether the names exist as application or system entries in the policy database. If a Begin keyword is specified with a name that does not exist in the policy database, then that portion of the override is excluded from all ATs being built.

The End keywords indicate the end of the current selection and have the following properties:

  • The End keyword cannot be qualified with specific entry names. Any text that follows the End keyword on the same line is ignored.
  • An End keyword that does not have a matching Begin keyword is ignored.
  • If there is no matching end for a Begin keyword, the current selection remains in effect until either the override ends or another specification of the same Begin keyword is found.

Whenever a *BEGINAPL is found, a full system evaluation is run replacing any selections from a previous *BEGINAPL. The same is true for *BEGINMVC and *BEGINSYS. However, a *BEGINSYS specification remains in effect if a *BEGINAPL or *BEGINMVC specification is found, and vice versa.

If the variable "&*JOBNAME." is used in an override it is resolved for all jobnames across all classes for which the message is specified. This can be limited to a subset of classes or instances with the keyword *BEGINAPL. If no linked instances can be found then the variable "&JOBNAME." is resolved with a placeholder/period(.).

It is recommended to use these keywords as little as possible because the evaluation may increase the build time depending on the specified names (for example, with a lot of instances) and to avoid convoluted overrides. Especially it is recommended to avoid combinations of *BEGINSYS with *BEGINAPL or *BEGINMVC within one override.

If an application, MVS component, or system is deleted, a scan for the corresponding *BEGINAPL, *BEGINMVC, or *BEGINSYS keyword is run across all message overrides. If the deleted entry name is found within a list of names then it is removed from the list. If there is a Begin keyword where only the deleted name is specified then the complete section of the override is deleted.

If an application, MVS component or system is renamed, a scan for the corresponding *BEGINAPL, *BEGINMVC, or *BEGINSYS keyword is run across all message overrides. Wherever the name is found it is replaced with the new name.

If data are imported into a target policy database, and there is a message with an override among the imported data while the same message exists already in the target policy database with an override, then *BEGINAPL or *BEGINMVC keywords are inserted with the corresponding entry names.

If application or MVS component data are copied, and a message with an override is contained in the copied data, then a check is done to determine whether the "copy-from" application is specified in a *BEGINxxx keyword within the copied override. If this is the case then the "copy-to" application name is added to that *BEGINxxx keyword.