2014-05-31 Created By BaoXinjian


Oracle Report Builder  因落伍的技术和糟糕的交互性,特别是无法随心所欲的进行排版,逐渐被淘汰,而BI(XML) Publisher  也是其中的一种替代技术, 此文介绍了如何将Report Builder建立的RDF文件转换成最新的XML Publisher所使用的xml data definition 和 rtf template definition,从而实现数据源和输出模板分离,从而将原有难易维护的report builder 替代为易维护的XML Publisher/

Oracle提供了一种做法,将Oracle RDF文件的Data Model和Layout Model进行分离,转为BI Publisher的形式

  • 在转换过程主要有6个文件

    • rdf -> 原始需转换的旧格式报表
    • xml-rdf -> 一个中间文件, 一个非常大的xml文件,其中包含了数据源定义, 输出模板定义, 和Report中的Program Unit及触发器PLSQL包定义
    • rtf -> 转换后新的BI Publisher 的template文件
    • xml-> 转换后新的BI Publisher 的data 定义
    • plsql -> Report中定义的program unit, 和在触发器公式列中定义的PLSQL
  • 所需的工具
    • rwconverter.exe  本地Report Builder安装路径bin下 / 作用将rdf文件转化为xml-rdf文件
    • java oracle.apps.xdo.rdfparser.DataTemplateGenerator  服务器上$JAVA_TOP / 作用数据定义模板产生
    • java oracle.apps.xdo.rdfparser.RTFTemplateGenerator  服务器上$JAVA_TOP / 作用布局模板产生


需求: 将原有客制化的客制化报表(invoice rdf) 通过工具 转为XML Publisher形式,产生xml data definition 和 rtf template definition


    1. 下载需转为xml报表的rdf file

2. 通过rwconverter.exe将rdf转为xml文件,此文件定义了xml data defination, rdf data template, program unit

3. 关键一步,进行数据模型转换, 转为bxjrpinvoice.xml后,将此文件上传至server,

(1). 以下语句转为为xml data definition 

(2). $JAVA_TOP: java oracle.apps.xdo.rdfparser.DataTemplateGenerator /usr/tmp/bxjrpinvoic.xml

(3). 产生三个文件bxjrpinvoice_template.xml/bxjrpinvoiceB.pls/bxjrpinvoiceB.pls

4. 关键一步,进行布局模型转换,转为bxjrpinvoice.xml后,将此文件上传至server,

(1). 通过以下语句转为为rdf data defination

(2). $JAVA_TOP: java oracle.apps.xdo.rdfparser.RTFTemplateGenerator /usr/tmp/bxjrpinvoic.xml

(3). 产生一个文件bxjrpinvoice.rtf

5. 将产生的产生的5个文件按XML Publisher的做法进行注册

(1). 将5个文件存放至一个文件下

(2). 注册产生的pls文件至数据库, bxjinvoiceB.pls & bxjinvoiceS.pls

(3). 注册并非程式,保持参数的一致性

(4). 注册DataDefinitions, bxjrpinvoice_template.xml

(5). 注册Templates

(6). 运行程式,以XML Publisher的注册方式进行运行

Step1. 下载需转为xml报表的rdf file