概述
DECLARE
p_mode_request_id NUMBER := 1;
p_errbuf VARCHAR2(250);
p_retcode NUMBER;
lv_msg VARCHAR2(50); --出错信息
l_phase VARCHAR2(50); --返回结果
l_status VARCHAR2(50); --返回状态
l_dev_phase VARCHAR2(50);
l_dev_status VARCHAR2(50);
l_message VARCHAR2(100); --请求返回信息
l_wait_outcome BOOLEAN; --等待请求返回结果
BEGIN
p_mode_request_id := apps.fnd_request.submit_request(application => 'CUX'
, --此处为模块的名称,根据需要改为自己程序所在模块简称
program => 'CUX_BOM_COVER_PRINT_PKG'
, --此处为要提交的并发程序的名称
description => '盘点折算打印'
,start_time => ''
,sub_request => FALSE
,argument1 => :query_find.organization_id
, --原来包中的手工或FORM中提交请求的标识,此处设为0
argument2 => to_char(:query_find.creation_date_f
,'yyyy-MM-dd HH24:mi:ss')
,argument3 => to_char(:query_find.creation_date_t
,'yyyy-MM-dd HH24:mi:ss')
,argument4 => :query_find.item_number_f
,argument5 => :query_find.item_number_t
,argument6 => NULL);
--如果返回0,则报错
IF (p_mode_request_id = 0) THEN
fnd_message.retrieve;
fnd_message.error;
ELSE
COMMIT;
END IF;
--等待请求完成,每5秒检查一次,最长等待60秒
l_wait_outcome := apps.fnd_concurrent.wait_for_request(request_id => p_mode_request_id
,INTERVAL => 5
,max_wait => 60
,phase => l_phase
,status => l_status
,dev_phase => l_dev_phase
,dev_status => l_dev_status
,message => l_message);
--如果返回结果为COMPLETE,状态为NORMAL,显示输出报表,否则报错
IF (upper(l_dev_phase) = 'COMPLETE' AND upper(l_dev_status) = 'NORMAL') THEN
editor_pkg.report(p_mode_request_id
,'Y');
ELSE
lv_msg := '盘点折算打印: [' || to_char(SYSDATE
,'YYYY/MM/DD HH24:MI:SS') || '] !';
fnd_message.set_string(lv_msg);
fnd_message.show;
END IF;
END;
EDITOR_PKG.report功能主要是根据请求的ID,创建输出的URL然后打开。
库文件中:使用了editor_pkg2.browser_show
PROCEDURE browser_show(
fname varchar2,
node varchar2,
mtype varchar2,
req_id number default null)
获取路径:
fnd_profile.get('APPS_CGI_AGENT', base);
创建temp_id
id := fnd_webfile.create_id(fname,
svc,
10,
mtype,
req_id,
x_mode,
'Y');
获取URL
url := base || 'FNDWRR.exe?' || 'temp_id=' || id;
打开URL:
fnd_utilities.open_url(url);
set_application_property(CURSOR_STYLE,'DEFAULT');
值得注意的是系统产生的URL与系统的安全性有关。
如果将查看输出后弹出界面的URL(每次查看输出后面URL的temp_id都不同)在另一个网页标签打开后会提示:
Authentication failed.
如果有类似需求,将请求的输出URL通过自动发邮件给用户,用户在点开URL后也会提示权限呢验证问题。
所以类似的发邮件请求可以考虑开发程序包,将查询的数据通过拼接HTML内容作为正文发送邮件。
最后
以上就是风趣蓝天为你收集整理的EDITOR_PKG.report根据请求的ID,创建输出的URL然后打开的全部内容,希望文章能够帮你解决EDITOR_PKG.report根据请求的ID,创建输出的URL然后打开所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复