The following lines contain the word 'select', 'insert', 'update' or 'delete':
SELECT *
FROM csm_debrief_headers_inq
WHERE tranid$$ = b_tranid
AND clid$$cs = b_user_name;
SELECT jtf_note_id, source_object_id
FROM csf_m_notes_inq
WHERE tranid$$ = b_tranid
AND clid$$cs = b_user_name
AND source_object_code = 'SD'
AND source_object_id = p_debrief_header_id
FOR UPDATE OF source_object_id NOWAIT;
SELECT debrief_header_id
FROM csf_debrief_headers
WHERE task_assignment_id = p_task_assignment_id;
SELECT file_id, pk1_value
FROM csf_m_lobs_inq
WHERE tranid$$ = b_tranid
AND clid$$cs = b_user_name
AND entity_name = 'CSF_DEBRIEF_HEADERS'
AND to_number(pk1_value) = p_debrief_header_id
FOR UPDATE OF pk1_value NOWAIT;
This procedure is called by APPLY_CLIENT_CHANGES when an inserted record is to be processed.
***/
PROCEDURE APPLY_INSERT
(
p_record IN c_debrief_headers%ROWTYPE,
p_error_msg out nocopy VARCHAR2,
x_return_status IN out nocopy VARCHAR2
) IS
cursor c_deb_head
( b_task_assignment_id number
)
is
select debrief_header_id
, debrief_number
, debrief_date
, debrief_status_id
, task_assignment_id
, last_updated_by
, last_update_date
, ATTRIBUTE1
, ATTRIBUTE2
, ATTRIBUTE3
, ATTRIBUTE4
, ATTRIBUTE5
, ATTRIBUTE6
, ATTRIBUTE7
, ATTRIBUTE8
, ATTRIBUTE9
, ATTRIBUTE10
, ATTRIBUTE11
, ATTRIBUTE12
, ATTRIBUTE13
, ATTRIBUTE14
, ATTRIBUTE15
, ATTRIBUTE_CATEGORY
from csf_debrief_headers
where task_assignment_id = b_task_assignment_id;
CSM_UTIL_PKG.log( 'Entered APPLY_INSERT for debrief_header_id'|| p_record.debrief_header_id,'CSM_DEBRIEF_HEADERS_PKG.APPLY_INSERT',FND_LOG.LEVEL_ERROR);
l_deb_rec.last_update_date := l_date;
l_deb_rec.last_updated_by := NVL(p_record.last_updated_by,FND_GLOBAL.USER_ID); --12.1
l_deb_rec.last_update_login := FND_GLOBAL.LOGIN_ID;
CSM_UTIL_PKG.log( 'Error in ' || g_object_name || '.APPLY_INSERT:'
|| ' ROOT ERROR: csf_debrief_pub.create_debrief'
|| ' for PK ' || p_record.DEBRIEF_HEADER_ID,'CSM_DEBRIEF_HEADERS_PKG.APPLY_INSERT',FND_LOG.LEVEL_ERROR);
,'CSM_DEBRIEF_HEADERS_PKG.APPLY_INSERT'
,FND_LOG.LEVEL_PROCEDURE); -- put PK column here
,'CSM_DEBRIEF_HEADERS_PKG.APPLY_INSERT'
,FND_LOG.LEVEL_PROCEDURE); -- put PK column here
,'CSM_DEBRIEF_HEADERS_PKG.APPLY_INSERT'
,FND_LOG.LEVEL_PROCEDURE); -- put PK column here
,'CSM_DEBRIEF_HEADERS_PKG.APPLY_INSERT'
,FND_LOG.LEVEL_PROCEDURE); -- put PK column here
,'CSM_DEBRIEF_HEADERS_PKG.APPLY_INSERT'
,FND_LOG.LEVEL_PROCEDURE); -- put PK column here
,'CSM_DEBRIEF_HEADERS_PKG.APPLY_INSERT'
,FND_LOG.LEVEL_PROCEDURE); -- put PK column here
IF(r_deb_head.last_update_date <> p_record.server_last_update_date AND r_deb_head.last_updated_by <> NVL(p_record.last_updated_by,asg_base.get_user_id(p_record.clid$$cs))) THEN --12.1
p_error_msg := 'UPWARD SYNC CONFLICT: CLIENT LOST For CSF_DEBRIEF_HEADERS: CSM_DEBRIEF_HEADERS_PKG.APPLY_UPDATE: P_KEY = '
|| p_record.debrief_header_id;
csm_util_pkg.log(p_error_msg, g_object_name || '.APPLY_UPDATE', FND_LOG.LEVEL_ERROR);
l_deb_rec.last_update_date := l_date;
l_deb_rec.last_updated_by := NVL(p_record.last_updated_by,FND_GLOBAL.USER_ID); --12.1
l_deb_rec.last_update_login := FND_GLOBAL.LOGIN_ID;
csf_debrief_pub.Update_debrief(
p_api_version_number => 1.0,
p_init_msg_list => FND_API.G_TRUE,
p_commit => FND_API.G_FALSE,
p_debrief_rec => l_deb_rec,
X_Return_Status => x_return_status,
X_Msg_Count => l_msg_count,
X_Msg_Data => l_msg_data
);
CSM_UTIL_PKG.log( 'Error in ' || g_object_name || '.APPLY_INSERT:'
|| ' ROOT ERROR: csf_debrief_pub.create_debrief'
|| ' for PK ' || r_deb_head.DEBRIEF_HEADER_ID,'CSM_DEBRIEF_HEADERS_PKG.APPLY_INSERT',FND_LOG.LEVEL_ERROR);
fnd_msg_pub.Add_Exc_Msg( g_object_name, 'APPLY_INSERT', sqlerrm);
CSM_UTIL_PKG.log( 'Exception in ' || g_object_name || '.APPLY_INSERT:'
|| ' for PK ' || p_record.DEBRIEF_HEADER_ID,'CSM_DEBRIEF_HEADERS_PKG.APPLY_INSERT',FND_LOG.LEVEL_EXCEPTION );
END APPLY_INSERT;
PROCEDURE APPLY_UPDATE
(
p_record IN c_debrief_headers%ROWTYPE,
p_error_msg OUT NOCOPY VARCHAR2,
x_return_status IN OUT NOCOPY VARCHAR2
) IS
CURSOR c_debrief_header
( b_debrief_header_id number,
b_task_assignment_id number
)
IS
SELECT dh.debrief_header_id
, dh.debrief_number
, dh.last_update_date
, dh.last_updated_by
FROM csf_debrief_headers dh
WHERE dh.debrief_header_id = b_debrief_header_id
UNION
SELECT dh.debrief_header_id
, dh.debrief_number
, dh.last_update_date
, dh.last_updated_by
FROM csf_debrief_headers dh
WHERE dh.task_assignment_id = b_task_assignment_id
;
CSM_UTIL_PKG.log( 'Entered APPLY_UPDATE for debrief_header_id'|| p_record.DEBRIEF_HEADER_ID,'CSM_DEBRIEF_HEADERS_PKG.APPLY_INSERT',FND_LOG.LEVEL_ERROR);
IF (r_debrief_header.last_update_date <> p_record.server_last_update_date AND r_debrief_header.last_updated_by <> NVL(p_record.last_updated_by,asg_base.get_user_id(p_record.clid$$cs))) THEN --12.1
CLOSE c_debrief_header;
CSM_UTIL_PKG.log( 'Record has stale data. Leaving ' || g_object_name || '.APPLY_UPDATE:'
|| ' for PK ' || p_record.debrief_header_id,
g_object_name || '.APPLY_UPDATE',
FND_LOG.LEVEL_PROCEDURE );
CSM_UTIL_PKG.log( 'No record found in Apps Database in ' || g_object_name || '.APPLY_UPDATE:',
g_object_name || '.APPLY_UPDATE',
FND_LOG.LEVEL_PROCEDURE );
l_deb_rec.last_update_date := l_date;
l_deb_rec.last_updated_by := NVL(p_record.last_updated_by,FND_GLOBAL.USER_ID); --12.1
l_deb_rec.last_update_login := FND_GLOBAL.LOGIN_ID;
csf_debrief_pub.Update_debrief(
p_api_version_number => 1.0,
p_init_msg_list => FND_API.G_TRUE,
p_commit => FND_API.G_FALSE,
p_debrief_rec => l_deb_rec,
X_Return_Status => x_return_status,
X_Msg_Count => l_msg_count,
X_Msg_Data => l_msg_data
);
CSM_UTIL_PKG.log( 'Error in ' || g_object_name || '.APPLY_UPDATE:'
|| ' ROOT ERROR: csf_debrief_pub.update_debrief'
|| ' for PK ' || p_record.DEBRIEF_HEADER_ID,'CSM_DEBRIEF_HEADERS_PKG.APPLY_UPDATE',FND_LOG.LEVEL_ERROR);
CSM_UTIL_PKG.log( 'Exception in ' || g_object_name || '.APPLY_UPDATE:'
|| ' for PK ' || p_record.debrief_header_id,
g_object_name || '.APPLY_UPDATE',
FND_LOG.LEVEL_EXCEPTION );
END APPLY_UPDATE;
APPLY_INSERT
(
p_record,
p_error_msg,
x_return_status
);
APPLY_UPDATE
(
p_record,
p_error_msg,
x_return_status
);
( 'Delete is not supported for this entity'
|| ' for PK ' || p_record.debrief_header_id ,'CSM_DEBRIEF_HEADERS_PKG.APPLY_RECORD',FND_LOG.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,
p_task_assignment_id IN NUMBER
) IS
l_process_status VARCHAR2(1);
OPEN c_cur FOR 'SELECT * FROM csm_debrief_headers_inq inq WHERE tranid$$ = '||p_tranid||' AND clid$$cs = '''||p_user_name
||''' AND TASK_ASSIGNMENT_ID NOT IN ('||CSM_UTIL_PKG.get_String_fromList(g_processed_assignment_list)||')';
OPEN c_cur FOR 'SELECT * FROM csm_debrief_headers_inq WHERE tranid$$ = '||p_tranid||' AND clid$$cs = '''||p_user_name
||''' AND TASK_ASSIGNMENT_ID='||p_task_assignment_id;
UPDATE csf_m_notes_inq
SET source_object_id = l_debrief_header_id
WHERE CURRENT OF c_debrief_notes;
UPDATE csf_m_lobs_inq
SET pk1_value = l_debrief_header_id
WHERE CURRENT OF c_debrief_signature;
/*** Yes -> delete record from inqueue ***/
CSM_UTIL_PKG.DELETE_RECORD
(
p_user_name,
p_tranid,
r_debrief_headers.seqno$$,
r_debrief_headers.debrief_header_id,
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 ***/
CSM_UTIL_PKG.LOG
( 'Deleting from inqueue failed, rolling back to savepoint'
|| ' for PK ' || r_debrief_headers.debrief_header_id,'CSM_DEBRIEF_HEADERS_PKG.APPLY_CLIENT_CHANGES',FND_LOG.LEVEL_ERROR ); -- put PK column here
UPDATE csf_m_notes_inq
SET source_object_id = l_debrief_header_id
WHERE CURRENT OF c_debrief_notes;
UPDATE csf_m_lobs_inq
SET pk1_value = l_debrief_header_id
WHERE CURRENT OF c_debrief_signature;
/*** 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_debrief_headers.debrief_header_id,'CSM_DEBRIEF_HEADERS_PKG.APPLY_CLIENT_CHANGES',FND_LOG.LEVEL_ERROR ); -- put PK column here
SELECT b.last_updated_by
FROM csf_debrief_headers b,
csm_debrief_headers_inq a
WHERE a.clid$$cs = l_user_name
AND tranid$$ = l_tran_id
AND seqno$$ = l_sequence
AND a.debrief_header_id = b.debrief_header_id ;