This chapter documents the detail linkage conventions for interfacing to five user exits. The general flow of CA JARS products and where these exits fit into that flow were explained in Chapter 1 of this guide.
To accommodate installation accounting and reporting requirements not supported by CA JARS standard features, provision is made for user exit routines to augment or modify the actions normally taken. These user exit routines should be written in Assembler Language. This chapter describes the parameters passed to exit routines at each of the following five phases in processing logic:
Exit routines must reside in a LNKLST library or in the library in which CA JARS resides, as indicated by the STEPLIB DD statement, or in a library concatenated to the STEPLIB DD statement.
It is not necessary to link edit an exit routine with any part of this product. The exit routines are compiled and linked independently. CA JARS uses a late binding technique of exit name specification. This is implemented by permitting exit name specification in the PARMS (input and account exits) and exits (exit-1, exit-2, and exit-3) statements at report program execution time. See the User Guide for the appropriate control statement syntax.
The user exits use standard IBM linkage conventions. Upon entry from CA JARS, the registers are as follows:
|
Register |
Description |
|---|---|
|
15 |
Address of exit routine's entry point |
|
14 |
Return address |
|
13 |
Address of register save area |
|
1 |
Address of parameter list |
The user exit must be coded and assembled using standard assembly language procedures. The following is for illustration purposes only and should be modified according to your installation requirements.
//JOBNAME JOB ,??????,CLASS=?,MSGCLASS=? //**************************************************************** //* DOC: This job assembles and links an exit into your loadlib * //**************************************************************** //STEP1 EXEC PGM=ASMBLR,PARM='DECK,NOOBJECT' //SYSPRINT DD SYSOUT=* //SYSUT1 DD DSN=&.&SYSUT1.,UNIT=SYSDA,SPACE=(1700,(600,100)) //SYSUT2 DD DSN=&.&SYSUT2.,UNIT=SYSDA,SPACE=(1700,(300,50)) //SYSUT3 DD DSN=&.&SYSUT3.,UNIT=SYSDA,SPACE=(1700,(300,50)) //SYSPUNCH DD DSN=&.&TEMP(????EXIT)., // DISP=(NEW,PASS), // DCB=(RECFM=FB,LRECL=80,BLKSIZE=800), // UNIT=SYSDA, // SPACE=(TRK,(1,1,1)) //SYSLIB DD DSN=SYS1.MACLIB,DISP=SHR // DD DSN=CAI.CAJRSAMP,DISP=SHR //SYSIN DD DSN=CAI.youruserlib(????EXIT),DISP=SHR //* //LINK1 EXEC PGM=IEWL,PARM='LET,LIST,NCAL,XREF,MAP' //SYSPRINT DD SYSOUT=* //SYSUT1 DD DSN=&.&SYSUT1.,UNIT=SYSDA,SPACE=(1024,(100,10)) //SYSLMOD DD DSN=your.loadlib,DISP=SHR //OBJECT DD DSN=&.&TEMP.,DISP=(OLD,DELETE) //SYSLIN DD * INCLUDE OBJECT(????EXIT) NAME ????EXIT(R) /*
This section contains the following topics:
The Rate Determination Exit (SJEX201)
| Copyright © 2011 CA. All rights reserved. | Tell Technical Publications how we can improve this information |