この章では、リリース10.1.3.3で導入されリリース10.1.3.3〜10.1.3.4に適用されるBI Publisher機能について説明します。この機能については、リリース10.1.3.4用に更新されたBI Publisherドキュメント・セットにも記載されています。
この章で説明するように、リリース10.1.3.3ではOracle ReportsのレポートをOracle BI Publisherフォーマットに変換できる機能が導入されています。この章の内容は次のとおりです。
Oracle BI Publisherでは、Oracle ReportsのレポートをOracle BI Publisherフォーマットに変換するユーティリティが用意されています。
Oracle Reportsでは、データ・モデル(SQL問合せや抽出ロジック)とレイアウトは、単一のファイルに格納されます。Oracle BI Publisherでは、データ・モデルとレイアウトは別々のオブジェクトになります。したがって変換ユーティリティでは、Oracle BI Publisherのレポートを構成するファイルが複数生成されます。ほとんどの場合、レポートのデータが格納されるデータベースにおいて作成する必要があるPL/SQL仕様部と本体が含まれます。またこのユーティリティでは、Oracle BI Publisherリポジトリにアップロードするレポート定義ファイルとレイアウト・テンプレート・ファイルが生成されます。
アップロードしたら、レポートをテストして出力が意図したとおりになることを確認し、レポートを必要に応じて変更します。ユーティリティでは変換できない構造のあるレポートもあります。これらは、変換されたレポートにおいて手動で実装する必要があります。
変換プロセスの手順の概要は次のとおりです。
変換ユーティリティを実行します。
PL/SQLパッケージをデータベースにロードします。
レポートをOracle BI Publisherリポジトリにアップロードします。
レポートをテストして変換ログ・ファイルを確認し、手動の変更が必要になる箇所を調べて、変換作業を完了させます。
この項では、変換ユーティリティを実行する前に必要な手順について説明します。
変換プロセスにおいて変換元レポートは、Oracle Reports XMLフォーマットである必要があります。Oracle Reports XMLフォーマットは、Oracle Reports 9i以上でサポートされています。
変換元レポートがOracle Reports XMLフォーマットでない場合、変換ユーティリティではこの変換処理が自動的に行われます。ただし、変換処理を行うマシンと同じマシンにOracle Reports Designer 9i以上がインストールされている必要があります。これによって、Oracle BI Publisherの変換ユーティリティでは、rwconverter実行可能ファイルをコールしてレポートをOracle Reports XMLフォーマットに変換することができます。
Oracle Reports Designerを入手するには、Oracle Developer Suite 10g(10.1.2.0.2)を次のWebページからダウンロードします。
http://www.oracle.com/technology/software/products/ids/index.html
そして、Reports Designerをインストールします。
レポートがOracle Reports XMLフォーマットである場合、Oracle Reportsのインストールは不要です。
変換ユーティリティを実行するには、次のjarファイルをCLASSPATHに配置する必要があります。
Collections.zip -
xmlparserv2-904.jar -
xdocore.jar
aolj.jar
Oracle Enterprise Business Suite(EBS)を使用しているお客様の場合、これらのライブラリはJAVA_TOPの下にあります。これらのライブラリが所定の場所にない場合は、対応するクラスがJAVA_TOPの下にあります。
Oracle BI Publisher Enterprise(スタンドアロンともいう)を使用しているお客様の場合、これらのライブラリはすべて、WEB-INF\libの下にあります。次に例を示します。
C:\Oracle\bi\oc4j_bi\j2ee\home\applications\xmlpserver\xmlpserver\WEB-INF\lib
BIPBatchConversionは、Oracle ReportsのレポートをBI Publisherフォーマットに移行するためのユーティリティです。
次のパラメータがあります。
-source: (必須)Oracle Reportsファイルの変換元ディレクトリです。すべてのレポートは、RDFかXMLのどちらかのフォーマットに統一する必要があります。
-target: (必須)Oracle BI Publisherのレポート・オブジェクトの作成先となる変換先ディレクトリです。このディレクトリには、Oracle BI Publisherのレポート・ファイル(.xdo)、レイアウト・テンプレート・ファイル(.rtf)、PL/SQLパッケージおよびログ・ファイルが格納されます。
-oraclehome: (オプション)レポートがOracle Reports XMLフォーマットである場合は、このパラメータは指定しないでください。レポートがOracle Reports XMLフォーマットでない場合、Oracleホームのパス(Oracle Reports Designer 9i以上がインストールされている場所を示すパス)を指定します。BIPBatchMigrationでは、Oracleホームのパスの下にあるbinディレクトリにrwconverterが格納されていることを前提に処理します。
BIPBatchConversionでは、Oracle Reportsのrwconverter(レポートをRDFフォーマットからXMLフォーマットに変換するユーティリティ)が必要です。
-debug: (オプション)ユーティリティをデバッグ・モードで実行して、デバッグ情報をログ・ファイルに書き込みます。
コマンドラインの使用方法を次に示します。
java ... BIPBatchConversion [-debug] -source SourceDirectory -target TargetDirectory [-oraclehome OracleHomePath]
BIPBatchConversionを実行するコマンドの例を次に示します。
例18-1 Oracle Reports RDFファイルの変換元レポート
この例では、-oraclehomeパスを指定する必要があります。
java.exe -classpath D:\Jdev\project\xdocore.jar;d:\Jdev\project\collections.zip;d:\Jdev\project\aolj.jar;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
例18-2 Oracle Reports XMLフォーマットの変換元レポート
この例では、-oraclehomeパラメータを指定しないでください。
java.exe -classpath D:\Jdev\project\xdocore.jar;d:\Jdev\project\collections.zip;d:\Jdev\project\aolj.jar;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)を参照してください。
変換ユーティリティでは、各レポートに対して次の出力ファイルが生成されます。
データ・モデルが格納されるレポート定義ファイル(REPORT.xdoファイルなど)
(注意: このファイルはE-Business Suiteユーザーには必要ありません。「DataTemplate」の下にある後述の「注意」を参照してください。)
DataTemplate(REPORT_template.xmlなど)
(注意: データ・テンプレートがREPORT.xdoに埋め込まれているため、このファイルはOracle BI Publisher Enterpriseユーザーには必要ありません。)
デフォルトPL/SQLパッケージ仕様部(REPORTS.plsなど)
デフォルトPL/SQLパッケージ本体(REPORTB.plsなど)
RTFレイアウト・テンプレート(REPORT.rtfなど)
ログ・ファイル(REPORT.logなど)
たとえば、raxinv.rdfと呼ばれるレポートがD:\reports\payにあると仮定します。次のコマンドを実行します。
java.exe -classpath D:\Jdev\project\xdocore.jar;d:\Jdev\project\collections.zip;d:\Jdev\project\aolj.jar;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パッケージ仕様部: C:\BIPublisher_reports\ raxinv\raxinvS.pls
PL/SQLパッケージ本体: C:\BIPublisher_reports\ raxinv\raxinvB.pls
レポート定義ファイル: C:\BIPublisher_reports\ raxinv\raxinv.xdo
DataTemplate: C:\BIPublisher_reports\ raxinv\raxinv_template.xml
RTFレイアウト・テンプレート: C:\BIPublisher_reports\raxinv\raxinv.rtf
ログ・ファイル: C:\BIPublisher_reports\raxinv\raxinv.log
変換された多くのOracle Reportsでは、次のようなPL/SQLパッケージ仕様部ファイルとPL/SQLパッケージ本体ファイルが生成されます。
<report_name>S.pls
<report_name>B.pls
PL/SQLパッケージのファイルをOracle Databaseに対して次のように実行します。これによって、PL/SQLパッケージの仕様部と本体が作成されます。
SQL> @C:\BIPublisher_reports\ raxinv\raxinvS.pls SQL> @C:\BIPublisher_reports\ raxinv\raxinvB.pls
レポートをOracle BI Publisherリポジトリで表示可能にするには、次に示す2つの手順を実行します。
レポート・フォルダをリポジトリにコピーします。
リポジトリ・メタデータをリフレッシュします。
ファイルをベースにしたリポジトリがある場合、レポート・フォルダ構造をファイル・システムにコピーします。たとえば、リポジトリのパスが次のように設定されていると仮定します。
C:\oracle\bi\xmlp\XMLP
前述の例におけるレポートの場合、レポート・ディレクトリとそのファイルをすべて、既存のレポート・リポジトリの対象フォルダ構造に単純にコピーします。
次に例を示します。
> copy C:\BIPublisher_reports\raxinv C:\oracle\bi\xmlp\XMLP\Shared Folders\Converted reports
Oracle DatabaseのXML DB機能をレポート・リポジトリとして使用している場合、内容をアップロードできる方法は数種類あります。1つの方法は、WebDAVを使用する方法です。
レポートをXML DBベースのリポジトリにロードする方法とオプションの詳細は、『Oracle XML DB開発者ガイド』の次の項を参照してください。
Oracle XML DBへのXMLコンテンツのロードに関する項
リポジトリ・データに対するFTP、HTTP(S)およびWebDAVのアクセスに関する項
レポート・ディレクトリをリポジトリにロードしたら、Oracle BI Publisherに管理者権限でログオンし、Oracle BI Publisherの「管理」ページの「システム・メンテナンス」セクションで「メタデータのリフレッシュ」を選択します。これですべてのレポートのテストと実行ができます。
レポートを正常に変換し、必要なPL/SQLパッケージを作成し、レポート定義ファイルとRTFテンプレート・ファイルをOracle BI Publisherリポジトリに移動したら、レポートをテストして、データとフォーマットが意図したとおりであることを確認する必要があります。
変換されたレポートの多くは、変更しなくても意図したとおりに実行されます。複雑なレポートでは、意図したとおりに実行されるためには変更が必要になる場合があります。変換されたレポートに関する一般的な問題について次に説明します。
複雑なOracle Reportsレポートを変換すると、データ・テンプレートやPL/SQLに軽度なエラーが発生して手動の修正が必要になる場合があります。
変換ユーティリティでは、すべての計算式列はデータ・モデルにおいてSQL問合せのSELECT句に移動されます。ほとんどの場合、これによって問題は発生しません。ただし、計算式の引数が集計列である場合、問合せが実行された時点で集計列が計算されないためこれは機能しません。
この問題に対処するには、この計算式をSELECT句から削除し、計算式をXSLとしてレイアウト・テンプレートに実装する必要があります。これらの計算式の多くは、単純な加算処理や合計処理、または通貨の変換、フォーマットおよび端数切捨て処理のために使用されます。
Oracle Reportsレポートの大半では、単純なif文フォーマット・ロジックが使用されます。このロジックは、自動的に同等のXSL-FOに変換され、RTFレイアウト・テンプレートのフォーム・フィールドに挿入されます。ただし、RTFレイアウト・テンプレートではPL/SQLはサポートされません。変換ユーティリティでは、PL/SQLフォーマット・トリガーのロジックがレポートに存在しても変換されません。そのかわりに変換ユーティリティでは、フォーマット・トリガーのコードはすべて、ログ・ファイルに書き込まれます。対応するPL/SQLロジックをXSLコードとして実装する必要があります。
この作業を容易にするために、コールされるフォーマット・トリガー名が格納されるフォーム・フィールドが、RTFテンプレートに格納されます。これらのフィールドは赤色で強調表示されます。これによってログを参照して、元のOracle Reportsで使用されている実際のPL/SQLコードを検索することができます。これらのPL/SQLトリガーをXSL-FOとして書きなおす必要があります。
詳細は、『Oracle Business Intelligence Publisherレポート・デザイナーズ・ガイド』の「サポートされているXSL-FO要素」を参照してください。