Developement/DataBase
concurrent program을 이용한 procedure 비동기 호출
highheat
2008. 12. 11. 14:38
CREATE OR REPLACE PACKAGE eap_async_call_pkg
/*******************************************************************************
* PROCEDURE : eap_async_call_pkg *
* DESCRIPTIONS : 프로시저의 비동기 처리를 담당 *
* *
********************************************************************************
* DATE AUTHOR DESCRIPTION *
*-------------------------------------------------------------------------------
* 2008.12.11 sclee Initial Release *
*******************************************************************************/
IS
-----------------------------------------------------------
PROCEDURE p_execute(p_exec_str IN VARCHAR2);
PROCEDURE p_wrapper(p_exec_str IN VARCHAR2, p_request_id OUT NUMBER);
END eap_async_call_pkg;
/
CREATE OR REPLACE PACKAGE BODY eap_async_call_pkg IS
/*******************************************************************************
* PROCEDURE : p_execute *
* DESCRIPTIONS : 프로시저를 실행시키는 concurrent program *
********************************************************************************
* DATE AUTHOR DESCRIPTION *
*-------------------------------------------------------------------------------
* 2008.12.11 sclee Initial Release *
*******************************************************************************/
PROCEDURE p_execute(p_exec_str IN VARCHAR2) IS
BEGIN
EXECUTE IMMEDIATE p_exec_str;
END p_execute;
/*******************************************************************************
* PROCEDURE : p_wrapper *
* DESCRIPTIONS : client쪽에서 비동기로 프로시처를 호출시 사용되어짐 *
********************************************************************************
* DATE AUTHOR DESCRIPTION *
*-------------------------------------------------------------------------------
* 2008.12.11 sclee Initial Release *
*******************************************************************************/
PROCEDURE p_wrapper(p_exec_str IN VARCHAR2, p_request_id OUT NUMBER) IS
--concurrent실행관련
l_user_id NUMBER;
l_appl_resp_id NUMBER;
l_resp_id NUMBER;
BEGIN
--concurrent실행권한설정
SELECT user_id INTO l_user_id FROM fnd_user WHERE user_name = '유저명';
SELECT application_id
INTO l_appl_resp_id
FROM fnd_application
WHERE application_short_name = 'JA'
AND rownum = 1;
SELECT responsibility_id
INTO l_resp_id
FROM fnd_user_resp_groups
WHERE user_id = l_user_id
AND responsibility_application_id = l_appl_resp_id
AND rownum = 1;
fnd_global.apps_initialize(l_user_id, l_resp_id, l_appl_resp_id);
--p_execute(p_exec_str);
p_request_id := fnd_request.submit_request('EAP',
'EAP_ASYNC_CALL_PKG.P_EXECUTE',
NULL,
NULL,
FALSE,
p_exec_str,
chr(0),
'',
'',
'',
'',
'',
'',
'',
'',
'',
'',
'',
'',
'',
'',
'',
'',
'',
'',
'',
'',
'',
'',
'',
'',
'',
'',
'',
'',
'',
'',
'',
'',
'',
'',
'',
'',
'',
'',
'',
'',
'',
'',
'',
'',
'',
'',
'',
'',
'',
'',
'',
'',
'',
'',
'',
'',
'',
'',
'',
'',
'',
'',
'',
'',
'',
'',
'',
'',
'',
'',
'',
'',
'',
'',
'',
'',
'',
'',
'',
'',
'',
'',
'',
'',
'',
'',
'',
'',
'',
'',
'',
'',
'',
'',
'',
'',
'',
'');
END p_wrapper;
-------------------------------------------------------------------------------
END eap_async_call_pkg;
--------------------------------------------------------------------------------
/