The following lines contain the word 'select', 'insert', 'update' or 'delete':
Makes corresponding entries in to SDQ for all deletes, updates and inserts
Refreshes for all the users
*/
procedure Refresh_Acc (p_status OUT NOCOPY VARCHAR2,
p_message OUT NOCOPY VARCHAR2)
IS
PRAGMA AUTONOMOUS_TRANSACTION;
l_updates_cur CSM_UTIL_PKG.Changed_Records_Cur_Type;
l_inserts_cur CSM_UTIL_PKG.Changed_Records_Cur_Type;
l_prog_update_date jtm_con_request_data.last_run_date%TYPE;
SELECT nvl(last_run_date, (sysdate - 365*50))
FROM jtm_con_request_data
WHERE package_name = 'CSM_CURRENCY_EVENT_PKG'
AND procedure_name = 'REFRESH_ACC';
CURSOR l_deletes_csr(p_last_upd_date date)
IS
SELECT acc.access_id, curr.currency_code, curr_tl.language
FROM fnd_currencies curr,
fnd_currencies_tl curr_tl,
csm_currencies_acc acc
WHERE curr.currency_code = curr_tl.currency_code
AND curr.currency_code = acc.currency_code
AND ((SYSDATE not BETWEEN nvl(curr.start_date_active, sysdate) AND nvl(curr.end_date_active, sysdate))
OR curr.enabled_flag <> 'Y')
AND ((curr.creation_date < p_last_upd_date AND curr.last_update_date > p_last_upd_date)
OR (curr_tl.creation_date < p_last_upd_date AND curr_tl.last_update_date > p_last_upd_date)
);
select csm_currencies_acc_s.NEXTVAL from dual;
l_curr_last_update_date fnd_currencies.LAST_UPDATE_DATE%TYPE;
l_curr_tl_last_update_date fnd_currencies.LAST_UPDATE_DATE%TYPE;
l_max_update_date fnd_currencies.LAST_UPDATE_DATE%TYPE;
FETCH l_last_run_date_csr INTO l_prog_update_date;
/****** DELETES **********/
--open the cursor
open l_deletes_csr(l_prog_update_date);
FETCH l_deletes_csr INTO l_access_id, l_currency_code, l_language;
EXIT WHEN l_deletes_csr%NOTFOUND;
DELETE FROM CSM_CURRENCIES_ACC
WHERE ACCESS_ID = l_access_id;
close l_deletes_csr;
/******* UPDATES **********/
--generate sql for updates
l_dsql :=
'select acc.access_id, curr_tl.language, curr.last_update_date, curr_tl.last_update_date
from csm_currencies_acc acc,
fnd_currencies curr,
fnd_currencies_tl curr_tl
where acc.currency_code = curr.currency_code
and curr_tl.currency_code = curr.currency_code
AND SYSDATE BETWEEN nvl(curr.start_date_active, sysdate) AND nvl(curr.end_date_active, sysdate)
AND curr.enabled_flag = ''Y''
AND (curr.last_update_date > :1
or curr_tl.last_update_date > :2
)';
open l_updates_cur for l_dsql USING l_prog_update_date, l_prog_update_date;
FETCH l_updates_cur INTO l_access_id, l_language, l_curr_last_update_date, l_curr_tl_last_update_date;
EXIT WHEN l_updates_cur%NOTFOUND;
IF (l_curr_last_update_date > l_curr_tl_last_update_date) THEN
l_max_update_date := l_curr_last_update_date;
l_max_update_date := l_curr_tl_last_update_date;
UPDATE CSM_BUS_PROCESS_TXNS_ACC
SET LAST_UPDATE_DATE = l_run_date --l_max_update_date
WHERE ACCESS_ID = l_access_id;
close l_updates_cur;
/****** INSERTS **********/
--generate sql for inserts
l_dsql :=
'SELECT curr.currency_code, curr.last_update_date
FROM fnd_currencies curr
WHERE SYSDATE BETWEEN nvl(curr.start_date_active, sysdate) AND nvl(curr.end_date_active, sysdate)
AND curr.enabled_flag = ''Y''
AND NOT EXISTS
(SELECT 1
FROM CSM_CURRENCIES_ACC acc
WHERE acc.currency_code = curr.currency_code
)';
open l_inserts_cur for l_dsql;
FETCH l_inserts_cur INTO l_currency_code, l_curr_last_update_date;
EXIT WHEN l_inserts_cur%NOTFOUND;
INSERT INTO csm_currencies_acc(currency_code, access_id, CREATED_BY, CREATION_DATE, LAST_UPDATED_BY,
LAST_UPDATE_DATE, LAST_UPDATE_LOGIN)
VALUES (l_currency_code, l_access_id, fnd_global.user_id, sysdate, fnd_global.user_id,
l_curr_last_update_date, fnd_global.login_id);
close l_inserts_cur;
UPDATE jtm_con_request_data
SET last_run_date = l_run_date
WHERE package_name = 'CSM_CURRENCY_EVENT_PKG'
AND procedure_name = 'REFRESH_ACC';
l_prog_update_date asg_pub_item.last_run_date%TYPE;
SELECT nvl(last_run_date, (sysdate - 365*50))
FROM asg_pub_item
WHERE name = p_pub_item
AND pub_name = 'SERVICEP';
SELECT curr.currency_code, curr_tl.language, curr.last_update_date
FROM fnd_currencies curr,
fnd_currencies_tl curr_tl
WHERE curr.currency_code = curr_tl.currency_code
AND SYSDATE BETWEEN nvl(curr.start_date_active, sysdate) AND nvl(curr.end_date_active, sysdate)
AND curr.enabled_flag = 'Y'
AND (curr.creation_date > p_last_upd_date
OR curr_tl.creation_date > p_last_upd_date);
SELECT curr.currency_code, curr_tl.language
FROM fnd_currencies curr,
fnd_currencies_tl curr_tl
WHERE curr.currency_code = curr_tl.currency_code
AND SYSDATE BETWEEN nvl(curr.start_date_active, sysdate) AND nvl(curr.end_date_active, sysdate)
AND curr.enabled_flag = 'Y'
AND ((curr.creation_date < p_last_upd_date AND curr.last_update_date > p_last_upd_date)
OR (curr_tl.creation_date < p_last_upd_date AND curr_tl.last_update_date > p_last_upd_date)
);
SELECT curr.currency_code, curr_tl.language
FROM fnd_currencies curr,
fnd_currencies_tl curr_tl
WHERE curr.currency_code = curr_tl.currency_code
AND ((SYSDATE not BETWEEN nvl(curr.start_date_active, sysdate) AND nvl(curr.end_date_active, sysdate))
OR curr.enabled_flag <> 'Y')
AND ((curr.creation_date < p_last_upd_date AND curr.last_update_date > p_last_upd_date)
OR (curr_tl.creation_date < p_last_upd_date AND curr_tl.last_update_date > p_last_upd_date)
);
FETCH l_last_run_date_csr INTO l_prog_update_date;
FOR r_currency_ins_rec IN l_currency_ins_csr(l_prog_update_date) LOOP
--get the users with this language
l_tl_omfs_palm_resource_list := l_null_resource_list;
FOR r_currency_upd_rec IN l_currency_upd_csr(l_prog_update_date) LOOP
--get the users with this language
l_tl_omfs_palm_resource_list := l_null_resource_list;
FOR r_currency_del_rec IN l_currency_del_csr(l_prog_update_date) LOOP
--get the users with this language
l_tl_omfs_palm_resource_list := l_null_resource_list;
UPDATE asg_pub_item
SET last_run_date = l_run_date
WHERE name = l_pub_item
AND pub_name = 'SERVICEP';