EBS 请求:点击“检视输出”按钮

请求正常完成后,点击“检视输出”可以在浏览器打开输出文件,大概了解一下系统原理。在这里插入图片描述

(event = ‘WHEN-BUTTON-PRESSED’) then
editor_pkg.report(:jobs.request_id, :jobs.save_output_flag);

editor_pkg.report 函数主要是根据请求的ID,创建输出的URL然后打开。
此函数在标准PLL文件“FNDCONC.PLL”中定义,只能在表单中调用,不能在数据库PL/SQL中调用。

库文件中:使用了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’);

每次点击“检视输出”都会产生一个不同的temp_Id,产生的URL举例如下:
http://EBS网址/OA_CGI/FNDWRR.exe?temp_id=2799922536

Q1: temp_id似乎可以客制产生?会不会影响“检视输出”按钮temp_id的产生?
A1: 产生temp_id的函数fnd_webfile.create_id在数据库中定义, 且此函数有将参数保存到表fnd_file_temp中:
在这里插入图片描述
我们运行一个请求,检视输出,然后查看产生temp_id参数:
在这里插入图片描述

--在PLSQL中运行函数,产生temp_id
--第三个参数10的意思是产生temp_id后,10s内可以使用temp_id产生文件
--标准点击“检视输出”按钮,浏览器立刻使用temp_id,所以默认的10s时间足够
--我们的测试可以将temp_id的lifetime改久一点
declare 
   id number;
begin
   id := fnd_webfile.create_id(
                '/u01/DEV/appldev/devcomn/admin/out/DEV_dev/o5499166.out',
                'FNDFS_DEV',
                10,           
                'application/vnd.ms-excel',
                5499166,
                'TEXT',
                'Y');
   dbms_output.put_line(id);
end;

–验证output的ID能否在浏览器中产生文件,结论: 可以
–注意:如果报错Authentication failed. 可能是temp_id过期,也有可能是URL只能使用一次的系统BUG
–temp_id不是流水号,不需要知道具体产生的逻辑,只需要知道每次产生的temp_id都是唯一的
–所以我们在PLSQL中调用函数产生temp_id,并不会影响点击“检视输出”按钮temp_id的产生


Q2: FNDWRR.exe是怎么运行的,是否可以修改它返还给浏览器的文件的名字?
A:FNDWRR全称FND Web Report Review,执行程序位于 F N D T O P / b i n 和 FND_TOP/bin和 FNDTOP/binOA_HTML/bin下(两个位置的文件是一样的)。这个程序的作用就是把服务器上的日志文件或者报表输出结果在客户端的浏览器展示出来,换句话说就是客户端通过这个程序来访问服务器上的文件

A:在PLSQL中运行函数产生temp_id后,修改并行程式处的请求名称,此时在浏览器中访问文件,
文件名称是更新后的请求名+日期,所以文件名应该是运行FNDWRR.exe时产生的,并不能客制修改。


Q3: FNDWRR.exe客制测试?
不建议使用 FNDWRR.exe访问服务器上的文件,而是使用WEB.SHOW_DOCUMENT

测试1:参数请求ID设置为NULL依旧可以产生temp_id,并通过FNDWRR.exe访问到。
测试2:将输出文件移到另一个目录,也可以产生temp_id,并通过FNDWRR.exe访问到。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值