The following lines contain the word 'select', 'insert', 'update' or 'delete':
do_create_bot() -- this does actual insert into bot
do_val_mandatory() -- does check mandatory validations
do_val_gp() -- does check for existence of grand parent info
*/
---------------------------------------------------------------------------
---------------------------------------------------------------------------
/*
Name: do_val_lkup
Scope: Internal
Purpose: to check the values of some columns
*/
PROCEDURE do_val_lkup(
P_lkup_code IN VARCHAR2,
P_lkup_type IN VARCHAR2
)IS
-- cursor to identify if the given name is part of BOD or not.
CURSOR c_entity IS
SELECT distinct ENTITY_NAME
FROM HZ_BUS_OBJ_DEFINITIONS
WHERE entity_name = P_lkup_code;
SELECT 1
FROM ar_lookups b
WHERE b.lookup_type = P_lkup_type
AND b.lookup_code = P_lkup_code;
WHEN 'INSERT_UPDATE_FLAG' THEN
IF P_lkup_code IN ('I','U') THEN
NULL;
P_CHILD_UPDATE_DT IN DATE,
P_CREATION_DATE IN DATE,
p_PARENT_BO_CODE IN VARCHAR2,
P_PARENT_TBL_NAME IN VARCHAR2,
p_PARENT_ID IN NUMBER
)IS
l_child_rec_exists_no NUMBER;
-- if the record is not existing in BOT, only then insert.
BEGIN
l_child_rec_exists_no := 0;
SELECT child_id INTO l_child_rec_exists_no
FROM HZ_BUS_OBJ_TRACKING
WHERE event_id IS NULL
AND CHILD_ENTITY_NAME = P_CHILD_TBL_NAME
AND CHILD_ID = p_CHILD_ID
AND PARENT_ENTITY_NAME = P_PARENT_TBL_NAME
AND PARENT_BO_CODE = p_PARENT_BO_CODE
AND PARENT_ID = p_PARENT_ID;
INSERT INTO HZ_BUS_OBJ_TRACKING (
POPULATED_FLAG ,
CHILD_BO_CODE ,
CHILD_ENTITY_NAME ,
CHILD_ID ,
CHILD_OPERATION_FLAG ,
LAST_UPDATE_DATE ,
CREATION_DATE ,
PARENT_BO_CODE ,
PARENT_ENTITY_NAME ,
PARENT_ID )
VALUES (
POPULATED_FLAG ,
p_CHILD_BO_CODE ,
P_CHILD_TBL_NAME ,
p_CHILD_ID ,
P_CHILD_OPR_FLAG ,
P_CHILD_UPDATE_DT,
P_CREATION_DATE ,
p_PARENT_BO_CODE ,
P_PARENT_TBL_NAME,
p_PARENT_ID);
P_CHILD_UPDATE_DT IN DATE,
P_PARENT_TBL_NAME IN VARCHAR2,
P_PARENT_ID IN NUMBER
)IS
BEGIN
-- Debug info.
IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
hz_utility_v2pub.debug(
p_message=>'do_val_mandatory()+',
p_prefix=>G_DEBUG_PREFIX,
p_msg_level=>fnd_log.level_procedure);
P_CHILD_UPDATE_DT
P_PARENT_TBL_NAME
P_PARENT_ID
*/
CASE
WHEN LTRIM(RTRIM(P_CHILD_TBL_NAME)) IS NULL THEN
fnd_message.set_name('AR', 'HZ_API_NULL_PARAM');
WHEN P_CHILD_UPDATE_DT IS NULL THEN
fnd_message.set_name('AR', 'HZ_API_NULL_PARAM');
fnd_message.set_token('PARAMETER' ,'P_CHILD_UPDATE_DT');
P_CHILD_UPDATE_DT IN DATE,
P_PARENT_BO_CODE IN VARCHAR2,
P_PARENT_TBL_NAME IN VARCHAR2,
P_PARENT_ID IN NUMBER,
P_PARENT_OPR_FLAG IN VARCHAR2,
P_GPARENT_BO_CODE IN VARCHAR2,
P_GPARENT_TBL_NAME IN VARCHAR2,
P_GPARENT_ID IN NUMBER,
X_RETURN_STATUS OUT NOCOPY VARCHAR2,
X_MSG_COUNT OUT NOCOPY NUMBER,
X_MSG_DATA OUT NOCOPY VARCHAR2
)IS
BEGIN
-- initialize API return status to success.
x_return_status := FND_API.G_RET_STS_SUCCESS;
. insert into BOT (child info, parent info)
. after existence checking,
. insert into BOT (paremt info as child info, grant parent info as parent info)
*/
/* To insert first record,
. do the validations by calling the do_val_mandatory() procedure
. insert BOT (child info, parent info) by calling do_create_bot
*/
IF(HZ_UTILITY_V2PUB.G_EXECUTE_API_CALLOUTS in ('EVENTS_ENABLED', 'BO_EVENTS_ENABLED')) THEN
do_val_mandatory(
P_CHILD_TBL_NAME ,
P_CHILD_ID ,
P_CHILD_OPR_FLAG ,
P_CHILD_UPDATE_DT,
P_PARENT_TBL_NAME,
P_PARENT_ID);
P_CHILD_UPDATE_DT => P_CHILD_UPDATE_DT,
P_CREATION_DATE => P_CHILD_UPDATE_DT,
p_PARENT_BO_CODE => p_PARENT_BO_CODE,
P_PARENT_TBL_NAME => P_PARENT_TBL_NAME,
p_PARENT_ID => p_PARENT_ID);
. then, if rec bot existing, insert a record in BOT as.
bot.child info => parent info
bot.parent info => grand parent info
*/
do_val_gp(
P_CHILD_TBL_NAME ,
p_GPARENT_BO_CODE ,
P_GPARENT_TBL_NAME ,
p_GPARENT_ID);
P_CHILD_UPDATE_DT => P_CHILD_UPDATE_DT,
P_CREATION_DATE => P_CHILD_UPDATE_DT,
p_PARENT_BO_CODE => P_GPARENT_BO_CODE,
P_PARENT_TBL_NAME => P_GPARENT_TBL_NAME,
p_PARENT_ID => P_GPARENT_ID);