您的位置:首页 > 数据库 > Oracle

TEC1401.Report开发技术总结 - 第五章 使用Oracle Reports开发报表-在EBS应用中注册Report的注意事项(4/4)

2016-12-28 01:55 1076 查看
 

第五章   在EBS应用中注册Report的注意事项


1.     文本模式报表

在Oracle Applications可以输出的报表有两种模式:文本和图形.
输出格式分别为:文本:Text;图形:pdf,html,postscript
在开发文本模式报表时,一般需要将报表的设计模式也更改为字符模式。
方法:双击报表模型,在属性选项板中将属性“在字符单元中设计”设置为“是”。




2.     避免输出中文报错

如果数据库编码与XML输出编码方式不一致,为了避免输出中文报错,需要在在报表属性面板中指定XML Prolog的encoding(指定为数据库的字符集)。




3.     报表在EBS服务器端的初始化

如果报表查询中使用了同义词。对同义词的访问受到VPD影响,按照r12devg.pdf要求,报表必须做三件事才能让你对同义词的访问有数据:
1)     必须有参数:P_CONC_REQUEST_ID设置数据类型为“NUMBER”,宽度20:



2)     必须在触发器before
report中调用:SRW.USER_EXIT('FND SRWINIT');



3)     必须在触发器after
report中调用:SRW.USER_EXIT('FND SRWEXIT');



第1条是针对R12添加的,因为第2、3条的方法需要使用到这个参数。
第2、3条在以前11i中也有要求,不过是在需要访问profile等功能时才需要。
一般情况下,我们建议报表设计时SQL数据源直接取到表(在R12中主要是同义词)而不是视图(View)主要是因为View可能关联了太多你的报表不需要的表,影响性能;
基于同义词取数的报表输出自然有安全性控制功能(比如根据在责任层设置的组织访问安全性来控制报表输出的数据安全性);但因为直接在客户端运行报表时,执行SRW.USER_EXIT会报错,无法完成在本机运行并输出xml结果,不利于我们的RTF模板开发。所以一般在开发时需要在before
report中注释掉SRW.USER_EXIT,改用模拟登录脚本,在部署时再改回来。


4.     报表在本地的初始化

模拟登录脚本需要在触发器before report中执行fnd_global.apps_initialize()和MO_GLOBAL.init(),有关这两个API的详细用法可以直接查看package源代码。



MO_GLOBAL.init()是R12模拟登录新增的,11i中不需要。
(我在R12的UAT环境中测试的时候注释了MO_GLOBAL.init()之后,报表也是OK的)
User_id、resp_id、resp_appl_id的值都可以从界面的Examine中获取
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐