Oracle® Fusion Middleware Oracle Reports ServicesレポートWeb公開ガイド 12c (12.2.1.2) E82763-01 |
|
前 |
次 |
Oracle ReportsとOracle Forms Servicesとの間で緊密に製品を統合すると、2つの製品間でデータ・ブロックの受渡しができ、同じ問合せの実行が不要になります。問合せのパーティション化と呼ばれる技法により、Oracle Reportsではデータのフォーマットのみを行い、トリガーや文字パラメータによる問合せの動的な変更が無視されます。
Oracle Forms Servicesでは、すべてのレポート・リクエストに共有Java Virtual Machine (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/technetwork/developer-tools/forms/documentation/techlisting10g-085500.html
)にあるホワイト・ペーパー『Integrating Oracle Forms 10g and Oracle Reports 10g』を参照してください。
Oracle Reports 12c (12.2.1.2)では、Formsとの通信が行われます。FormsとReportsが異なるOracleインスタンス上に構成されている場合は、Formsで次の手順を実行し、Reports Serverとの通信を容易にする必要があります。
Reports Toolsコンポーネントを作成し、Formsが稼働しているマシンをターゲットに指定します。
この環境変数をForms JVM COMPONENT_CONFIG_PATH=${DOMAIN_HOME}/config/fmwconfig/components/ReportsToolsComponent/<reports_tools_name>
に設定します
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を再起動します。
12c (12.2.1.2)の場合、Oracle Reportsでは連番ではなくランダムなジョブIDを生成できるため、特定のジョブのジョブIDを予測するのは不可能です。インプロセス・サーバーの場合に連番ではなくランダムなジョブIDを生成するには、JVMオプションを使用して"-Djobid=random"
をOracle WebLogic Serverに渡す必要があります。
スタンドアロン・サーバーの場合は、コマンドラインでJVMオプションを使用して"-Djobid=random"
を渡すか、REPORTS_JVM_OPTIONS
変数を設定することによって連番ではなくランダムなジョブIDを生成できます。詳細は、第B.1.54項「REPORTS_JVM_OPTIONS」を参照してください。
これにより、悪意のあるユーザーがURLにジョブIDを入力してセキュアでないレポート出力を表示することができなくなります。