TEC1401.Report开发技术总结 - 第十章 使用BI Publisher开发报表-其他注意事项(5/5)

 

第十章   其他注意事项

1.     BIP报表常见运行异常

BIP报表需要调用“输出处理提交程序”来完成数据源和模板的结合。

一般BIP报表运行完成后,状态为warning,其原因大概有以下3类:

1."输出提交处理程序"(Output Post Processor)未运行(状态为非active),或者请求未生成结果;

2."输出提交处理程序"(Output Post Processor)正在运行(状态为active),请求未生成结果;

3.并发管理器延时等待"输出提交处理程序"(Output Post Processor)完成该请求;

提示内容:

1. +————- 1) PUBLISH ————-+

Unable to find an Output Post Processor service to post-process request [request_id].

 

Check that the Output Post Processor service is running.

+————————————–+

…;

2. +————- 1) PUBLISH ————-+

The Output Post-processor is running but has not picked up

this request.No further attempts will be made to post-process

this request, and the request will be marked with Warning status.

Setting the profile option Concurrent: OPP Response Timeout

to a higher value may be necessary.

+————————————–+

3.+————- 1) PUBLISH ————-+

The concurrent manager has timed out waiting for the Output Post-processor

to finish this request.

 

Check that there are enough Output Post-processor service processes running.

More information may be found in the service process logfile.

+————————————–+

…;

 

解决思路:

首先,在并发管理器中确认"输出提交处理程序"(Output Post Processor)的状态为有效(enable/active)

其次,如果确认"输出提交处理程序"状态为有效,选择"并发"-->"管理器"-->"管理"-->选择"输出提交处理程序"(Output Post Processor)-->点击"处理"按钮察看请求状态是否为有效(ACTIVE),对于"输出提交处理程序""并发管理器"处理过程中获取请求而言,一般至少需要花费120秒(默认)所以*将配置"文件并发:OPP回应超时"(Concurrent:OPP Response Timeout)的值增大;

再次,并发管理器运行成功后调用OPP,但OPP花费太多时间处理该job,一般而言,该延时时间一般取决于XML数据文件的大小、模版的负载程度、服务器的执行时间等因素,对于BIP引擎生成输出文件,其默认的处理延时时间至少为300,所以如果遇到上面第3种的报错,*请增加配置文件"并发:OPP处理超时"("Concurrent:OPP Process Timeout")的值;

最后,如果设置都没有问题,则需要取得OOPlog文件来分析。

2.     程序中提交BIP输出的请求

若要利用程序提交XML Publisher输出的请求,之前要先用Fnd_Request.Add_Layout添加并发程序对应的模版(实际将写入表fnd_conc_pp_actionsaction_type6的记录就是),再调用Fnd_Request.Submit

示例:

DECLARE
  l_request_id NUMBER;
  l_result     BOOLEAN;
BEGIN
  fnd_global.apps_initialize(user_id => 12493, resp_id => 50599, resp_appl_id => 660);
  MO_GLOBAL.init('ONT');
  l_result := fnd_request.add_layout(template_appl_name => 'ONT',  --Short Name
                                     template_code      => 'CUX_WX_OMRPT01', --Short Name
                                     template_language  => 'zh',--fnd_natural_languages_vl.language_code
                                     template_territory => '00', --
                                     output_format      => 'PDF'
                                      --lookup_type = 'XDO_TEMPLATE_TYPE');
  l_request_id := fnd_request.submit_request(application => 'ONT',
                                             program     => 'CUX_WX_OMRPT01',
                                             description => '',
                                             start_time  => '',
                                             sub_request => false,
                                             argument1   => chr(29480),
                                             argument2   => chr(29485));
  dbms_output.put_line(l_request_id);
END;

Ø 设计时:

1)     安装字体比如条码字体到Windows,这样WordBIP Desktop都可以使用。

操作:直接拷贝到X:\WINDOWS\Fonts下。

2)     配置BI Publisher,加入上一步的字体名称和字体路径。

操作:创建配置文件:X:\Program Files (x86)\Oracle\BI Publisher\BI Publisher Desktop\Template Builder for Word\config\xdo.cfg(复制xdo example.cfg)

样例:

<font family="3 of 9 Barcode" style="normal" weight="normal">
       <truetype path="C:\WINDOWS\fonts\3of9.ttf" />
</font>

Ø 运行时:

1)     中文字体

默认情况下,XMLP不支持中文,原因仅仅是缺少字体。因为XMLP采用Java编写,理论上Java支持任何语种。EBS自带了中文字体,但没有安装到XMLP目录。为此需要做下简单拷贝即可:

cp %FND_TOP%/resource/ALBAN*.ttf $AF_JRE_TOP/jre/lib/fonts

2)     条码字体

首先将字体copy$AF_JRE_TOP/jre/lib/fonts目录下;

然后修改BIP的配置文件$AF_JRE_TOP/jre/lib/xdo.cfg,添加新字体。(同客户端)

另外,有些条码在应用字体前,需要进行预处理,比如Code128a,这个时候需要在模版中设置额外的命令:

a)     登记条码预处理类,如将BarcodeUtil注册为XMLPBarVendor

<?register-barcode-vendor:’

oracle.apps.xdo.template.rtf.util.barcoder.BarcodeUtil’;’XMLPBarVendor’?>

b)     预处理数据,如用XMLPBarVendorElement_Name格式化为Code128a

<?format-barcode:Element_Name;’Code128a’;’XMLPBarVendor’?>

4.     浏览器配置

EBS中,点击请求的Output,弹出的那个窗口,就是标准的APPSVIEWER,不过其功能实在烂透了,只能看看标准的文本,其他Rich文本就得借助“工具”/“复制”,送到客户端来查看了,那么这里面到底是怎么一个过程呢?

1)     依据fnd_cp_opp_req.published_request(req_id)判断请求是否发布,如果是,那么文件名和类型在表fnd_conc_req_outputs中,否则在fnd_concurrent_requests

2)     根据文件类型和Profile设置,判断使用APPSVIEWER还是浏览器来浏览。

3)     如果是浏览器,那么根据文件类型和系统管员中的View定义,获得MIME类型,发送给浏览器,这样客户端如IE就知道该用什么图标、什么程序来打开了;如果有多个MIME类型,那么首先弹出窗口让用户选择一个。

注:如果是文本文件如TextCSVHTML等,其会自做聪明的认为,该文件的字符集同环境变量中的字符集。

4)     如果是APPSVIEWER,那么就先查看,不管是不是乱码;点击“工具”/“复制”后参照3的流程。

注:XMLPJava写成的“浏览器”,可以集成到OAF页面中!

Ø 浏览器Profile

Profile

说明

 

 

Viewer: Text

字符模式Viewer,也是默认的Viewer;不设置的话就是APPSVIEWER,设置的话只能是“Browser

Viewer: Application for HTML

HTMLViewer。如果是Web应用,则系统直接写死使用“Browser”,这个Profile不起作用,我们通常使用的模式都是Web应用

Viewer: Application for PDF

PDFViewer。意义同上

Viewer: Application for PostScript

PSViewer。意义同上

Viewer: Application for PCL

PCLViewer,但这个Profile没用!

Viewer: Application for Text

TextViewer,但这个Profile没用!

Viewer: Application for XML

XMLViewer,但这个Profile没用!

Viewer: Default Font Size

APPSVIEWER查看时的字体大小,没啥用

注意,这些Profile设置后,需要重新启动Form Server,因为它们被请求Form保存到Global变量中。

Ø 浏览器配置:

使用“系统管理员”职责登陆,安装 ->浏览器选项:


这里主要维护文件类型和MIME类型的对应关系。ApacheConf目录有个mime.types文件,其中有比较完整的MIME类型。

同一个文件类型,我们可以设置多个Mime类型,这样在打开的时候,系统会提示到底使用哪一个。如我们为HTML也添加了一个application/msword类型后,点击Output会弹出窗口,让我们选择一个。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值