Oracle Report迁移到BI Publisher

在Oracle Report中,数据模型和布局是在一个RDF文件中,而在BI Publisher中,数据模型和模板已经分离出来,因此Oracle提供了从Oracle Report转换到BI Publisher的转换工具,以便我们可以转向新的报表方式。

 

为了转换Oracle Report RDF文件到BI Publisher中的数据源和布局文件,需要进行两个步骤的转换工作:

  1. 将RDF文件转换为XML格式
  2. 将XML格式的报表文件转换为数据模型文件和布局文件

 

下面是转换示意图:

Migrate_Report_BIPubliser

 

一、前提条件

为了使BIP工具能够对RDF报表进行转换,必须满足以下条件:

  1. Oracle Report 9i以上的报表
  2. 需要先将RDF文件转换为XML格式

 

使用Oracle Report Designer另存功能或者位于$ORACLE_HOME/bin目录下的Oracle Report工具 rwconverter将RDF文件转换为XML格式的文件,如下面的例子:

D:/Oracle_home/BIN>rwconverter batch=yes source= h:/reports/raxinv.rdf dest= h:/reports/raxinv.xml dtype=xmlfile overwrite=yes

 

二、数据模型转换

使用DataTemplateGenerator API将Oracle Report的数据模型和PL/SQL逻辑转换为BIP中的数据模板和PL/SQL数据包。

API可以通过命令行或者脚本来调用,调用成功后会生成如下的文件:

  1. 数据模板(REPORT.xml)
  2. PL/SQL包声明文件(REPORTS.pls)
  3. PL/SQL包体文件(REPORTB.pls)

 

转换命令如下:

java oracle.apps.xdo.rdfparser.DataTemplateGenerator H:/report/raxinv.xml

oracle.apps.xdo.rdfparser.DataTemplateGenerator 位于中间服务器的$JAVA_TOP路径下,因此转换最好登录EBS中间服务器执行;

注:数据文件XML必须是完整的路径,否则转换失败

 

三、布局转换

使用RTFTemplateGenerator API将Oracle Report的布局转换为BIP的RTF模板文件,由于在RTF模板文件中不支持PLSQL,因此转换过程中不会转换任何的格式触发器的代码,转换器会将格式触发器中的代码写到日志中,开发人员需要在RTF模板中使用XSL来实现格式触发器的功能。

API可以通过命令行或者脚本来调用,调用成功后会生成如下的文件:

  1. RTF模板
  2. 日志文件

 

转换命令如下:

javaw.exe oracle.apps.xdo.rdfparser.RTFTemplateGenerator H:/report/raxinv.xml

oracle.apps.xdo.rdfparser.RTFTemplateGenerator 位于中间服务器的$JAVA_TOP路径下,因此转换最好登录EBS中间服务器执行;

注:数据文件XML必须是完整的路径,否则转换失败

 

四、批量转换

上面的三个步骤可以合并起来自动完成,不但可以完成一个报表的转换,还可以完成一个文件目录下所有报表的批量转换

下面是转换一个目录下所有RDF文件的脚本,需要使用如下的Java库:

  1. Collections.zip:从Sun Microsystems公司下载
  2. xmlparserv2-904:JAVA_TOP目录下
  3. 指向Oracle Applications JAVA_TOP(需要BIP的库)

 

下面是成批转换的Shell脚本:

#!/bin/sh
# This script will generate a report for each template in the current directory
# Create a variable to hold the classpath
classpath=”DIR/collections.zip:DIR/xmlparserv2-904.zip:JAVA_TOP directory”
if [ $# -eq 0 ] then
    for file in *.rdf
    do
        echo “Processing … $file”
        if test -f $file
        then
            # Convert the rdf to xml
            echo yes | $ORACLE_HOME/bin/rwconverter.sh batch=yes source=$file dest=$file dtype=xmlfile overwrite=yes; /
            #Create a variable to hold the new xml file name, this is just a simple replace
            # statement
            xfile=”${file//rdf/xml}”;
            # Generate the data template plus plsql
            echo yes | /local/java/jdk1.5.0_06/bin/java -classpath
            $classpath oracle.apps.xdo.rdfparser.DataTemplateGenerator $xfile;
            # Generate the RTF template
            echo yes | /local/java/jdk1.5.0_06/bin/java –classpath
            $classpath oracle.apps.xdo.rdfparser.RTFTemplateGenerator $xfile;
        fi
    done
else
    echo usage: $0
    echo this script will generate a data template and supporting plsql    and an RTF template in the current directory
fi

可以将上面的Shell脚本另存为一个脚本文件,然后进行转换操作。

 

http://oracleseeker.com/2008/09/16/migrate-oracle-report-to-bi-publisher/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值