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:
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".
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 |
|
||||||||||||||||||
Registers at Return | All registers must be unchanged. | ||||||||||||||||||
Parameters |
|
||||||||||||||||||
Return Codes |
|
||||||||||||||||||
Considerations |
|