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