The following lines contain the word 'select', 'insert', 'update' or 'delete':
g_old_resource_id NUMBER; -- variable containing old resource_id; populated in Pre_Update hook
SELECT SOURCE_OBJECT_ID
FROM CS_COUNTER_GROUPS
WHERE SOURCE_OBJECT_CODE = 'CP' AND COUNTER_GROUP_ID = b_counter_group_id;
SELECT COUNTER_GROUP_ID
FROM CS_COUNTERS
WHERE COUNTER_ID = b_counter_id;
SELECT COUNTER_ID
FROM CS_COUNTER_PROPERTIES
WHERE COUNTER_PROPERTY_ID = b_ctr_prop_id;
PROCEDURE INSERT_COUNTER_PROP_ACC_RECORD ( p_counter_property_id IN NUMBER,
p_resource_id IN NUMBER
)
IS
BEGIN
-- add debug info later.
JTM_HOOK_UTIL_PKG.Insert_Acc
( P_PUBLICATION_ITEM_NAMES => g_ctr_props_pubi_name
,P_ACC_TABLE_NAME => g_ctr_props_acc_table_name
,P_PK1_NAME => g_ctr_props_pk1_name
,P_PK1_NUM_VALUE => p_counter_property_id
,P_RESOURCE_ID => p_resource_id
);
END INSERT_COUNTER_PROP_ACC_RECORD;
PROCEDURE UPDATE_COUNTER_PROP_ACC_RECORD (
p_resource_id IN NUMBER,
p_acc_id IN NUMBER
)
IS
BEGIN
-- add debug info later.
JTM_HOOK_UTIL_PKG.UPDATE_Acc
( P_PUBLICATION_ITEM_NAMES => g_ctr_props_pubi_name
,P_ACC_TABLE_NAME => g_ctr_props_acc_table_name
,P_RESOURCE_ID => p_resource_id
,P_ACCESS_ID => p_acc_id
);
END UPDATE_COUNTER_PROP_ACC_RECORD;
PROCEDURE DELETE_COUNTER_PROP_ACC_RECORD ( p_counter_property_id IN NUMBER,
p_resource_id IN NUMBER
)
IS
BEGIN
-- add debug info later.
JTM_HOOK_UTIL_PKG.DELETE_Acc
( P_PUBLICATION_ITEM_NAMES => g_ctr_props_pubi_name
,P_ACC_TABLE_NAME => g_ctr_props_acc_table_name
,P_PK1_NAME => g_ctr_props_pk1_name
,P_PK1_NUM_VALUE => p_counter_property_id
,P_RESOURCE_ID => p_resource_id
);
END DELETE_COUNTER_PROP_ACC_RECORD;
PROCEDURE INSERT_COUNTER_ACC_RECORD ( p_counter_id IN NUMBER,
p_resource_id IN NUMBER
)
IS
CURSOR c_counter_property (b_counter_id NUMBER) IS
SELECT COUNTER_PROPERTY_ID
FROM CS_COUNTER_PROPERTIES
WHERE COUNTER_ID = b_counter_id;
JTM_HOOK_UTIL_PKG.Insert_Acc
( P_PUBLICATION_ITEM_NAMES => g_counters_pubi_name
,P_ACC_TABLE_NAME => g_counters_acc_table_name
,P_PK1_NAME => g_counters_pk1_name
,P_PK1_NUM_VALUE => p_counter_id
,P_RESOURCE_ID => p_resource_id
);
l_ins_ctr_val_success := CSL_CS_COUNTER_VALS_ACC_PKG.POST_INSERT_PARENT( p_counter_id, p_resource_id );
INSERT_COUNTER_PROP_ACC_RECORD( r_counter_property_id.COUNTER_PROPERTY_ID, p_resource_id );
END INSERT_COUNTER_ACC_RECORD;
PROCEDURE UPDATE_COUNTER_ACC_RECORD (
p_resource_id IN NUMBER,
p_acc_id IN NUMBER
)
IS
BEGIN
-- add debug info later.
JTM_HOOK_UTIL_PKG.Update_Acc
( P_PUBLICATION_ITEM_NAMES => g_counters_pubi_name
,P_ACC_TABLE_NAME => g_counters_acc_table_name
,P_RESOURCE_ID => p_resource_id
,P_ACCESS_ID => p_acc_id
);
END UPDATE_COUNTER_ACC_RECORD;
PROCEDURE DELETE_COUNTER_ACC_RECORD ( p_counter_id IN NUMBER,
p_resource_id IN NUMBER
)
IS
CURSOR c_counter_property (b_counter_id NUMBER) IS
SELECT COUNTER_PROPERTY_ID
FROM CS_COUNTER_PROPERTIES
WHERE COUNTER_ID = b_counter_id;
JTM_HOOK_UTIL_PKG.Delete_Acc
( P_PUBLICATION_ITEM_NAMES => g_counters_pubi_name
,P_ACC_TABLE_NAME => g_counters_acc_table_name
,P_PK1_NAME => g_counters_pk1_name
,P_PK1_NUM_VALUE => p_counter_id
,P_RESOURCE_ID => p_resource_id
);
l_del_ctr_val_success := CSL_CS_COUNTER_VALS_ACC_PKG.PRE_DELETE_PARENT( p_counter_id, p_resource_id );
DELETE_COUNTER_PROP_ACC_RECORD( r_counter_property_id.COUNTER_PROPERTY_ID, p_resource_id );
END DELETE_COUNTER_ACC_RECORD;
PROCEDURE INSERT_CTR_GRP_ACC_RECORD ( p_counter_group_id IN NUMBER,
p_resource_id IN NUMBER
)
IS
CURSOR c_counter (b_counter_group_id NUMBER) IS
SELECT COUNTER_ID
FROM CS_COUNTERS
WHERE COUNTER_GROUP_ID = b_counter_group_id;
JTM_HOOK_UTIL_PKG.Insert_Acc
( P_PUBLICATION_ITEM_NAMES => g_ctr_grps_pubi_name
,P_ACC_TABLE_NAME => g_ctr_grps_acc_table_name
,P_PK1_NAME => g_ctr_grps_pk1_name
,P_PK1_NUM_VALUE => p_counter_group_id
,P_RESOURCE_ID => p_resource_id
);
INSERT_COUNTER_ACC_RECORD( r_counter_id.COUNTER_ID, p_resource_id );
END INSERT_CTR_GRP_ACC_RECORD;
/* UPDATE_CTR_GRP_ACC_RECORD is not recurisive hierarchically */
PROCEDURE UPDATE_CTR_GRP_ACC_RECORD (
p_resource_id IN NUMBER,
p_acc_id IN NUMBER
)
IS
BEGIN
-- add debug info later.
JTM_HOOK_UTIL_PKG.Update_Acc
( P_PUBLICATION_ITEM_NAMES => g_ctr_grps_pubi_name
,P_ACC_TABLE_NAME => g_ctr_grps_acc_table_name
,P_RESOURCE_ID => p_resource_id
,P_ACCESS_ID => p_acc_id
);
END UPDATE_CTR_GRP_ACC_RECORD;
/* recursive delete */
PROCEDURE DELETE_CTR_GRP_ACC_RECORD ( p_counter_group_id IN NUMBER,
p_resource_id IN NUMBER
)
IS
CURSOR c_counter (b_counter_group_id NUMBER) IS
SELECT COUNTER_ID
FROM CS_COUNTERS
WHERE COUNTER_GROUP_ID = b_counter_group_id;
JTM_HOOK_UTIL_PKG.Delete_Acc
( P_PUBLICATION_ITEM_NAMES => g_ctr_grps_pubi_name
,P_ACC_TABLE_NAME => g_ctr_grps_acc_table_name
,P_PK1_NAME => g_ctr_grps_pk1_name
,P_PK1_NUM_VALUE => p_counter_group_id
,P_RESOURCE_ID => p_resource_id
);
DELETE_COUNTER_ACC_RECORD( r_counter_id.COUNTER_ID, p_resource_id );
END DELETE_CTR_GRP_ACC_RECORD;
SELECT null
FROM CS_COUNTER_GROUPS
WHERE COUNTER_GROUP_ID = b_counter_group_id;
Public procedure called after a parent record is inserted.
The parent of counter group is CSI_ITEM_INSTANCE record.
Called by CSL_CSI_ITEM_INSTANCE_ACC_PKG
***/
FUNCTION Post_Insert_Parent
( p_item_instance_id IN NUMBER
,p_resource_id IN NUMBER
)
RETURN BOOLEAN
IS
CURSOR c_counter_groups (b_item_instance_id NUMBER) IS
SELECT COUNTER_GROUP_ID
FROM CS_COUNTER_GROUPS
WHERE SOURCE_OBJECT_CODE = 'CP' AND SOURCE_OBJECT_ID = b_item_instance_id;
INSERT_CTR_GRP_ACC_RECORD(r_counter_group_id.COUNTER_GROUP_ID, p_resource_id);
END Post_Insert_Parent;
Public procedure called after a parent record is updated
Check the new parent_id if it is in the ACC table.
Called by CSL_CSI_ITEM_INSTANCE_ACC_PKG
***/
FUNCTION Post_Update_Parent
( p_item_instance_id IN NUMBER
,p_resource_id IN NUMBER
)
RETURN BOOLEAN
IS
BEGIN
RETURN TRUE;
END Post_Update_Parent;
Public procedure that gets called before a parent record is deleted.
Called by CSL_CSI_ITEM_INSTANCE_ACC_PKG
***/
FUNCTION Pre_Delete_Parent
( p_item_instance_id IN NUMBER
,p_resource_id IN NUMBER
)
RETURN BOOLEAN
IS
CURSOR c_counter_groups (b_item_instance_id NUMBER) IS
SELECT COUNTER_GROUP_ID
FROM CS_COUNTER_GROUPS
WHERE SOURCE_OBJECT_CODE = 'CP' AND SOURCE_OBJECT_ID = b_item_instance_id;
DELETE_CTR_GRP_ACC_RECORD(r_counter_group_id.COUNTER_GROUP_ID, p_resource_id);
END Pre_Delete_Parent;
/* Called before counter group Insert */
PROCEDURE PRE_INSERT_COUNTER_GROUP ( x_return_status out NOCOPY varchar2)
IS
BEGIN
x_return_status := FND_API.G_RET_STS_SUCCESS;
/* Called after counter group Insert */
/* Check if the counter group is associated with a replicable item instance */
PROCEDURE POST_INSERT_COUNTER_GROUP ( p_api_version IN NUMBER
, P_Init_Msg_List IN VARCHAR2
, P_Commit IN VARCHAR2
, X_Return_Status OUT NOCOPY VARCHAR2
, X_Msg_Count OUT NOCOPY NUMBER
, X_Msg_Data OUT NOCOPY VARCHAR2
, p_source_object_cd IN VARCHAR2
, p_source_object_id IN NUMBER
, x_ctr_grp_id IN NUMBER
, x_object_version_number OUT NOCOPY NUMBER)
IS
l_tab_resource_id dbms_sql.Number_Table;
INSERT_COUNTER_PROP_ACC_RECORD
(x_ctr_grp_id
,l_tab_resource_id(i)
);
END POST_INSERT_COUNTER_GROUP;
/* Called before counter group Update */
PROCEDURE PRE_UPDATE_COUNTER_GROUP ( x_return_status out NOCOPY varchar2)
IS
BEGIN
x_return_status := FND_API.G_RET_STS_SUCCESS;
END PRE_UPDATE_COUNTER_GROUP;
/* Called after counter group Update */
PROCEDURE POST_UPDATE_COUNTER_GROUP( P_Api_Version IN NUMBER
, P_Init_Msg_List IN VARCHAR2
, P_Commit IN VARCHAR2
, X_Return_Status OUT NOCOPY VARCHAR2
, X_Msg_Count OUT NOCOPY NUMBER
, X_Msg_Data OUT NOCOPY VARCHAR2
, p_ctr_grp_id IN NUMBER
, p_object_version_number IN NUMBER
, p_cascade_upd_to_instances IN VARCHAR2
, x_object_version_number OUT NOCOPY NUMBER )
IS
l_tab_resource_id dbms_sql.Number_Table;
UPDATE_COUNTER_PROP_ACC_RECORD
(
l_tab_resource_id(i)
,l_tab_access_id(i)
);
END POST_UPDATE_COUNTER_GROUP;
/* Called before counter group Delete */
PROCEDURE PRE_DELETE_COUNTER_GROUP ( x_return_status out NOCOPY varchar2)
IS
BEGIN
x_return_status := FND_API.G_RET_STS_SUCCESS;
END PRE_DELETE_COUNTER_GROUP;
/* Called after counter group Delete */
PROCEDURE POST_DELETE_COUNTER_GROUP (
p_counter_group_id IN NUMBER
,x_return_status out NOCOPY varchar2)
IS
l_tab_resource_id dbms_sql.Number_Table;
DELETE_CTR_GRP_ACC_RECORD
( p_counter_group_id
,l_tab_access_id(i)
);
END POST_DELETE_COUNTER_GROUP;
/* Called before counter Insert */
PROCEDURE PRE_INSERT_COUNTER ( x_return_status out NOCOPY varchar2)
IS
BEGIN
x_return_status := FND_API.G_RET_STS_SUCCESS;
END PRE_INSERT_COUNTER;
/* Called after counter Insert */
PROCEDURE POST_INSERT_COUNTER ( p_api_version IN NUMBER
, P_Init_Msg_List IN VARCHAR2
, P_Commit IN VARCHAR2
, X_Return_Status OUT NOCOPY VARCHAR2
, X_Msg_Count OUT NOCOPY NUMBER
, X_Msg_Data OUT NOCOPY VARCHAR2
, x_ctr_id IN NUMBER
, x_object_version_number OUT NOCOPY NUMBER)
IS
l_tab_resource_id dbms_sql.Number_Table;
INSERT_COUNTER_ACC_RECORD
(x_ctr_id
,l_tab_resource_id(i)
);
END POST_INSERT_COUNTER;
/* Called before counter Update */
PROCEDURE PRE_UPDATE_COUNTER ( x_return_status out NOCOPY varchar2)
IS
BEGIN
x_return_status := FND_API.G_RET_STS_SUCCESS;
END PRE_UPDATE_COUNTER;
/* Called after counter Update */
PROCEDURE POST_UPDATE_COUNTER ( P_Api_Version IN NUMBER
, P_Init_Msg_List IN VARCHAR2
, P_Commit IN VARCHAR2
, X_Return_Status OUT NOCOPY VARCHAR2
, X_Msg_Count OUT NOCOPY NUMBER
, X_Msg_Data OUT NOCOPY VARCHAR2
, p_ctr_id IN NUMBER
, p_object_version_number IN NUMBER
, p_cascade_upd_to_instances IN VARCHAR2
, x_object_version_number OUT NOCOPY NUMBER )
IS
l_tab_resource_id dbms_sql.Number_Table;
UPDATE_COUNTER_ACC_RECORD
(l_tab_resource_id(i)
,l_tab_access_id(i)
);
END POST_UPDATE_COUNTER;
/* Called before counter Delete */
PROCEDURE PRE_DELETE_COUNTER ( P_Api_Version IN NUMBER
, P_Init_Msg_List IN VARCHAR2
, P_Commit IN VARCHAR2
, X_Return_Status OUT NOCOPY VARCHAR2
, X_Msg_Count OUT NOCOPY NUMBER
, X_Msg_Data OUT NOCOPY VARCHAR2
, p_ctr_id IN NUMBER )
IS
BEGIN
x_return_status := FND_API.G_RET_STS_SUCCESS;
END PRE_DELETE_COUNTER;
/* Called after counter Delete */
PROCEDURE POST_DELETE_COUNTER (
p_counter_id IN NUMBER
,x_return_status out NOCOPY varchar2)
IS
l_tab_resource_id dbms_sql.Number_Table;
DELETE_COUNTER_ACC_RECORD
(p_counter_id
,l_tab_access_id(i)
);
END POST_DELETE_COUNTER;
/* Called before counter property Insert */
PROCEDURE PRE_INSERT_COUNTER_PROPERTY ( x_return_status out NOCOPY varchar2)
IS
BEGIN
x_return_status := FND_API.G_RET_STS_SUCCESS;
END PRE_INSERT_COUNTER_PROPERTY;
/* Called after counter property Insert */
PROCEDURE POST_INSERT_COUNTER_PROPERTY ( P_Api_Version IN NUMBER
, P_Init_Msg_List IN VARCHAR2
, P_Commit IN VARCHAR2
, X_Return_Status OUT NOCOPY VARCHAR2
, X_Msg_Count OUT NOCOPY NUMBER
, X_Msg_Data OUT NOCOPY VARCHAR2
, x_ctr_prop_id IN NUMBER
, x_object_version_number OUT NOCOPY NUMBER )
IS
l_tab_resource_id dbms_sql.Number_Table;
INSERT_COUNTER_PROP_ACC_RECORD
(x_ctr_prop_id
,l_tab_resource_id(i)
);
END POST_INSERT_COUNTER_PROPERTY;
/* Called before counter property Update */
PROCEDURE PRE_UPDATE_COUNTER_PROPERTY ( x_return_status out NOCOPY varchar2)
IS
BEGIN
x_return_status := FND_API.G_RET_STS_SUCCESS;
END PRE_UPDATE_COUNTER_PROPERTY;
/* Called after counter property Update */
PROCEDURE POST_UPDATE_COUNTER_PROPERTY ( P_Api_Version IN NUMBER
, P_Init_Msg_List IN VARCHAR2
, P_Commit IN VARCHAR2
, X_Return_Status OUT NOCOPY VARCHAR2
, X_Msg_Count OUT NOCOPY NUMBER
, X_Msg_Data OUT NOCOPY VARCHAR2
, p_ctr_prop_id IN NUMBER
, p_object_version_number IN NUMBER
, p_cascade_upd_to_instances IN VARCHAR2
, x_object_version_number OUT NOCOPY NUMBER )
IS
l_tab_resource_id dbms_sql.Number_Table;
UPDATE_COUNTER_PROP_ACC_RECORD
(l_tab_resource_id(i)
,l_tab_access_id(i)
);
END POST_UPDATE_COUNTER_PROPERTY;
/* Called before counter property Delete */
PROCEDURE PRE_DELETE_COUNTER_PROPERTY ( P_Api_Version IN NUMBER
, P_Init_Msg_List IN VARCHAR2
, P_Commit IN VARCHAR2
, X_Return_Status OUT NOCOPY VARCHAR2
, X_Msg_Count OUT NOCOPY NUMBER
, X_Msg_Data OUT NOCOPY VARCHAR2
, p_ctr_prop_id IN NUMBER )
IS
BEGIN
x_return_status := FND_API.G_RET_STS_SUCCESS;
END PRE_DELETE_COUNTER_PROPERTY;
/* Called after counter property Delete */
PROCEDURE POST_DELETE_COUNTER_PROPERTY (
p_counter_prop_id IN NUMBER
,x_return_status out NOCOPY varchar2)
IS
l_tab_resource_id dbms_sql.Number_Table;
DELETE_COUNTER_PROP_ACC_RECORD
(p_counter_prop_id
,l_tab_access_id(i)
);
END POST_DELETE_COUNTER_PROPERTY;