The following lines contain the word 'select', 'insert', 'update' or 'delete':
SELECT *
FROM csm_tasks_inq
WHERE tranid$$ = b_tranid
AND clid$$cs = b_user_name;
an inserted record is to be processed.
***/
PROCEDURE APPLY_INSERT
(
p_record IN c_tasks_inq%ROWTYPE,
p_error_msg OUT NOCOPY VARCHAR2,
x_return_status IN OUT NOCOPY VARCHAR2,
x_reject_row OUT NOCOPY BOOLEAN --Bug 5288413
) IS
--Bug 5288413
CURSOR c_is_private_owner(b_task_type_id NUMBER) IS
SELECT decode(NVL(PRIVATE_FLAG,'N'),'Y',1,0)
FROM JTF_TASK_TYPES_B
WHERE TASK_TYPE_ID = b_task_type_id;
SELECT RESOURCE_ID
FROM ASG_USER
WHERE USER_NAME=b_user_name;
SELECT APPLICATION_ID
FROM fnd_application
WHERE application_short_name = 'CSM';
SELECT RESPONSIBILITY_ID
FROM ASG_USER
WHERE USER_ID = c_user_id;
SELECT INCIDENT_NUMBER, INCIDENT_LOCATION_ID,
CUSTOMER_ID,INCIDENT_LOCATION_TYPE
INTO l_task_source_object_name , l_incident_location_id,
l_customer_id,l_incident_location_type
FROM CS_INCIDENTS_ALL_B
WHERE INCIDENT_ID = p_record.source_object_id;
l_territory_assign := fnd_profile.value_specific('CSM_SELECT_TASK_THRU_TERRITORY_ASSIGN'
, p_record.created_by
, l_responsibility_id
, l_csm_appl_id);
CSM_UTIL_PKG.log( 'Error in ' || g_object_name || '.APPLY_INSERT:'
|| ' ROOT ERROR: CS_SR_TASK_AUTOASSIGN_PKG.Assign_Task_Resource'
|| ' for PK ' || p_record.TASK_ID || l_msg_data,
g_object_name || '.APPLY_INSERT',
FND_LOG.LEVEL_ERROR );
CSM_UTIL_PKG.log( 'Error in ' || g_object_name || '.APPLY_INSERT:'
|| ' ROOT ERROR: jtf_tasks_pub.Create_Task'
|| ' for PK ' || p_record.TASK_ID,
g_object_name || '.APPLY_INSERT',
FND_LOG.LEVEL_ERROR );
CSM_UTIL_PKG.log( 'Exception in ' || g_object_name || '.APPLY_INSERT:'
|| ' for PK ' || p_record.task_id,
g_object_name || '.APPLY_INSERT',
FND_LOG.LEVEL_EXCEPTION );
END APPLY_INSERT;
an updated record is to be processed.
For CSM 11583, we support updates on the DFF columns
***/
PROCEDURE APPLY_UPDATE
(
p_record IN c_tasks_inq%ROWTYPE,
p_error_msg OUT NOCOPY VARCHAR2,
x_return_status IN OUT NOCOPY VARCHAR2
)
IS
CURSOR c_task ( b_task_id NUMBER ) IS
SELECT object_version_number
FROM jtf_tasks_b
WHERE task_id = b_task_id;
CURSOR c_last_update_date ( b_task_id NUMBER)
IS
SELECT LAST_UPDATE_DATE,
last_updated_by
FROM jtf_tasks_b
WHERE task_id = b_task_id;
r_last_update_date c_last_update_date%ROWTYPE;
OPEN c_last_update_date(b_task_id => p_record.task_id);
FETCH c_last_update_date INTO r_last_update_date;
IF c_last_update_date%FOUND THEN
IF (r_last_update_date.last_update_date <> p_record.server_last_update_date AND r_last_update_date.last_updated_by <> asg_base.get_user_id(p_record.clid$$cs)) THEN
CLOSE c_last_update_date;
CSM_UTIL_PKG.log( 'Record has stale data. Leaving ' || g_object_name || '.APPLY_INSERT:'
|| ' for PK ' || p_record.task_id,
g_object_name || '.APPLY_INSERT',
FND_LOG.LEVEL_PROCEDURE );
CSM_UTIL_PKG.log( 'No record found in Apps Database in ' || g_object_name || '.APPLY_INSERT:',
g_object_name || '.APPLY_INSERT',
FND_LOG.LEVEL_PROCEDURE );
CLOSE c_last_update_date;
JTF_TASKS_PUB.Update_Task (
p_api_version => 1.0,
p_init_msg_list => FND_API.G_TRUE,
p_commit => FND_API.G_FALSE,
p_task_id => p_record.TASK_ID,
p_description => p_record.description,
p_object_version_number => r_task.object_version_number,
p_planned_start_date => p_record.planned_start_date,
p_planned_end_date => p_record.planned_end_date,
p_scheduled_start_date => p_record.scheduled_start_date,
p_scheduled_end_date => p_record.scheduled_end_date,
-- bug 4248868
-- p_actual_start_date => p_record.actual_start_date,
-- p_actual_end_date => p_record.actual_end_date,
p_attribute1 => p_record.attribute1,
p_attribute2 => p_record.attribute2,
p_attribute3 => p_record.attribute3,
p_attribute4 => p_record.attribute4,
p_attribute5 => p_record.attribute5,
p_attribute6 => p_record.attribute6,
p_attribute7 => p_record.attribute7,
p_attribute8 => p_record.attribute8,
p_attribute9 => p_record.attribute9,
p_attribute10 => p_record.attribute10,
p_attribute11 => p_record.attribute11,
p_attribute12 => p_record.attribute12,
p_attribute13 => p_record.attribute13,
p_attribute14 => p_record.attribute14,
p_attribute15 => p_record.attribute15,
p_attribute_category => p_record.attribute_category,
x_return_status => x_return_status,
x_msg_count => l_msg_count,
x_msg_data => l_msg_data,
p_planned_effort => l_planned_effort,
p_planned_effort_uom => l_plan_eff_uom,
p_cust_account_id => p_record.cust_account_id,
p_task_priority_id => p_record.task_priority_id
);
CSM_UTIL_PKG.log( 'Error in ' || g_object_name || '.APPLY_UPDATE:'
|| ' ROOT ERROR: jtf_tasks_pub.UPDATE_TASK'
|| ' for PK ' || p_record.TASK_ID,
g_object_name || '.APPLY_UPDATE',
FND_LOG.LEVEL_ERROR );
CSM_UTIL_PKG.log( 'Exception in ' || g_object_name || '.APPLY_UPDATE:'
|| ' for PK ' || p_record.task_id,
g_object_name || '.APPLY_UPDATE',
FND_LOG.LEVEL_EXCEPTION );
END APPLY_UPDATE;
APPLY_INSERT
(
p_record,
p_error_msg,
x_return_status,
x_reject_row --Bug 5288413
);
ELSIF p_record.dmltype$$='U' THEN -- YLIAO: for 11583, we do support UPDATE
-- Process update
APPLY_UPDATE
(
p_record,
p_error_msg,
x_return_status
);
( 'Delete and Update is not supported for this entity'
|| ' for PK ' || p_record.task_id ,
g_object_name || '.APPLY_RECORD',
FND_LOG.LEVEL_ERROR);
/*** If Yes -> delete record from inqueue ***/
--Bug 5288413
IF l_reject_row THEN
CSM_UTIL_PKG.REJECT_RECORD
(
p_user_name,
p_tranid,
r_tasks.seqno$$,
r_tasks.task_id,
g_object_name,
g_pub_name,
l_error_msg,
l_return_status
);
CSM_UTIL_PKG.DELETE_RECORD
(
p_user_name,
p_tranid,
r_tasks.seqno$$,
r_tasks.task_id,
g_object_name,
g_pub_name,
l_error_msg,
l_return_status --Introduced new variable l_return_status since Defer
); --process doesn't depend on this delete_record API
/*** was delete/reject successful? ***/
IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
/*** If No -> rollback ***/
CSM_UTIL_PKG.LOG
( 'Deleting from inqueue failed, rolling back to savepoint'
|| ' for PK ' || r_tasks.task_id ,
g_object_name || '.APPLY_CLIENT_CHANGES',
FND_LOG.LEVEL_ERROR); -- put PK column here
/*** Record was not processed successfully or delete failed
-> defer and reject record ***/
CSM_UTIL_PKG.LOG
( 'Record not processed successfully, deferring and rejecting record'
|| ' for PK ' || r_tasks.task_id ,
g_object_name || '.APPLY_CLIENT_CHANGES',
FND_LOG.LEVEL_ERROR); -- put PK column here