|
| 1 | +APIALAPP TITLE 'ENDEVOR - API LIST PACKAGE Approvers ' |
| 2 | +* THESE ROUTINES ARE DISTRIBUTED BY THE CA TECHNOLOGIES STAFF |
| 3 | +* "AS IS". NO WARRANTY, EITHER EXPRESSED OR IMPLIED, IS MADE |
| 4 | +* FOR THEM. CA TECHNOLOGIES CANNOT GUARANTEE THAT THE ROUTINES |
| 5 | +* ARE ERROR FREE, OR THAT IF ERRORS ARE FOUND, THEY WILL BE |
| 6 | +* CORRECTED. |
| 7 | +*********************************************************************** |
| 8 | +* DESCRIPTION: THIS SAMPLE PROGRAM ISSUES REQUESTS TO THE |
| 9 | +* ENDEVOR API TO EXTRACT ENDEVOR PACKAGE Approver info. |
| 10 | +* |
| 11 | +* HOW TO USE: PASS THE PACKAGE NAME IN THE PARM WITH THE PROGRAM |
| 12 | +* CALL. |
| 13 | +* EXAMPLE: |
| 14 | +* EXEC PGM=NDVRC1, |
| 15 | +* PARM='CONCALL,DDN:STEPLIB,APIALAPP,PR#BACKOUT#TEST1' |
| 16 | +* |
| 17 | +* REGISTER USAGE: |
| 18 | +* R2 -> SAVE RETURN CODE |
| 19 | +* R3 -> SAVE REASON CODE |
| 20 | +* R12 -> BASE PROGRAM |
| 21 | +* R13 -> STANDARD USAGE........ |
| 22 | +* R15 -> RETURN CODE FROM CALL |
| 23 | +* ==> -> WE USE STANDARD STACK SAVEAREA USAGE |
| 24 | +* |
| 25 | +*********************************************************************** |
| 26 | +* WORKAREA |
| 27 | +*********************************************************************** |
| 28 | +WORKAREA DSECT |
| 29 | +SAVEAREA DS 18F |
| 30 | +WPARMLST DS 4F PARAMETER LIST |
| 31 | +WCNT DS H ACTION COUNTER |
| 32 | + DS 0D |
| 33 | +*********************************************************************** |
| 34 | +* API CONTROL BLOCK |
| 35 | +** your CSIQOPTN(ENHALAPP) |
| 36 | +*********************************************************************** |
| 37 | + ENHAACTL DSECT=NO |
| 38 | +*********************************************************************** |
| 39 | +* API ACTION REQUEST BLOCKS |
| 40 | +*********************************************************************** |
| 41 | + ENHALAPP DSECT=NO |
| 42 | +WORKLN EQU *-WORKAREA |
| 43 | +*********************************************************************** |
| 44 | +* REQISTER EQUATES |
| 45 | +*********************************************************************** |
| 46 | +R0 EQU 0 |
| 47 | +R1 EQU 1 |
| 48 | +R2 EQU 2 |
| 49 | +R3 EQU 3 |
| 50 | +R4 EQU 4 |
| 51 | +R5 EQU 5 |
| 52 | +R6 EQU 6 |
| 53 | +R7 EQU 7 |
| 54 | +R8 EQU 8 |
| 55 | +R9 EQU 9 |
| 56 | +R10 EQU 10 |
| 57 | +R11 EQU 11 |
| 58 | +R12 EQU 12 |
| 59 | +R13 EQU 13 |
| 60 | +R14 EQU 14 |
| 61 | +R15 EQU 15 |
| 62 | +APIALAPP CSECT |
| 63 | +APIALAPP AMODE 31 |
| 64 | +APIALAPP RMODE ANY |
| 65 | +*********************************************************************** |
| 66 | +* HOUSEKEEPING |
| 67 | +*********************************************************************** |
| 68 | + SAVE (14,12) SAVE CALLERS REG 12(13) |
| 69 | + LR R12,R15 POINT TO THIS PROGRAM |
| 70 | + USING APIALAPP,R12 |
| 71 | +*********************************************************************** |
| 72 | +* VALIDATE PARM LEN |
| 73 | +*********************************************************************** |
| 74 | +* |
| 75 | + L R6,0(,R1) |
| 76 | + LA R6,2(,R6) POINT TO package id in parm |
| 77 | +* |
| 78 | +*********************************************************************** |
| 79 | +* GET STORAGE FOR WORKAREA |
| 80 | +*********************************************************************** |
| 81 | + L R0,=A(WORKLN) GET SIZE OF W.A |
| 82 | + GETMAIN R,LV=(0) GET WORKING STORAGE |
| 83 | + ST R1,8(R13) STORE NEW STACK +8(OLD) |
| 84 | + ST R13,4(R1) STORE OLD STACK +4(NEW) |
| 85 | + LR R13,R1 POINT R13 TO OUR STACK |
| 86 | + USING SAVEAREA,R13 ESTABLISH ADDRESSIBILIY |
| 87 | + SPACE , |
| 88 | +************************************************************ |
| 89 | +* INITIALIZE AND POPULATE THE CONTROL STRUCTURE |
| 90 | +* NOTE: IF ANY INVENTORY MANAGEMENT MESSAGES ARE ISSUED, THEY |
| 91 | +* ARE WRITTEN TO THE MSG DATA SET. THE OUTPUT FROM THIS REQUEST |
| 92 | +* IS WRITTEN TO THE LIST DATA SET. |
| 93 | +************************************************************ |
| 94 | +* |
| 95 | +XAPP000 DS 0H |
| 96 | +************************************************************ |
| 97 | +* INITIALIZE AND POPULATE THE REQUEST STRUCTURE |
| 98 | +************************************************************ |
| 99 | +* |
| 100 | + API$INIT STG=AACTL,BLOCK=AACTL |
| 101 | + API$INIT STG=ALAPP_RQ,BLOCK=ALAPP_RQ |
| 102 | + API$INIT STG=ALAPP_RS,BLOCK=ALAPP_RS |
| 103 | +* |
| 104 | + MVC AACTL_MSG_DDN(8),=C'APIMSGS ' |
| 105 | + MVC AACTL_LIST_DDN(8),=C'APILIST ' |
| 106 | +* |
| 107 | + MVC ALAPP_RQ_PKGID(16),0(R6) Move package id to request |
| 108 | +* |
| 109 | +************************************************************ |
| 110 | +* BUILD PARMLIST |
| 111 | +************************************************************ |
| 112 | + LA R1,WPARMLST |
| 113 | + LA R14,AACTL |
| 114 | + ST R14,0(0,R1) |
| 115 | + LA R14,ALAPP_RQ |
| 116 | + ST R14,4(0,R1) |
| 117 | + LA R14,ALAPP_RS |
| 118 | + ST R14,8(0,R1) |
| 119 | + OI 8(R1),X'80' |
| 120 | +************************************************************ |
| 121 | +* |
| 122 | +* CALL THE ENDEVOR API INTERFACE PROGRAM |
| 123 | +************************************************************ |
| 124 | +XCALLAPI DS 0H |
| 125 | + L R15,=V(ENA$NDVR) |
| 126 | + BALR R14,R15 |
| 127 | + LR R2,R15 HOLD ONTO THE RETURN CODE |
| 128 | + LR R3,R0 HOLD ONTO THE REASON CODE |
| 129 | +************************************************************ |
| 130 | +* SHUTDOWN THE API SERVER. ONLY THE AACTL BLOCK IS REQUIRED. |
| 131 | +************************************************************ |
| 132 | +XSHUTDWN DS 0H |
| 133 | + API$INIT STG=AACTL,BLOCK=AACTL |
| 134 | + MVI AACTL_SHUTDOWN,C'Y' |
| 135 | + LA R1,WPARMLST |
| 136 | + LA R14,AACTL |
| 137 | + ST R14,0(0,R1) |
| 138 | + OI 0(R1),X'80' |
| 139 | + L R15,=V(ENA$NDVR) |
| 140 | + BALR R14,R15 |
| 141 | +*********************************************************************** |
| 142 | +* PROGRAM EXIT |
| 143 | +*********************************************************************** |
| 144 | + LR R5,R13 SAVE SAVEAREA ADDRESS |
| 145 | + L R13,4(R13) POINT TO PREVIOUS SAVEAREA |
| 146 | +* CLEAN UP THIS PROGRAM'S STORAGE |
| 147 | + L R0,=A(WORKLN) GET SIZE |
| 148 | + FREEMAIN R,A=(R5),LV=(R0) FREE STORAGE |
| 149 | + LR R15,R2 SET RETURN CODE |
| 150 | + L R14,12(R13) |
| 151 | + LM R0,R12,20(R13) |
| 152 | + BSM 0,R14 RETURN |
| 153 | + END |
0 commit comments