Code Example Using Security and Error Message APIs
There are two utility Oracle LSH APIs that you call in conjunction with other Oracle LSH APIs:
- CDR_PUB_API_INITIALIZATION. This API is required for developing and running programs that call any Oracle LSH API from outside Oracle LSH. See Calling the Security API Package for further information.
- CDR_PUB_MSG_PUB. This API returns error messages from other Oracle LSH APIs called in the same package.
The following code provides an example of calling the API to define a Work Area and each of the utility APIs.
Example 1-1 Program that Calls the API to Define a Work Area and Calls the Security and Error Message APIs
CDR_PUB_DF_WORKAREA.CREATEWORKAREA ( P_API_VERSION=>1, P_INIT_MSG_LIST=>CDR_PUB_DEF_CONSTANTS.G_FALSE, P_COMMIT=>CDR_PUB_DEF_CONSTANTS.G_FALSE, P_VALIDATION_LEVEL=>CDR_PUB_DEF_CONSTANTS.G_VALID_LEVEL_FULL, X_RETURN_STATUS => X_RETURN_STATUS, X_MSG_COUNT => X_MSG_COUNT, X_MSG_DATA => X_MSG_DATA, PIO_SOURCECDRNAMING =>VARWANSOBJ, PIO_WORKAREAOBJTYPE =>VARWAOBJ, PI_DEFCLASSIFICATIONCOLL => NULL); IF X_RETURN_STATUS <> 'S' THEN DBMS_OUTPUT.PUT_LINE('ERROR FOUND IN CREATEPROGRAM'); END IF ; X_MSG_COUNT := CDR_PUB_MSG_PUB.COUNT_MSG( P_API_VERSION=>1, P_INIT_MSG_LIST=>CDR_PUB_DEF_CONSTANTS.G_FALSE, P_COMMIT=>CDR_PUB_DEF_CONSTANTS.G_FALSE, P_VALIDATION_LEVEL=>CDR_PUB_DEF_CONSTANTS.G_VALID_LEVEL_FULL ); IF X_MSG_COUNT >= 1 THEN FOR I IN 1..X_MSG_COUNT LOOP IF I =1 THEN X_MSG_DATA := CDR_PUB_MSG_PUB.GET( P_API_VERSION=>1, P_INIT_MSG_LIST=>CDR_PUB_DEF_CONSTANTS.G_FALSE, P_COMMIT=>CDR_PUB_DEF_CONSTANTS.G_FALSE, P_VALIDATION_LEVEL=>CDR_PUB_DEF_CONSTANTS.G_VALID_LEVEL_FULL, P_MSG_INDEX =>CDR_PUB_MSG_PUB.G_FIRST, P_ENCODED =>CDR_PUB_DEF_CONSTANTS.G_FALSE); ELSIF I = X_MSG_COUNT THEN X_MSG_DATA := CDR_PUB_MSG_PUB.GET( P_API_VERSION=>1, P_INIT_MSG_LIST=>CDR_PUB_DEF_CONSTANTS.G_FALSE, P_COMMIT=>CDR_PUB_DEF_CONSTANTS.G_FALSE, P_VALIDATION_LEVEL=>CDR_PUB_DEF_CONSTANTS.G_VALID_LEVEL_FULL, P_MSG_INDEX =>CDR_PUB_MSG_PUB.G_LAST, P_ENCODED =>CDR_PUB_DEF_CONSTANTS.G_FALSE); ELSE X_MSG_DATA := CDR_PUB_MSG_PUB.GET( P_API_VERSION=>1, P_INIT_MSG_LIST=>CDR_PUB_DEF_CONSTANTS.G_FALSE, P_COMMIT=>CDR_PUB_DEF_CONSTANTS.G_FALSE, P_VALIDATION_LEVEL=>CDR_PUB_DEF_CONSTANTS.G_VALID_LEVEL_FULL, P_MSG_INDEX =>CDR_PUB_MSG_PUB.G_NEXT, P_ENCODED =>CDR_PUB_DEF_CONSTANTS.G_FALSE); END IF ; DBMS_OUTPUT.PUT_LINE('MESSAGE:'||I ||' : '|| X_MSG_DATA); END LOOP; END IF; CDR_PUB_API_INITIALIZATION.DISABLEAPIS( P_API_VERSION=>1, P_INIT_MSG_LIST=>CDR_PUB_DEF_CONSTANTS.G_FALSE, P_COMMIT=>CDR_PUB_DEF_CONSTANTS.G_FALSE, P_VALIDATION_LEVEL=>CDR_PUB_DEF_CONSTANTS.G_VALID_LEVEL_FULL, X_RETURN_STATUS => X_RETURN_STATUS, X_MSG_COUNT => X_MSG_COUNT, X_MSG_DATA => X_MSG_DATA); EXCEPTION WHEN OTHERS THEN CDR_PUB_API_INITIALIZATION.DISABLEAPIS( P_API_VERSION=>1, P_INIT_MSG_LIST=>CDR_PUB_DEF_CONSTANTS.G_FALSE, P_COMMIT=>CDR_PUB_DEF_CONSTANTS.G_FALSE, P_VALIDATION_LEVEL=>CDR_PUB_DEF_CONSTANTS.G_VALID_LEVEL_FULL, X_RETURN_STATUS => X_RETURN_STATUS, X_MSG_COUNT => X_MSG_COUNT, X_MSG_DATA => X_MSG_DATA); END MY_PROCEDURE; BEGIN -- PACKAGE INIT BLOCK CDR_PUB_API_INITIALIZATION.ENABLEAPIS( P_API_VERSION=>1, P_INIT_MSG_LIST=>CDR_PUB_DEF_CONSTANTS.G_FALSE, P_COMMIT=>CDR_PUB_DEF_CONSTANTS.G_FALSE, P_VALIDATION_LEVEL=>CDR_PUB_DEF_CONSTANTS.G_VALID_LEVEL_FULL, X_RETURN_STATUS => X_RETURN_STATUS, X_MSG_COUNT => X_MSG_COUNT, X_MSG_DATA => X_MSG_DATA); END MY_PACKAGE;
Parent topic: Using Application Programming Interfaces