4.提交请求功能
procedure prc_do_price_request(prm_user_number in varchar2, prm_appcode out number, prm_appmsg out varchar2) is
e_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);
v_user_id number;
begin
prm_appcode := 0;
v_user_id := fnd_get_user_id(prm_user_number);
--初始化设置
fnd_global.apps_initialize(v_user_id, --用户ID
g_resp_id, --责任ID
g_resp_appl_id); --应用ID
--设置打印参数
success := fnd_request.set_print_options(g_printer, g_style, g_copies);
if not success then
raise e_exception;
end if;
v_start_time := to_char(sysdate, 'DD-MON-YYYY HH24:MI:SS');
--调用请求
v_request_id := fnd_request.submit_request('QP', --应用
'QPXVBLK', --程序
null, --程序说明
v_start_time, --开始时间
false, --是否作为子请求提交,该请求如果是被其它请求调用设为TRUE,否则为FALSE
'PRL', --实体--*--1
null, --实体名称--2
null, --流程标识--3
null, --流程类型--4
'N', --流程父项--5
1, --线程数--6
'N', --派生请求--7
null, --请求编号--8
'Y', --打开调试--9
chr(0)); --结束标识
if v_request_id = 0 then
raise e_exception;
else
commit;
end if;
--等待
v_request_flag := fnd_concurrent.wait_for_request(request_id => v_request_id, --返回的请求ID
interval => 2, --重复检测时间差
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
-- OR v_dev_status = 'WARNING'
null;
else
raise e_exception;
end if;
else
raise e_exception;
end if;
exception
when e_exception then
rollback;
prm_appcode := -1;
prm_appmsg := '错误提示:导入销售订单时出错!(request)' || sqlerrm;
return;
when others then
rollback;
prm_appcode := -1;
prm_appmsg := '错误提示:导入销售订单时出错!(request)' || sqlerrm;
return;
end prc_do_price_request;