This program removes an exit program and deregisters an exit point from the registration facility.
F*************************************************************** F*************************************************************** F* F* Program: Remove an Exit Program F* Deregister an Exit Point F* F* Language: ILE RPG F* F* Description: This program removes an exit program and F* deregisters an exit point from the registration F* facility. F* F* APIs Used: QusRemoveExitProgram - Remove Exit Program F* QusDeregisterExitPoint - Deregister Exit Point F* F*************************************************************** F*************************************************************** F* FQPRINT O F 132 PRINTER OFLIND(*INOF) USROPN D* D* Error Code parameter include. As this sample program D* uses /COPY to include the error code structure, only the first D* 16 bytes of the error code structure are available. If the D* application program needs to access the variable length D* exception data for the error, the developer should physically D* copy the QSYSINC include and modify the copied include to D* define additional storage for the exception data. D* D/COPY QSYSINC/QRPGLESRC,QUSEC D* D***************************************************************** D*Prototype for calling Deregister Exit Point API. D***************************************************************** D QUSDEP C 'QusDeregisterExitPoint' D***************************************************************** D*Prototype for calling Remove Exit Program API. D***************************************************************** D QUSREPGM C 'QusRemoveExitProgram' D* D* Miscellaneous data D* DPGM_NBR 9B 0 DEPNTNAME S 20 INZ('EXAMPLE_EXIT_POINT') C* C* Beginning of mainline C* C* Remove an exit program from the exit point and then deregister C* the exit point. It is not necessary to remove exit programs C* from an exit point before deregistering the exit point. It is C* done here only for illustrative purposes. C* C* Initialize the error code parameter. To signal exceptions to C* this program by the API, you need to set the bytes provided C* field of the error code to zero. Because this program has C* exceptions sent back through the error code parameter, it sets C* the bytes provided field to the number of bytes it gives the C* API for the parameter. C* C EVAL QUSBPRV = %SIZE(QUSEC) C* C* Call the API to remove the exit program. C* C CALLB QUSREPGM C PARM EPNTNAME C PARM 'EXMP0100' FORMAT 8 C PARM 1 PGM_NBR C PARM QUSEC C* C* If an exception occurs, the API returns the exception in the C* error code parameter. The bytes available field is set to C* zero if no exception occurs and greater than zero if an C* exception does occur. C* C IF QUSBAVL > 0 C OPEN QPRINT C EXCEPT ERRAEPGM C EXSR DONE C ENDIF C* C* If the call to remove the exit program is successful, C* deregister the exit point. C* C* Call the API to deregister the exit point. C* C CALLB QUSDEP C PARM EPNTNAME C PARM 'EXMP0100' FORMAT C PARM QUSEC C* C* If an exception occurs, the API returns the exception in the C* error code parameter. The bytes available field is set to C* zero if no exception occurs and greater than zero if an C* exception does occur. C* C IF QUSBAVL > 0 C OPEN QPRINT C EXCEPT ERRAEPNT C EXSR DONE C ENDIF C EXSR DONE C* C* End of MAINLINE C* C* C* Return to programs caller C DONE BEGSR C EVAL *INLR = '1' C RETURN C ENDSR O* OQPRINT E ERRAEPNT 1 6 O 'Attempt to deregister - O exit point failed: ' O QUSEI OQPRINT E ERRAEPGM 1 6 O 'Attempt to remove exit - O program failed: ' O QUSEI