在PL/SQL中調用Oracle ERP請求(一)-提交單個請求
轉自:
http://zhaisx.iteye.com/blog/803274
PROCEDURE prc_do_import_request(prm_org IN NUMBER,
prm_appcode OUT NUMBER,
prm_appmsg OUT VARCHAR2) IS
custom_exception EXCEPTION;
success BOOLEAN;
v_request_id NUMBER;
v_phase VARCHAR2(30);
v_status VARCHAR2(30);
v_dev_phase VARCHAR2(30);
v_dev_status VARCHAR2(30);
v_message VARCHAR2(1000);
v_request_flag BOOLEAN;
v_start_time VARCHAR2(30);
BEGIN
prm_appcode := 0;
--初始化設置
fnd_global.apps_initialize(user_id => global_user_id,--用戶ID
resp_id => global_resp_id, --責任ID
resp_appl_id => global_resp_appl_id); --應用ID
--設置打印參數
success := fnd_request.set_print_options(printer => global_printer,
style => global_style,
copies => global_copies);
IF NOT success THEN
RAISE custom_exception;
END IF;
v_start_time := to_char(SYSDATE, 'DD-MON-YYYY HH24:MI:SS');
--調用請求
v_request_id := fnd_request.submit_request('INV', --應用
'INCOIN', --程序
'', --程序說明
v_start_time, --開始時間
FALSE, --是否作為子請求提交,該請求如果是被其它請求調用設為TRUE,否則為FALSE
prm_org, --自定義參數1:組織機構
'1', --自定義參數2 :
'1', --自定義參數3:
'1', --自定義參數4:
'1', --自定義參數5:
'1', --自定義參數6:
'1', --自定義參數7:
chr(0)); --結束標識
IF v_request_id = 0 THEN
RAISE custom_exception;
ELSE
COMMIT;
END IF;
--等待
v_request_flag := fnd_concurrent.wait_for_request(request_id => v_request_id,--返回的請求ID
INTERVAL => 5, --重復檢測時間差
max_wait => 0, --最長等待時間,0為一直等待
phase => v_phase,
status => v_status,
dev_phase => v_dev_phase,
dev_status => v_dev_status,
message => v_message);
IF v_request_flag THEN
IF v_dev_status = 'NORMAL' THEN
NULL;
ELSE
RAISE custom_exception;
END IF;
ELSE
RAISE custom_exception;
END IF;
EXCEPTION
WHEN custom_exception THEN
prm_appcode := -1;
prm_appmsg := '錯誤提示:導入ERP正式表出錯!' || SQLERRM;
WHEN OTHERS THEN
prm_appcode := -1;
prm_appmsg := '錯誤提示:導入ERP正式表出錯!' || SQLERRM;
END prc_do_import_request;