Oracle® Fusion Middleware Oracle Reports ServicesレポートWeb公開ガイド 11g リリース1(11.1.1) B61375-01 |
|
戻る |
次へ |
Oracle ReportsとOracle Forms Servicesとの間で緊密に製品を統合すると、2つの製品間でデータ・ブロックの受渡しができ、同じ問合せの実行が不要になります。問合せのパーティション化と呼ばれる技法により、Oracle Reportsではデータのフォーマットのみを行い、トリガーや文字パラメータによる問合せの動的な変更が無視されます。
Oracle Forms Servicesでは、すべてのレポート・リクエストに共有Java仮想マシン(JVM)コントローラが使用されます。これによって、メモリー使用量が削減されます。
注意: データ・パラメータが過度に広範な場合や問合せが非常に複雑な場合を除いて、体感パフォーマンスの向上はごくわずかです。また、フォームから渡されるデータを受け取ることができるのは、レポートの最上位レベルのグループのみです。 |
Oracle Forms ServicesとOracle Reportsとの典型的統合では、データ入力フォームを実現するアプリケーションがあり、レポートの生成に使用されます。このプロセスで実行する手順は次の例に類似しています。
エンド・ユーザーがフォームに値を入力します。その値の一部またはすべてが関連レポートへのパラメータ入力となります。
エンド・ユーザーがボタンをクリックすると、次のようにレポートが生成されます。
Oracle Forms Servicesでは、レポートを実行するためのすべてのパラメータが入力されます。
Oracle Forms ServicesではRUN_REPORT_OBJECT
ビルトインをコールして、Oracle Reportsにリクエストを送ります。
Oracle ReportsではジョブIDを返し、Oracle Forms ServicesではそのジョブIDのステータスに関する問合せを行います。
ジョブ・ステータスがFINISHED
の場合、Oracle Forms ServicesではWEB.SHOW_DOCUMENT
ビルトインをコールしてリクエストを送り、レポート出力を開きます。
WEB.SHOW_DOCUMENT
ビルトインにより、ブラウザで次のURLを開きます。
http://host:port/reports/rwservlet/getjobidn?server=server_name
注意: セキュア・モードの場合は、URLにauthid= authid も含まれます。 |
Oracle Forms Servicesアプリケーションからレポートをコールする方法の詳細は、OTN(http://www.oracle.com/technology/products/forms/techlisting10g.html
)にあるホワイト・ペーパー『Integrating Oracle Reports Services 11g in Oracle Forms Services 11g』を参照してください。
Oracle Reports 11gリリース1(11.1.1)では、Formsとの通信が行われます。FormsとReportsが異なるOracleインスタンス上に構成されている場合は、Formsで次の手順を実行し、Reports Serverとの通信を容易にする必要があります。FORMS_ORACLE_INSTANCE
は、Formsが構成されているOracleインスタンスです。
現在の作業ディレクトリから、次のコマンドを実行します。
cd $FORMS_ORACLE_INSTANCE/config
次のようにReportsTools
ディレクトリを作成します。
mkdir -p ReportsToolsComponent/ReportsTools
次のようにtools-logging.xml
ファイルをコピーします。
cp $ORACLE_HOME/reports/conf/ReportsTools/tools-logging.xml $FORMS_ORACLE_INSTANCE/config/ReportsToolsComponent/ReportsTools/logging.xml
次のようにtools-log-template.xml
ファイルをコピーします。
cp $ORACLE_HOME/reports/conf/ReportsTools/tools-log-template.xml $FORMS_ORACLE_INSTANCE/config/ReportsToolsComponent/ReportsTools/component-logs.xml
次のようにrwnetwork.conf
ファイルをコピーします。
cp $ORACLE_HOME/reports/conf/rwnetwork.conf $FORMS_ORACLE_INSTANCE/config/ReportsToolsComponent/ReportsTools/rwnetwork.conf
コピーされたファイルの次のマクロを置き換えます。
$$Instance.directory$$
を$FORMS_ORACLE_INSTANCE
で置き換えます。
$$Self.component_type$$
をReportsToolsComponent
で置き換えます。
$$Self.name$$
をReportsTools
で置き換えます。
$$Instance.oracle_home$$
を$ORACLE_HOME
で置き換えます。
FormsとReportsが異なるOHSサーバー上に構成されている場合、次のようにして、Formsが構成されているOHSインスタンスからReportsサーブレットにWebリクエストをルーティングする必要があります。
reports_ohs.confファイルを次のようにコピーします。
cp $ORACLE_HOME/reports/conf/reports_ohs.conf $FORMS_ORACLE_INSTANCE/config/OHS/ohs1/moduleconf/.
マクロ$$managedserverhost$$
および$$managaerserverport$$
を、WLS_REPORTS
管理対象サーバーのホストおよびポートで置き換えます。
FORMS_ORACLE_INSTANCE
で実行されているOHSを再起動します。
11gリリース1(11.1.1)の場合、Oracle Reportsでは連番ではなくランダムなジョブIDを生成できるため、特定のジョブのジョブIDを予測するのは不可能です。インプロセス・サーバーの場合に連番ではなくランダムなジョブIDを生成するには、JVMオプションを使用して"-Djobid=random"
をOracle WebLogic Serverに渡す必要があります。
スタンドアロン・サーバーの場合は、コマンドラインでJVMオプションを使用して"-Djobid=random"
を渡すか、REPORTS_JVM_OPTIONS
変数を設定することによって連番ではなくランダムなジョブIDを生成できます。詳細は、第B.1.52項「REPORTS_JVM_OPTIONS」を参照してください。
これにより、悪意のあるユーザーがURLにジョブIDを入力してセキュアでないレポート出力を表示することができなくなります。