ヘッダーをスキップ

Oracle Business Intelligence Publisherレポート・デザイナーズ・ガイド
リリース10.1.3.4
B51053-02
目次へ
目次
前のページへ
前へ
次のページへ
次へ

Oracle ReportsからOracle BI Publisherへのレポートの変換

この付録では、次のトピックについて説明します。

概要

Oracle BI Publisherでは、Oracle ReportsからOracle BI Publisherフォーマットにレポートを変換するためのユーティリティが用意されています。

Oracle Reportsでは、データ・モデル(SQL問合せや抽出ロジック)とレポート・レイアウト仕様が単一のファイルに格納されています。Oracle BI Publisherでは、データ・モデルとレイアウトは別々のオブジェクトになっています。したがって変換ユーティリティでは、単一のOracle Reportsファイルから、Oracle BI Publisherのレポートを構成するファイルが複数生成されます。ほとんどの場合、このファイル・セットにはレポートのデータが格納されるデータベースにおいて作成する必要があるPL/SQL仕様部と本体が含まれます。このユーティリティでは、Oracle BI Publisherリポジトリにアップロードするレポート定義ファイルとレイアウト・テンプレート・ファイルも生成されます。

アップロードしたら、レポートをテストして出力が意図したとおりになることを確認し、レポートを必要に応じて変更します。ユーティリティでは変換できない構造のあるレポートも存在します。これらは変換されたレポートに手動で実装する必要があります。

変換プロセスの全体フローは次のとおりです。

  1. 変換ユーティリティを実行します。

  2. PL/SQLパッケージをデータベースにロードします。

  3. レポートをOracle BI Publisherリポジトリにアップロードします。

  4. レポートのテストと変換ログ・ファイルの確認を行い、手動の変更が必要になる箇所を調べて、変換作業を完了させます。

前提条件

BI PublisherのOracle Reports変換ユーティリティを実行するための前提条件は次のとおりです。

変換元のOracle ReportsはXML形式にする必要がある

変換ユーティリティでは、変換元のOracle ReportsがXML形式である必要があります。Oracle ReportsのXML形式は、Oracle Reports 9i以降でサポートされています。変換元のレポートがOracke ReportsのXML形式でない場合、変換ユーティリティはこの変換を自動的に実行できます。ユーティリティが変換を実行するための要件を次に示します。

Oracle Reports DesignerはOracle Developer Suite 10g(10.1.2.0.2)の一部で、次の場所から入手できます。

http://www.oracle.com/technology/software/products/ids/index.html

必要なJARファイルによるCLASSPATHの更新

変換ユーティリティを実行するには、次のファイルをCLASSPATHに定義する必要があります。

Oracle E-Business Suiteを使用しているお客様の場合、これらのライブラリまたは対応クラスは、JAVA_TOPで入手できます。Oracle BI Publisher Enterpriseを使用しているお客様の場合、これらのライブラリはすべてWEB-INF\libで入手できます。WEB-INF\libへのサンプル・パスは次のとおりです。

C:\Oracle\bi\oc4j_ bi\j2ee\home\applications\xmlpserver\xmlpserver\WEB-INF\lib

変換ユーティリティの実行

CLASSPATHを更新したら、コマンドラインから変換ユーティリティを実行することができます。このユーティリティは次のコマンドよりコールされます。

BIPBatchConversion

コマンドラインの使用方法は次のとおりです。

java ... BIPBatchConversion [-debug] -source <SourceDirectory> -target
<TargetDirectory> [-oraclehome <OracleHomePath>]

各項目は次のとおりです。

変換元レポートがOracle ReportsのRDFファイルの場合

この例では、-oraclehomeでパスを指定する必要があります。

java.exe -classpath
D:\Jdev\project\xdocore.jar;d:\Jdev\project\collections.zip;d:\Jdev\project\aolj.j
ar;d:\Jdev\project\xmlparserv2-904.jar
oracle.apps.xdo.rdfparser.BIPBatchConversion -source d:\reports\pay -target
d:\reports\pay\output -oraclehome D:\oracle\BIToolsHome_1 -debug

変換元レポートがOracle ReportsのXML形式の場合

この例では、-oraclehomeパラメータを指定しないでください。

java.exe -classpath
D:\Jdev\project\xdocore.jar;d:\Jdev\project\collections.zip;d:\Jdev\project\aolj.j
ar;d:\Jdev\project\xmlparserv2-904.jar
oracle.apps.xdo.rdfparser.BIPBatchConversion -source d:\reports\pay -target
d:\reports\pay\output -debug

このユーティリティやrdfparserパッケージのその他の関連変換APIの詳細は、Oracle BI Publisher 10.1.3.3のJava APIリファレンス(Javadoc)を参照してください。

出力ファイル

変換ユーティリティでは、変換される各レポートに対し、変換先ディレクトリに次の出力ファイルが生成されます。

たとえば、D:\reports\payにinvoice.rdfというレポートが配置されていると仮定します。次のコマンドを実行します。

java.exe -classpath
D:\Jdev\project\xdocore.jar;d:\Jdev\project\collections.zip;d:\Jdev\project\aolj.j
ar;d:\Jdev\project\xmlparserv2-904.jar
oracle.apps.xdo.rdfparser.BIPBatchConversion -source d:\reports\pay -target
d:\reports\pay\output -oraclehome D:\oracle\BIToolsHome_1 -debug

これによって、次の出力ファイルが生成されます。

データベースへのPL/SQLパッケージのアップロード

多くの変換対象Oracle Reportsでは、次のようにPL/SQLパッケージ仕様部ファイルとPL/SQLパッケージ本体ファイルが生成されます。

PL/SQLパッケージのファイルをOracle Databaseに対して次のように実行します。これによって、PL/SQLパッケージの仕様部と本体が作成されます。

SQL> @C:\BIPublisher_reports\invoice\invoiceS.pls
SQL> @C:\BIPublisher_reports\invoice\invoiceB.pls

Oracle BI Publisherレポート・リポジトリへの変換済レポートの移動

レポートをOracle BI Publisherリポジトリで表示可能にするには、次に示す2つの手順を実行します。

  1. レポート・フォルダをリポジトリにコピーします。

  2. リポジトリ・メタデータをリフレッシュします。

ファイルベースのリポジトリの場合、レポート・フォルダ構造をファイル・システムにコピーします。たとえば、レポジトリ・パスが次のように設定されていると仮定します。

C:\oracle\bi\xmlp\XMLP

前述の例におけるレポートの場合、レポート・ディレクトリとそのファイルをすべて、既存のレポート・リポジトリの対象フォルダ構造に単純にコピーします。

次に例を示します。

> copy C:\BIPublisher_reports\invoice C:\oracle\bi\xmlp\XMLP\Shared Folders\Converted reports

Oracle DatabaseのXML DB機能をレポート・リポジトリとして使用している場合、内容をアップロードできる方法は数種類あります。その1つはWebDAVによる方法です。レポートをXML DBベースのリポジトリにロードする方法とオプションの詳細は、『Oracle XML DB開発者ガイド』の次の項を参照してください。

レポート・ディレクトリをリポジトリにロードしたら、Oracle BI Publisherに管理者権限でログオンし、Oracle BI Publisherの「管理」ページの「システム・メンテナンス」セクションで「メタデータのリフレッシュ」を選択します。これですべてのレポートをテストおよび実行できます。

変換済レポートのテストと編集

レポートを正常に変換して必要なPL/SQLパッケージを作成し、レポート定義ファイルとRTFテンプレート・ファイルをOracle BI Publisherリポジトリに移動したら、レポートをテストして、データとフォーマットが意図したとおりであることを確認する必要があります。変換されたレポートの多くは、変更しなくても意図したとおりに実行されます。複雑なレポートでは、意図したとおりに実行されるためには変更が必要になる場合があります。変換されたレポートに関する一般的な問題について次に説明します。

集計列がSELECT句に移動する

複雑なOracle Reportsレポートを変換すると、データ・テンプレートやPL/SQLに軽度なエラーが発生して手動の修正が必要になる場合があります。変換ユーティリティでは、すべての計算式列はデータ・モデルにおいてSQL問合せのSELECT句に移動します。ほとんどの場合、これによって問題は発生しません。ただし、計算式の引数が集計列である場合、問合せが実行された時点で集計列が計算されないためこれは機能しません。

この問題に対処するには、この計算式をSELECT句から削除し、計算式をXSLとしてレイアウト・テンプレートに実装する必要があります。これらの計算式の多くは、単純な加算処理、合計処理、通貨変換処理、書式設定処理および端数切捨て処理のために使用されます。

PL/SQLフォーマット・トリガーのロジックがRTFレイアウト・テンプレートではサポートされない

Oracle Reportsレポートの大半では、単純なif文フォーマット・ロジックが使用されます。変換ユーティリティでは、このロジックは自動的に同等のXSL-FOに変換され、RTFレイアウト・テンプレートのフォーム・フィールドに挿入されます。ただし、RTFレイアウト・テンプレートではPL/SQLはサポートされません。変換ユーティリティでは、PL/SQLフォーマット・トリガーのロジックがレポートに存在しても変換されません。そのかわりに変換ユーティリティでは、フォーマット・トリガーのコードはすべて、ログ・ファイルに書き込まれます。対応するPL/SQLロジックをXSLコードとして実装する必要があります。

この作業を容易にするために、コールされるフォーマット・トリガー名が格納されるフォーム・フィールドが、RTFテンプレートに格納されます。これらのフィールドは赤色で強調表示されます。これによってログを参照して、元のOracle Reportsで使用されている実際のPL/SQLコードを検索することができます。これらのPL/SQLトリガーをXSL-FOとして書きなおす必要があります。

詳細は、「拡張された関数サポート」を参照してください。