OPM RPG 中的示例: 除去出口程序和注销出口点
此 OPM RPG 程序从出口点除去出口程序。 成功完成移除后,程序将从注册设施注销出口点。
注: 通过使用代码示例,您同意 代码许可证和免责声明信息的条款。
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