Example in OPM RPG: Removing exit programs and deregistering exit points
This OPM RPG program removes an exit program from an exit point. After the successful completion of the removal, the program deregisters the exit point from the registration facility.
Note: By using the code examples, you agree to the terms of the Code license and disclaimer information.
F***************************************************************
F***************************************************************
F*
F* Program: Remove an Exit Program
F* Deregister an Exit Point
F*
F* Language: OPM 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: QUSRMVEP - Remove Exit Program
F* QUSDRGPT - Deregister Exit Point
F*
F***************************************************************
F***************************************************************
F*
FQPRINT O F 132 PRINTER UC
I*
I* Error Code parameter include. As this sample program
I* uses /COPY to include the error code structure, only the first
I* 16 bytes of the error code structure are available. If the
I* application program needs to access the variable length
I* exception data for the error, the developer should physically
I* copy the QSYSINC include and modify the copied include to
I* define additional storage for the exception data.
I*
I/COPY QSYSINC/QRPGSRC,QUSEC
I*
I*
I* Miscellaneous data
I*
I DS
I B 1 40PGMNBR
I I 'EXAMPLE_EXIT_POINT ' 5 24 EPNTNM
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 Z-ADD16 QUSBNB
C*
C* Call the API to remove the exit program.
C*
C CALL 'QUSRMVEP'
C PARM EPNTNM
C PARM 'EXMP0100'FORMAT 8
C PARM 1 PGMNBR
C PARM QUSBN
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 QUSBNC IFGT 0
C OPEN QPRINT
C EXCPTERRPGM
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 CALL 'QUSDRGPT'
C PARM EPNTNM
C PARM 'EXMP0100'FORMAT
C PARM QUSBN
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 QUSBNC IFGT 0
C OPEN QPRINT
C EXCPTERREPT
C EXSR DONE
C ENDIF
C EXSR DONE
C*
C* End of MAINLINE
C*
C*
C* Return to programs caller
C DONE BEGSR
C SETON LR
C RETRN
C ENDSR
O*
OQPRINT E 106 ERREPT
O 'Attempt to deregister '
O 'exit point failed: '
O QUSBND
OQPRINT E 106 ERRPGM
O 'Attempt to remove exit '
O 'program failed: '
O QUSBND