An example of using CTJAPI for enforcement and reformatting is shown in the following figure.
Fig.JV.8.1 CTJAPI Macro Example - Verification
CTJAPIA CSECT
CTJAPIA AMODE 31
CTJAPIA RMODE 31
.
. PERFORM HOUSEKEEPING ETC.
.
.
* INITIALIZATION
*
INIT CTJAPI INIT,RAREA=APIJ,MCT=0
*
* PERFORM JCL VERIFICATION
*
CTJAPI SCAN,RAREA=APIJ,JMSG=Y, CALL CTJAPI VERIFY X
LIB=FILDSN, FOR THIS PDS.... X
MEMBER=FILDSMEM, AND MEMBER,WITH PARMS X
FV=Y, PERFORM FILE VERIFICATION X
FA=Y CHECK FILE ACCESS
*
* FREE OUTPUT BUFFER
*
MVC JOBSTEP_TTOKEN,JAPIJMSGT GET TCB TOKEN
IARV64 REQUEST=DETACH, FREE MEMORY OBJECT X
COND=YES, CONDITIONAL REQUEST X
TTOKEN=JOBSTEP_TTOKEN, RELATE THE STOR TO TCB X
MATCH=SINGLE, X
MEMOBJSTART=JAPIJMSG@, AREA ADDRESS X
MF=(E,RV64PRMS) POINTER TO THE PARAMETERS AREA
*
* TERMINATION
*
END CTJAPI END,RAREA=APIJ
MVC MYRC,JAPIRC SAVE RC
.
. PERFORM PROGRAM TERMINATION
.
.
*
* DATA AREAS
*
JOBSTEP_TTOKEN DS CL16 TCB TOKEN
IARV64 MF=(L,RV64PRMS) IARV64 PARAMETERS - LIST FORM
FILDSN DC CL44’MY.JCL.PDS’ DSNAME
FILDSMEM DC CL8’JOB1’ MEMBER
MYRC DS F RETURN CODE
APIJ CTJAPI APID
Fig.JV.8.2 CTJAPI Macro Example - Enforcement
CTJAPIA CSECT
CTJAPIA AMODE 31
CTJAPIA RMODE 31
.
. PERFORM HOUSEKEEPING ETC.
.
.
* INITIALIZATION
*
INIT CTJAPI INIT,RAREA=APIJ,MCT=0
*
* PERFORM ENFORCEMENT. REPLACE THE MEMBER AFTER ENFORCEMENT
*
CTJAPI ENF,RAREA=APIJ,JMSG=N, CALL CTJAPIENFORCE X
LIB=FILDSN, FOR THIS PDS.... X
MEMBER=FILDSMEM, AND MEMBER,WITH PARMS X
SAV=Y, SAVE CHANGED MEMBER IN SAME PDSX
OVR=Y REPLACE MEMBER
*
* TERMINATION
*
END CTJAPI END,RAREA=APIJ
MVC MYRC,JAPIRC SAVE RC
.
. PERFORM PROGRAM TERMINATION
.
.
*
* DATA AREAS
*
FILDSN DC CL44’MY.JCL.PDS’ DSNAME
FILDSMEM DC CL8’JOB1’ MEMBER
MYRC DS F RETURN CODE
APIJ CTJAPI APID
Parent Topic |