The following lines contain the word 'select', 'insert', 'update' or 'delete':
SELECT *
FROM CSL_CS_COUNTER_PROP_VALS_inq
WHERE tranid$$ = b_tranid
AND clid$$cs = b_user_name;
This procedure is called by APPLY_CLIENT_CHANGES when an inserted record is to be processed.
***/
PROCEDURE APPLY_INSERT
(
p_record IN c_CS_COUNTER_PROP_VALS%ROWTYPE,
p_error_msg OUT NOCOPY VARCHAR2,
x_return_status IN OUT NOCOPY VARCHAR2
) IS
/*
cursor c_counter_group
( b_counter_value_id number
)
is
select cc_v.counter_id counter_id
, cc_v.counter_group_id counter_group_id
, cc_v.counter_group_name counter_group_name
, c_grp.source_object_id
from cs_counters_v cc_v, cs_counter_values c_val, cs_counter_groups c_grp
where cc_v.counter_id = c_val.counter_id
AND c_val.counter_value_id = b_counter_value_id
AND cc_counter_group_id = c_grp.counter_group_id
AND c_grp.source_object_code = 'CP';
select count(*) number_of_props
from cs_counter_properties ccp
where ccp.counter_id = b_counter_id;
select ccv.counter_grp_log_id counter_grp_log_id
from cs_counter_values ccv
where ccv.counter_value_id = b_counter_value_id;
, v_message => 'Entering ' || g_object_name || '.APPLY_INSERT'
, v_level_id => JTM_HOOK_UTIL_PKG.G_DEBUG_LEVEL_FULL);
SELECT COUNT(1) INTO l_cnt_prop_vals
FROM CSL_CS_COUNTER_PROP_VALS_INQ
WHERE COUNTER_VALUE_ID = p_record.COUNTER_VALUE_ID;
, v_message => 'Leaving ' || g_object_name || '.APPLY_INSERT'
, v_level_id => JTM_HOOK_UTIL_PKG.G_DEBUG_LEVEL_FULL);
, v_message => 'Exception occurred in APPLY_INSERT:' || fnd_global.local_chr(10) || sqlerrm
, v_level_id => JTM_HOOK_UTIL_PKG.G_DEBUG_LEVEL_ERROR);
fnd_msg_pub.Add_Exc_Msg( g_object_name, 'APPLY_INSERT', sqlerrm);
, v_message => 'Leaving ' || g_object_name || '.APPLY_INSERT'
, v_level_id => JTM_HOOK_UTIL_PKG.G_DEBUG_LEVEL_FULL);
END APPLY_INSERT;
This procedure is called by APPLY_CLIENT_CHANGES when an updated record is to be processed.
***/
PROCEDURE APPLY_UPDATE
(
p_record IN c_CS_COUNTER_PROP_VALS%ROWTYPE,
p_error_msg OUT NOCOPY VARCHAR2,
x_return_status IN OUT NOCOPY VARCHAR2
) IS
cursor c_counter_prop_value
( b_counter_prop_value_id number
)
is
select counter_id
, counter_prop_value_id
, counter_grp_log_id
, object_version_number
from cs_ctr_property_values_v
where counter_prop_value_id = b_counter_prop_value_id;
, v_message => 'Entering ' || g_object_name || '.APPLY_UPDATE'
, v_level_id => JTM_HOOK_UTIL_PKG.G_DEBUG_LEVEL_FULL);
Cs_Ctr_Capture_Reading_pub.Update_Counter_Reading
( p_api_version_number => 1.0
, p_validation_level => FND_API.G_VALID_LEVEL_FULL
, p_init_msg_list => FND_API.G_TRUE
, p_commit => FND_API.G_FALSE
, p_prop_rdg_tbl => l_prop_rdg_tbl
, p_ctr_grp_log_id => l_ctr_grp_log_id
, x_return_status => x_return_status
, x_msg_count => l_msg_count
, x_msg_data => l_msg_data
);
, v_message => 'Leaving ' || g_object_name || '.APPLY_UPDATE'
, v_level_id => JTM_HOOK_UTIL_PKG.G_DEBUG_LEVEL_FULL);
, v_message => 'Exception occurred in APPLY_UPDATE:' || fnd_global.local_chr(10) || sqlerrm
, v_level_id => JTM_HOOK_UTIL_PKG.G_DEBUG_LEVEL_ERROR);
fnd_msg_pub.Add_Exc_Msg( g_object_name, 'APPLY_UPDATE', sqlerrm);
, v_message => 'Leaving ' || g_object_name || '.APPLY_UPDATE'
, v_level_id => JTM_HOOK_UTIL_PKG.G_DEBUG_LEVEL_FULL);
END APPLY_UPDATE;
APPLY_INSERT
(
p_record,
p_error_msg,
x_return_status
);
APPLY_UPDATE
(
p_record,
p_error_msg,
x_return_status
);
, v_message => 'Delete is not supported for this entity'
, v_level_id => JTM_HOOK_UTIL_PKG.G_DEBUG_LEVEL_ERROR);
a fast sync. This procedure will insert the data that came from mobile into the backend tables using
public APIs.
***/
PROCEDURE APPLY_CLIENT_CHANGES
(
p_user_name IN VARCHAR2,
p_tranid IN NUMBER,
p_debug_level IN NUMBER,
x_return_status IN OUT NOCOPY VARCHAR2
) IS
l_process_status VARCHAR2(1);
/*** Yes -> delete record from inqueue ***/
IF g_debug_level >= JTM_HOOK_UTIL_PKG.G_DEBUG_LEVEL_MEDIUM THEN
jtm_message_log_pkg.Log_Msg
( v_object_id => r_CS_COUNTER_PROP_VALS.COUNTER_PROP_VALUE_ID -- put PK column here
, v_object_name => g_object_name
, v_message => 'Record successfully processed, deleting from inqueue'
, v_level_id => JTM_HOOK_UTIL_PKG.G_DEBUG_LEVEL_MEDIUM);
CSL_SERVICEL_WRAPPER_PKG.DELETE_RECORD
(
p_user_name,
p_tranid,
r_CS_COUNTER_PROP_VALS.seqno$$,
r_CS_COUNTER_PROP_VALS.COUNTER_PROP_VALUE_ID, -- put PK column here
g_object_name,
g_pub_name,
l_error_msg,
l_process_status
);
/*** was delete successful? ***/
IF l_process_status <> FND_API.G_RET_STS_SUCCESS THEN
/*** no -> rollback ***/
IF g_debug_level >= JTM_HOOK_UTIL_PKG.G_DEBUG_LEVEL_MEDIUM THEN
jtm_message_log_pkg.Log_Msg
( v_object_id => r_CS_COUNTER_PROP_VALS.COUNTER_PROP_VALUE_ID -- put PK column here
, v_object_name => g_object_name
, v_message => 'Deleting from inqueue failed, rolling back to savepoint'
, v_level_id => JTM_HOOK_UTIL_PKG.G_DEBUG_LEVEL_MEDIUM);
/*** Record was not processed successfully or delete failed -> defer and reject record ***/
IF g_debug_level >= JTM_HOOK_UTIL_PKG.G_DEBUG_LEVEL_MEDIUM THEN
jtm_message_log_pkg.Log_Msg
( v_object_id => r_CS_COUNTER_PROP_VALS.COUNTER_PROP_VALUE_ID -- put PK column here
, v_object_name => g_object_name
, v_message => 'Record not processed successfully, deferring and rejecting record'
, v_level_id => JTM_HOOK_UTIL_PKG.G_DEBUG_LEVEL_MEDIUM);