UXEEX3 - UEDIT RJE Exit

Note:
A familiarity with the functional design of the UEDIT utility program is necessary for a full understanding of this section.

This exit provides security for the UEDIT utility only. The same function is provided by ULSRRJE on a system-wide basis.

UXEEX3 is a user-written routine loaded during RJE initialization by the module UERJE. It is given control before RJE begins, once for each card image sent to RJE, and after RJE terminates. UXEEX3 can examine, modify, insert, and delete card images in the RJE input stream, as well as abort the JOB submission altogether.

The primary function of this routine is to modify submitted job control statements and, in general, establish control over JCL conventions for submitted jobs. UUEEX3 can be used to:

  • Syntax-check JCL;

  • Enforce installation standards;

  • Insert UQ security statements into the input stream.

Note that any dynamic storage that needs to be acquired by UXEEX3 must be acquired during the first call to the exit, since UEDIT's RJE processor will get and use all available thread storage after the first call.

The UXEEX3 module is loaded once per submit request. This means that internal switches can only be set and subsequently referred to during a single submit request.

A dummy UXEEX3 module is distributed with the Com-plete system as a member of the distribution source and load libraries.

Note:
No security exists for UEDIT functions, unless it is established by you.

This document covers the following topics:


How to Use UXEEX3

Upon entry to UXEEX3, a set of parameters is received in the form of fullword addresses in register 1. Word 1 of the parameter list contains the address of a return code area in which the status of the request is to be indicated. Word 2 of the parameter list contains the address of the UEPDCOM data area.

Word 3 of the parameter list contains the address of the "call-type" byte being passed to UXEEX3; valid character values are:

S start of job submission before the first statement.
sp space (statement being submitted).
E end of the submission following the last statement.

Word 4 of the parameter list contains the address of the statement being submitted. Word 5 of the parameter list contains the address of the area to be used when inserting statements (return code = 8).

Note that the last two parameters are valid only if the call-type byte is a space.

Upon return to UERJE from UXEEX3, the return code halfword is examined and processed as follows:

0 Normal return; the next statement is processed, unless the final statement has been processed.
4 Delete the current statement. This return code is valid only if the call-type byte is a space.
8 Insert a statement before the current card image statement. The statement to be inserted must be in an area pointed to by the fifth parameter in the parameter list (+16). This return code is valid only for the call-type byte values space and E.
12 Abort the RJE submission.

At the end of the job stream, the call type is set to E. UXEEX3 is called repeatedly until a return code of either 0 or 12 is given.

This allows for the insertion of multiple statements at the end of the job stream.

To modify a statement, place it in the statement work area addressed by the fourth parameter in the parameter list (+12), modify the statement there, and return with a return code 0.

Once a return code of 12 is given by UXEEX3, UXEEX3 is not called again. Return is to the UEDIT menu page with the error message "SUBMIT ABORTED".

UXEEX3 Conventions

The following table summarizes the UXEEX3 linkage conventions.

Feature Convention
Attributes Reentrant if in a resident area.
Type Thread.
Size Restricted to the UERJE thread region
Registers at Entry
Register 1 Address of the parameter list
Register 13 Address of an 18-fullword save area
Register 14 Return address in the calling module
Register 15 Entry address of UXEEX3
Registers at Return All registers must be unchanged.
Parameters
Word 1 Address of a return code halfword
Word 2 Address of the UEPDCOM data area
Word 3
Address of a flag byte indicating the type of call:
S start of job submission (before first statement)
sp (space) statement being submitted
E end of the submission (following the last statement)
Word 4 Address of the statement being submitted.
Word 5 Address of the area to be used when inserting statements (return code = 8)
Return Codes
0 Normal return. Process the next statement unless end-of-file.
4 Delete the current statement (valid only if call-type = space).
8 Insert a statement before the current card image. State-ment to be inserted must be in an area pointed to by word 5 of the parameter area . This return code is valid only for call-types E and sp (space).
12 Abort the submission.
Considerations
a Is loaded once per RJE initialization by UERJE.
b Is called before the RJE begins for each card image sent to RJE, and after the RJE is finished.
c Will be loaded dynamically.