| Oracle® Fusion Middleware Oracle Application Development Frameworkデスクトップ統合開発者ガイド 11gリリース1 (11.1.1.9.0) B66694-04 |
|
![]() 前 |
![]() 次 |
この章では、Fusion Webアプリケーションと統合したワークブックをエンド・ユーザーに公開してデプロイする方法、Fusion Webアプリケーションからのパラメータを統合Excelワークブックに渡す方法、およびADFワークブック・コンポーザをFusion Webアプリケーションに統合する方法について説明します。
この章の内容は次のとおりです。
統合Excelワークブックの開発が終了した後、最終の統合Excelワークブックをエンド・ユーザーが使用できるようにするために、完成したFusion Webアプリケーションをアプリケーション・サーバーにデプロイします。Fusion Webアプリケーションと統合される最終のExcelワークブックをデプロイする前に、15.3項「統合Excelワークブックの公開」の説明に従って、これを公開する必要があります。Excelワークブックを公開した後、『Oracle Application Development Framework Fusion開発者ガイド』のFusion Webアプリケーションのデプロイに関する項に概説されている方法のいずれかを使用してデプロイできます。
エンド・ユーザーがADFデスクトップ統合アドインをインストールできるように、ADFデスクトップ統合のadfdi-excel-addin-installer.exeをエンド・ユーザーが使用できるようにしてください。詳細は、15.2項「エンド・ユーザーがADFデスクトップ統合を使用できるようにするための処理」を参照してください。
統合Excelワークブックのデプロイ対象となるエンド・ユーザーは、次の作業を行う必要があります。
ADFデスクトップ統合のExcel用アドインをWindowsベースのコンピュータにインストールします。
3.3項「ADFデスクトップ統合と協働するExcelの構成」の説明に従って、Excelアプリケーションのセキュリティ設定を構成します。
「Oracle ADF」タブの「公開」ボタンを使用して、ワークブックの公開済コピーを保存します。図15-1に、「公開」ボタン、およびこのボタンをクリックすると開くワークブックの公開ダイアログを示します(このダイアログを使用して、公開およびFusion Webアプリケーションとともにデプロイするための準備が整った統合Excelワークブックのコピーを保存します)。
統合Excelワークブックを公開してデプロイした後、必要に応じてワークブックの機能をさらに追加できます。次の各項では、使用可能なその他の機能について説明します。
パラメータ渡し: Fusion Webアプリケーションのページを構成して、エンド・ユーザーがそのページからワークブックをダウンロードするときに、統合Excelワークブックにパラメータ値を渡すことができます。詳細は、15.5項「Fusion Webアプリケーションのページからワークブックへパラメータ値を渡す方法」を参照してください。
統合Excelワークブックで構成した機能をエンド・ユーザーが使用するには、H.1.1項「システムへのADFデスクトップ統合のインストール方法」の説明に従って、ADFデスクトップ統合をインストールする必要があります。
インストーラをエンド・ユーザーが使用できるようにする方法の詳細は、『Oracle Application Development Framework管理者ガイド』のWebサーバーからADFデスクトップ統合アドインをインストールする方法に関する項を参照してください。
インストール・プログラム(adfdi-excel-addin-installer.exe)は、次のディレクトリにあります。
MW_HOME\oracle_common\modules\oracle.adf.desktopintegration_11.1.1
MW_HOMEはミドルウェア・ホーム・ディレクトリです。
Oracle ADFの機能を使用したExcelワークブックの構成が終了したら、これを公開する必要があります。ワークブックを公開することで、統合Excelワークブックを実行時にエンド・ユーザーが使用できるようになります。
ADFデスクトップ統合では、ワークブックを公開する方法が2つ用意されています。統合ExcelワークブックをExcelから直接公開するか、JDeveloperで使用可能な公開ツールを使用してコマンド行からワークブックを公開できます。コマンドラインの公開ツールでは、ANTスクリプトなどのスクリプトを使用して、Fusion Webアプリケーションから統合Excelワークブックを公開できます。
|
注意:
|
ワークブックを公開するには、「Oracle ADF」タブ上のボタンをクリックして、表示されるダイアログで値を指定します。
始める前に:
統合Excelワークブックの公開方法について理解しておくと役立ちます。詳細は、15.3項「統合Excelワークブックの公開」を参照してください。
他のADFデスクトップ統合の機能を使用して追加できる機能についても理解しておくと役立ちます。詳細は、15.1.2項「統合Excelワークブックをデプロイするための追加の機能」を参照してください。
Excelからワークブックを公開するには:
統合Excelワークブックを開きます。
「ワークブック・プロパティの編集」ダイアログのApplicationHomeFolderおよびWebPagesFolderプロパティが正しいことを確認します。これらのプロパティが設定されていない場合、統合Excelワークブックの公開時にADFデスクトップ統合によって設定するよう求められます。
詳細は、4.3.2項「新しい統合Excelワークブックの構成方法」を参照してください。
「Oracle ADF」タブで「公開」ボタンをクリックします。
図15-1のように、表示されるワークブックの公開ダイアログで、公開されたワークブックのディレクトリとファイル名を指定します。公開するワークブック用に指定するディレクトリおよびファイル名は、設計時のワークブックのディレクトリおよびファイル名とは異なるものにする必要があります。
「保存」をクリックして変更内容を保存します。
この公開ツールはコマンド行から実行するもので、MW_HOME\jdeveloper\adfdi\bin\excel\tools\publishディレクトリにあるpublish-workbook.exeを指します。公開ツールを実行する前に、ソースの統合Excelワークブックを開いて「ワークブック・プロパティの編集」ダイアログのApplicationHomeFolderおよびWebPagesFolderプロパティが正しいことを確認します。
|
注意: すでに公開済のワークブックまたは実行時モードのワークブックを公開することはできません。 |
始める前に:
統合Excelワークブックの公開方法について理解しておくと役立ちます。詳細は、15.3項「統合Excelワークブックの公開」を参照してください。
他のADFデスクトップ統合の機能を使用して追加できる機能についても理解しておくと役立ちます。詳細は、15.1.2項「統合Excelワークブックをデプロイするための追加の機能」を参照してください。
MW_HOME\jdeveloper\adfdi\bin\excel\tools\publishディレクトリにナビゲートし、次の構文を使用して公開ツールを実行します。
publish-workbook -workbook (-w) <source-workbook-path> -out (-o) <destination-workbook-path>
source-workbook-pathはソース・ワークブックのフルパスで、destination-workbook-pathは公開されるワークブックの保存先のフルパスです。
例:
publish-workbook -workbook D:\Application1\Project1\ViewController\src\oracle\sampledemo\excel\workbook-DT.xlsx -out D:\Application1\Project1\ViewController\public_html\excel\published\workbook.xlsx
|
ヒント: 公開ツールの必須の引数に関する詳細を参照するには、次のコマンドを実行します。
|
|
注意:
|
統合Excelワークブックが正常に公開されると、公開ツールによって成功メッセージが表示されます。ワークブックの公開中にエラーが発生した場合は、公開ツールによって処理が中止され、コマンド行コンソールにエラー・メッセージが表示されます。
ANTでの公開ツールの使用
Fusion Webアプリケーションのビルド時にANTスクリプトを作成して、JDeveloperから公開ツールを実行できます。ANTを使用してユーティリティを実行するには、次のいずれかの方法を使用します。
プロジェクト用のANTビルド・スクリプトを生成して、ワークブックのコマンド行公開ツールを実行するためのターゲットを追加します。
ワークブックのコマンド行公開ツールを実行するために、別個のANTビルド・スクリプトを生成または作成します。
公開ツールを実行するためのANTビルド・スクリプトのサンプル(publish-workbook.xml)は、MW_HOME\jdeveloper\adfdi\bin\excel\samplesディレクトリにあります。このANTスクリプトのサンプルは、コマンド行のワークブック公開ツールの起動を実例で示します。
設計モードで「公開」ボタンをクリックすると、ADFデスクトップ統合では次のアクションが実行されます。
必須のワークブック設定を検証します。
クライアント・レジストリを更新します。詳細は、12.3項「統合Excelワークブックのメタデータの整合性チェック」を参照してください。
公開されるワークブックを、指定のファイル名で、指定のディレクトリに作成します。
公開によっても、ワークブック定義がエクスポートされます。公開されたワークブック定義のXMLファイルは、設計時のワークブックのコピーと同じ場所に保存されます。ワークブック定義の詳細は、5.15項「Excelワークブック統合メタデータのエクスポートおよびインポート」を参照してください。
公開されるワークブックのワークブック設定からApplicationHomeFolder、WebAppRootおよびWebPagesFolderの各プロパティを消去します。
設計時のすべてのコンポーネントのプレースホルダを消去します。
ワークブックのモードを実行時モードに変更します。
Publishing Timestampプロパティをワークブックに挿入します。このプロパティは、「情報」ダイアログの「プロパティ」タブに表示されます。
15.3項「統合Excelワークブックの公開」の説明に従って、統合Excelワークブックを公開した場合、Webアプリケーションをビルドしてデプロイすると、公開済の統合ExcelワークブックがFusion Webアプリケーションに自動的に追加されます。統合ExcelワークブックがJDeveloperプロジェクトを構成する他のファイルとともにパッケージ化されていない場合は、Fusion WebアプリケーションのJDeveloperプロジェクトに統合Excelワークブックを追加します。こうすることで、最終のFusion Webアプリケーションをデプロイする際に、Fusion Webアプリケーションと統合するExcelワークブックが確実にデプロイされます。たとえば、ADFデスクトップ統合のSummitサンプル・アプリケーションは、次の場所で統合された、デプロイ済Excelワークブックを保存します。
<Summit_HOME>\ViewController\public_html\excel
ここで、Summit_HOMEはADFデスクトップ統合のSummitサンプル・アプリケーションのインストール・ディレクトリです。
統合Excelワークブックの格納先を決定したら、エンド・ユーザーが統合ExcelワークブックにアクセスできるようにFusion WebアプリケーションでWebページを構成できます。たとえば、図15-2は、ADFデスクトップ統合のSummitサンプル・アプリケーションのMainPage.jsfページで、顧客サンプルの編集ワークブックのワークブックのダウンロード・ボタンをクリックすることで起動された、Internet Explorerの「ファイルのダウンロード」ダイアログを示します。
図15-2に示されている機能を有効にするには、Excelワークブックが認識されるようにFusion WebアプリケーションのHTTPフィルタ・パラメータを構成する必要があります。Fusion WebアプリケーションでADFデスクトップ統合が有効になっている場合、これらのパラメータはJDeveloperによって自動的に構成されます。HTTPフィルタ・パラメータを手動で構成する場合は、付録D「Webアプリケーション・デプロイメント・ディスクリプタでのADFデスクトップ統合の設定」を参照してください。
Fusion WebアプリケーションのHTTPフィルタを構成した後、Fusion Webアプリケーションによってエンド・ユーザーに表示されるWebページを構成し、エンド・ユーザーがExcelワークブックを起動できるようにします。Fusion Webアプリケーションと統合されたExcelワークブックを起動できるようにする基本的な方法は、ワークブックを起動するハイパーリンクを提供することです。たとえば、Webページに次のようなADFコードを記述できます。
<af:goLink text="Editable Table Sample" destination="/excel/EditCustomers.xlsx"/>
ここで、excelは、WebPagesFolderワークブック・プロパティによって指定されるディレクトリのサブディレクトリで、EditCustomers.xlsxはエンド・ユーザーが起動するExcelワークブックです。
ボタン、リストおよびリボン・コマンドからエンド・ユーザーがExcelワークブックを起動できるようにするための機能を提供できます。次にいくつかの例を示します。
ボタン
クリックすると統合Excelワークブックが起動するボタンをWebページ上に表示します。たとえば、図15-2のワークブックのダウンロード・ボタンは、MainPage.jsfページに公開されるボタン・コンポーネントです。
選択リスト
統合Excelワークブックを起動するボタンとともに、ADF Faces selectOneChoiceコンポーネントを使用します。
メニュー
ADF Faces goMenuItemコンポーネントを使用します。
Fusion WebアプリケーションのWebページの作成の詳細は、『Oracle Application Development Framework Webユーザー・インタフェース開発者ガイド』を参照してください。
ADFデスクトップ統合が有効になっているFusion WebアプリケーションをJDeveloperからデプロイする際は、ADFデスクトップ統合の共有ライブラリへの参照が適切なディスクリプタ・ファイルに追加されます。ADFデスクトップ統合のモデルAPIライブラリまたはADFデスクトップ統合ランタイム・ライブラリを参照する複数のプロジェクトを含むすべてのFusion Webアプリケーションについて、プラットフォームに依存しないADFデスクトップ統合モデルAPIの共有ライブラリへの参照がデプロイメント中に追加されます。
ADFデスクトップ統合ランタイム・ライブラリへの参照を含むすべてのWebアプリケーション・モジュール(WAR)プロジェクトの場合は、プラットフォームに依存しないADFデスクトップ統合ランタイム共有ライブラリへの参照がデプロイメント中に追加されます。
Oracle WebLogic ServerにFusion Webアプリケーションをデプロイする際は、次の処理が実行されます。
デプロイされるアプリケーションEARファイルのMETA-INF/weblogic-application.xmlファイルに、oracle.adf.desktopintegration.modelへのライブラリ参照が含まれます。
例:
<library-ref> <library-name>oracle.adf.desktopintegration.model</library-name> </library-ref>
共有ライブラリは、oracle.adf.desktopintegration.model.earファイルのMW_HOME/oracle_common/modules/oracle.adf.desktopintegration.model_11.1.1に配信されます。
デプロイされるWebアプリケーションWARファイルのWEB-INF/weblogic.xmlファイルに、oracle.adf.desktopintegrationへのライブラリ参照が含まれます。
例:
<library-ref> <library-name>oracle.adf.desktopintegration</library-name> </library-ref>
共有ライブラリは、oracle.adf.desktopintegration.warファイルのMW_HOME/oracle_common/modules/oracle.adf.desktopintegration_11.1.1に配信されます。
|
注意: システム管理タスクおよびこれらのプラットフォームの共有ライブラリの詳細は、Oracle WebLogic ServerおよびIBM WebSphere Application Serverのドキュメントを参照してください。 |
IBM WebSphere Application ServerにWebアプリケーションをデプロイする際、次の処理が実行されます。
ADFデスクトップ統合モデルAPIライブラリまたはADFデスクトップ統合ランタイム・ライブラリが必要なアプリケーションでは、デプロイメントの手順により、com/oracle/adfdimodel拡張への参照がアプリケーションEARファイルのMETA-INF/MANIFEST.MFファイルに挿入されます。
例:
Manifest-Version: 1.0 Extension-List: adfm adfdimodel adfm-Extension-Name: com/oracle/adfm adfm-Specification-Version: 1.0 adfdimodel-Extension-Name: com/oracle/adfdimodel adfdimodel-Specification-Version: 1.0 UseWSFEP61ScanPolicy: false
ADFデスクトップ統合ランタイム・ライブラリを参照するプロジェクトを持つWebアプリケーションのdeployment.xmlファイルには、デプロイメント中に挿入されたライブラリ参照が含まれます。
例:
<libraries xmi:id="LibraryRef_1274886542330_oracle.adf.desktopintegration_1.0_n.n.n.n.n" libraryName="oracle.adf.desktopintegration_1.0_n.n.n.n.n" sharedClassloader="true"/>
ここで、n.n.n.n.nは、Oracle Fusion Middlewareのリリースを表します。
web.xmlがADFデスクトップ統合を使用するFusion Webアプリケーション用に構成されている場合、次のことが起こります。
ADFデスクトップ統合を使用するFusion Webアプリケーション用に構成されている場合、次のイベントが発生します。
DIExcelDownloadFilterフィルタが定義されます。
フィルタ・マッピングは、*.xlsxおよび*.xlsmファイルに定義されます。
実行時に、エンド・ユーザーがワークブックに対してHTTPリクエストを出す(たとえば、ユーザーがアプリケーションからWebページのリンクをクリックする)と、DIExcelDownloadFilterフィルタは、HTTPレスポンスとしてストリーム化されて戻されたWebAppRootプロパティをワークブックに埋め込みます。WebAppRootプロパティは後でADFデスクトップ統合クライアントにより使用されて、Fusion Webアプリケーションに接続し、ユーザー・セッションを確立し、データを相互に送信します。15.5項「Fusion Webアプリケーションのページからワークブックへパラメータ値を渡す方法」に説明されているように、パラメータ値をWebアプリケーションからワークブックに渡すこともできます。
DIExcelDownloadFilterフィルタはWebAppRoot値を、doFilter()エントリ・ポイントに渡される現在のHttpServletRequestオブジェクトから構築します。フィルタ・コードはHttpServletRequest.getRequestURL()を呼び出し、コンテキスト・パス部分の後をすべて削除する(HttpServletRequest.getContextPath()を使用)ことで、完全なURLの"root"部分を取得します。
Fusion Webアプリケーション・ページは、エンド・ユーザーがそのページからワークブックをダウンロードするときに、統合Excelワークブックにパラメータ値を渡すように構成できます。ワークブック・パラメータを使用して、ユーザーのWebページから統合ワークブックにコンテキストを渡すことができます。渡されたコンテキストは、統合ワークブックからWebアプリケーションに送信されて戻され、アプリケーションの状態に影響します(ワークブックでどのようなデータがレンダリングされるかなど)。たとえば、図15-3に示すように、Summitサンプル・アプリケーションでは、倉庫のリストがエンド・ユーザーに表示されます。エンド・ユーザーがワークブックのダウンロード・ボタンをクリックすると、Summitサンプル・アプリケーションは、WarehouseIDパラメータの値をワークブックに渡してダウンロードします。渡されたWarehouseIDパラメータでは、倉庫のどのデータが編集用にワークシートにレンダリングされるかを制御します。
Fusion Webアプリケーション・ページから統合Excelワークブックにパラメータを渡すには、次の手順に従います。
エンド・ユーザーがFusion Webアプリケーションから統合Excelワークブックをダウンロードできるように、HTTPフィルタが構成されていることを確認します。デフォルトでは、プロジェクト内でADFデスクトップ統合を有効化すると、JDeveloperによってHTTPフィルタが適切な値で構成されます。HTTPフィルタのパラメータ値を検証するには、D.2項「ADFデスクトップ統合Excelダウンロード・フィルタの構成」を参照してください。
エンド・ユーザーがワークブックをダウンロードできるFusion WebアプリケーションのWebページで名前/値のペアをURL引数として使用します。詳細は、15.5.1項「Fusion Webアプリケーションのページを構成してパラメータを渡す方法」を参照してください。
|
注意: ?より右の、問合せ文字列全体のURLエンコードされたランタイム値は、2048バイト未満にする必要があります。ランタイム値が2048バイトを超える場合、統合Excelワークブックに含まれるURL引数は、2048バイト内に収まる分のみです。残りのURL引数は、統合Excelワークブックに含まれません。かわりに、これらのURL引数が含まれていないことを示すログ・エントリがFusion Webアプリケーションによって書き込まれます。
たとえば、
この上限を超える情報を渡す必要がある場合は、(カスタム)データベース表に一時的に格納し、一意のトークンのみを渡して、その情報レイヤーを参照することを検討してください。この技術により、望ましくない公開からコンテキスト情報も保護されます。 |
「ワークブックのプロパティの編集」ダイアログおよび「ワークシートのプロパティの編集」ダイアログでパラメータ名を定義します。詳細は、15.5.2項「統合Excelワークブックでパラメータのプロパティを構成する方法」を参照してください。
<parameter>要素を追加して、統合Excelワークブックのワークシートに関連付けられているページ定義ファイルを構成します。詳細は、15.5.3項「ワークシートでパラメータを受け取るようにページ定義ファイルを構成する方法」を参照してください。
図15-4に、パラメータをWebアプリケーションからEditWarehouseInventory-DT.xlsxワークブックに渡すために、Summitサンプル・アプリケーションに実装されている手順を示します。Summitサンプル・アプリケーションの詳細は、第2章「ADFデスクトップ統合のサンプル・アプリケーションの概要」を参照してください。
<af:commandButton>などのコンポーネントを使用して、統合ワークブックの公開済コピーをエンド・ユーザーがダウンロードできるようにすることができます。コンポーネントの接続先URLは、統合ワークブックを参照し、その問合せ部分では、URLパラメータの名前と値がワークブックのパラメータ名と値に対応します。また、呼び出されたときに、コンポーネントとそのプロパティ値で参照される値をリフレッシュするようFusion Webアプリケーションに要求するコマンドをページで指定します。
アクション・コンポーネントを使用したファイルのダウンロードの詳細は、『Oracle Application Development Framework Webユーザー・インタフェース開発者ガイド』のアクション・コンポーネントを使用してファイルをダウンロードする方法に関する項を参照してください。
始める前に:
Fusion Webアプリケーションから統合Excelワークブックへパラメータ値を渡す方法を理解しておくと役立ちます。詳細は、15.5項「Fusion Webアプリケーションのページからワークブックへパラメータ値を渡す方法」を参照してください。
他のADFデスクトップ統合の機能を使用して追加できる機能についても理解しておくと役立ちます。詳細は、15.1.2項「統合Excelワークブックをデプロイするための追加の機能」を参照してください。
Fusion Webアプリケーションのページを構成するには:
JDeveloperで、エンド・ユーザーによる統合Excelワークブックのダウンロード元となるページにコンポーネントまたはタグ(af:commandButtonなど)を挿入します。
「構造」ウィンドウでコンポーネントを右クリックし、「プロパティに移動」を選択します。
「共通」セクションを展開し、プロパティの値を設定します。
表15-1に、af:commandButtonコンポーネントのプロパティを示します。
表15-1 af:commandButtonタグのプロパティ
| プロパティ | 値 |
|---|---|
|
|
実行時にエンド・ユーザーに表示されるテキストを記述します。 たとえば、次のようなテキストを記述して実行時に表示します。
|
|
|
ダウンロードする統合Excelワークブックおよびその値をURL引数として指定するEL式を記述するための式ビルダーを起動します。 たとえば、次のようなEL式を記述します。
destination="/excel/EditWarehouseInventory.xlsx?WarehouseId=#{item.bindings.Id.inputValue}"
|
(オプション)「動作」セクションを開き、起動するとaf:commandButtonタグおよびDestinationプロパティの値を更新するpartialTriggersプロパティのコンポーネントIDを指定します。
たとえば、NextButton、PreviousButton、FirstButtonおよびLastButtonというIDのナビゲーション・ボタンがある場合は、次のように指定します。
:NextButton :PreviousButton :FirstButton :LastButton
ページを保存します。
この手順で示した必要な例を使用した場合にJDeveloperによってJSFページに生成されるエントリを、次の例に示します。
エンド・ユーザーによってFusion Webアプリケーションからダウンロードされる統合Excelワークブックが、ワークブックのダウンロードURLの問合せ文字列に含まれているパラメータ値を受け取るように、ワークブックのParametersプロパティおよびワークシートのParametersプロパティを構成します。
始める前に:
Fusion Webアプリケーションから統合Excelワークブックへパラメータ値を渡す方法を理解しておくと役立ちます。詳細は、15.5項「Fusion Webアプリケーションのページからワークブックへパラメータ値を渡す方法」を参照してください。
他のADFデスクトップ統合の機能を使用して追加できる機能についても理解しておくと役立ちます。詳細は、15.1.2項「統合Excelワークブックをデプロイするための追加の機能」を参照してください。
ワークブックのParametersプロパティを構成するには:
統合Excelワークブックを開きます。
「Oracle ADF」タブの「ワークブック」グループで、「ワークブック・プロパティ」をクリックします。
「パラメータ」の入力フィールドの横にある参照(...)アイコンをクリックして、「パラメータの編集」ダイアログを起動します。
「追加」をクリックして新しいワークブック・パラメータを追加し、プロパティを次のように構成します。
「パラメータ」フィールドで、af:commandButtonタグのDestinationプロパティのURL引数として使用するパラメータ名を定義し、15.5.1項「Fusion Webアプリケーションのページを構成してパラメータを渡す方法」の説明に従って、ページ定義パラメータに後でバインドします。
たとえば、EditWarehouseInventory-DT.xlsxワークブックでは、図15-5に示すように、WarehouseIDパラメータ値を定義します。
|
ヒント: 定義した値が標準のURL問合せ文字列に使用できることを確認します。EL式で参照した際に適切に機能するように、使用するパラメータ名は簡単な識別子にしてください。 |
(オプション)「注釈」フィールドに、ワークブック・パラメータの説明を入力します。
必要に応じて、手順4を繰り返し、他のワークブック・パラメータを追加します。
「OK」をクリックします。
ワークブックのParametersプロパティの詳細は、表A-20を参照してください。
ワークシートのParametersプロパティを構成するには:
統合Excelワークブックを開きます。
「Oracle ADF」タブの「ワークブック」グループで、「ワークシート・プロパティ」をクリックします。
「パラメータ」の入力フィールドの横にある参照(...)アイコンをクリックして、「パラメータの編集」ダイアログを起動します。
「追加」をクリックして、新しいワークシート・パラメータを追加し、図15-6に示すように、EditWarehouseInventory-DT.xlsxワークブックから構成します。
15.5.3項「ワークシートのページ定義ファイルを構成してパラメータを受け取る方法」でワークシートに関連付けられているページ定義ファイルに追加したパラメータ要素を、「パラメータ」フィールドで指定します。
ワークブック・パラメータ(ワークブックのParameters配列)に対して指定したParameterプロパティの値を参照するEL式を、「値」フィールドに記述します。EL式を記述する際は、次の構文を使用します。
#{workbook.params.parameter}
parameterは、ワークブック・パラメータ用に指定されたParameterプロパティの値を参照します。
(オプション)「注釈」フィールドに、ワークシート・パラメータの説明を入力します。
必要に応じて、手順4を繰り返し、他のワークブック・パラメータを追加します。
「OK」をクリックします。
ワークシートのParametersプロパティの詳細は、表A-21を参照してください。
新しい各ユーザー・セッションで初期サーバー状態を設定するのに、ワークブック・パラメータ値が必要なユースケースでは、SendParametersプロパティをTrueに設定します。また、メソッド・アクション・バインディングを指定して、ワークブック・パラメータ値を使用してサーバー状態を初期化する、ワークシートのSetupActionIDを起動する必要があります。
ワークシートのSendParametersおよびSetupActionIDプロパティを構成する手順:
統合Excelワークブックを開きます。
「Oracle ADF」タブの「ワークブック」グループで、「ワークシート・プロパティ」をクリックします。
「ワークシート・プロパティの編集」ダイアログで、表15-2および図15-7に示すように、SendParametersおよびSetupActionIDの値を設定します。
表15-2 SendParametersおよびSetupActionIDプロパティ
| 設定するプロパティ | 設定する値 |
|---|---|
|
|
|
|
|
ワークブック・パラメータ値を使用してサーバー状態を初期化する、起動するメソッド・アクション・バインディングを指定します。 詳細は、16.5項「明示的なワークシート設定アクションの使用」を参照してください。 |
「OK」をクリックします。
テスト・モードに入ると、「ワークブック・パラメータ」ダイアログでテスト・パラメータ値の入力を求められます。図15-8に、ワークブックのテスト値を受け入れる「ワークブック・パラメータ」ダイアログを示します。
テスト中、ここに入力した値はワークブック・パラメータ値に使用されます。ワークブック・パラメータをワークシートのページ定義パラメータにバインドした場合、ここに入力した値がバインディング・コンテナに送信されます。一部またはすべてのパラメータの値の入力は必須ではありません。テスト・パラメータ値を入力した場合、テスト・モードを終了して設計モードに戻ったときに値はクリアされません。統合Excelワークブックを再度実行する場合、キャッシュからのワークブック・パラメータ値が「ワークブック・パラメータ」ダイアログに表示されます。
提供されたテスト値は、ADFデスクトップ統合Excelダウンロード・フィルタがパラメータ値を格納するのと同じ方法でワークブックに格納されます。ワークブックを公開する際、ワークブックが公開される前にテスト・パラメータ値がクリアされます。
|
注意: 前述のEditWarehouseInventory-DT.xlsxワークブックの例では、FilterWarehouseMasterByIdメソッド・アクションをワークシートの設定アクション(SetupActionID)に使用できます。これにより、ワークシートが実行時に初期化されるとき(またはワークシートのバインディング・コンテナの新規インスタンスが作成されるたび)に、メソッドが自動的にコールされます。SetupActionIDの詳細は、16.5項「明示的なワークシート設定アクションの使用」を参照してください。
同じメソッド・アクションは、ユースケースに応じてリボン・コマンドや ワークブック・パラメータ値は、ページ定義によって公開される任意のメソッドの引数として使用できます。 |
次の手順で、統合Excelワークブックのワークシートに関連付けられているページ定義ファイルを構成できます。
ワークシートのバインディング・コンテナを初期化する1つ以上のparameter要素を追加します。15.5.1項「パラメータを渡すためにFusion Webアプリケーションのページを構成する方法」に示されているように、これらのパラメータの値はURL引数から提供されます。
次の例は、EditWarehouseInventory-DT.xlsxワークブックに関連付けられているExcelWarehouseInventory.xmlページ定義ファイルに定義されているWarehouseIdParamパラメータを示します。
<parameters>
<parameter id="WarehouseIdParam" value="value"/>
</parameters>
アプリケーション・モジュール・メソッドを起動するメソッド・アクション・バインディングを追加します。次の例は、EditWarehouseInventory-DT.xlsxワークブックに関連付けられているExcelWarehouseInventory.xmlページ定義ファイルの実装を示します。
<methodAction id="FilterWarehouseMasterById" RequiresUpdateModel="true"
Action="invokeMethod" MethodName="FilterWarehouseMasterById"
IsViewObjectMethod="false" DataControl="SummitAppModuleDataControl"
InstanceName="data.SummitAppModuleDataControl.dataProvider">
<NamedData NDName="warehouseId" NDValue="${bindings.WarehouseIdParam}"
NDType="java.lang.String"/>
</methodAction>
ページ定義ファイルの構成の詳細は、4.2項「「統合Excelワークブックのページ定義ファイルの使用」および『Oracle Application Development Framework Fusion開発者ガイド』のページ定義ファイルの使用に関する項を参照してください。
エンド・ユーザーがFusion Webアプリケーションから統合Excelワークブックをダウンロードすると、ダウンロードをトリガーしたコンポーネント・タグ(af:commandButtonなど)が評価され、現在のパラメータ値(warehouseIDなど)が取得されてURLに組み込まれます。adfdiExcelDownloadフィルタによって、URLのすべてのパラメータの名前および値が、ダウンロードされた統合Excelワークブックに埋め込まれます。
これらのパラメータは、バインディング・コンテナがリフレッシュされる前にBindingContainer DCParametersに設定されます。ワークシート・パラメータがバインディング・コンテナにどのようにマップされるかの詳細は、15.5.3項「ワークシートでパラメータを受け取るようにページ定義ファイルを構成する方法」を参照してください。
新しい各ユーザー・セッションで初期サーバー状態を設定するのに、ワークブック・パラメータ値が必要なユースケースでは、Worksheet.ServerContext.SendParametersプロパティをTrueに設定します。また、メソッド・アクション・バインディングを指定して、ワークブック・パラメータ値を使用してサーバー状態を初期化する、ワークシートのSetupActionIDを起動する必要があります。ワークシートSetupActionIDプロパティの詳細は、16.5項「明示的なワークシート設定アクションの使用」を参照してください。
EditWarehouseInventory.xlsxワークブックでは、FilterWarehouseMasterByIdメソッドがユーザー・セッションごとに起動され、ダウンロードしたワークブックに格納されているワークブックWarehouseIdパラメータ値を使用して、正しいサーバー状態が設定されます。
ワークブックのすべてのワークシートの初期化状態をリセットするには、ClearAllDataアクションを起動します。ClearAllDataアクションの詳細は、表A-19を参照してください。
ADFデスクトップ統合では、Oracle Metadata Services (MDS)ベースのランタイム・カスタマイズもサポートされます。MDSの詳細は、『Oracle Application Development Framework Fusion開発者ガイド』の「MDSによるアプリケーションのカスタマイズ」を参照してください。
ワークブック統合メタデータでは、ADFデスクトップ統合コンポーネントがワークブックでどのように表示され動作するか、またワークブックがそのFusion Webアプリケーションでどのように統合されるかを定義します。ワークブックが公開されると、そのワークブック統合メタデータのXMLファイルが設計時のワークブックのコピーと同じ場所に保存されます。カスタマイズ対応ワークブックの公開の詳細は、15.3項「統合Excelワークブックの公開」を参照してください。
カスタマイズ対応ワークブックのワークブック統合メタデータ・ファイルは、MDSによって管理できるようにMDSメタデータ・リポジトリにデプロイする必要があります。メタデータ・リポジトリの詳細は、管理者ガイドの「メタデータ・リポジトリの管理」を参照してください。
ワークブック統合メタデータのカスタマイズを有効にするには、「ワークブックのプロパティ」ダイアログを開き、CustomizationEnabledをTrueに設定します。
始める前に:
ワークブック統合メタデータのカスタマイズを理解しておくと役立ちます。詳細は、15.6項「実行時のワークブック統合メタデータのカスタマイズ」を参照してください。
他のADFデスクトップ統合の機能を使用して追加できる機能についても理解しておくと役立ちます。詳細は、15.1.2項「統合Excelワークブックをデプロイするための追加の機能」を参照してください。
ワークブックの実行時カスタマイズを有効にする手順:
統合Excelワークブックを開きます。
「Oracle ADF」タブの「ワークブック」グループで、「ワークブック・プロパティ」をクリックします。
「CustomizationEnabled」をTrueに設定します。
「OK」をクリックします。
カスタマイズ対応ワークブックを公開します。
カスタマイズ対応ワークブックは、ワークブックの初期化時にサーバーからそのメタデータを取得します。
この統合メタデータは、サーバー側のMDSによって管理され、MDS APIを通じてアプリケーションによってアクセスできます。実行時に、アプリケーションはユーザーにワークブック統合メタデータをカスタマイズする手段を提供できます。カスタマイズ対応ワークブックは、初期化されると、ワークブック統合メタデータをサーバーにリクエストします。MDSは、現在のカスタマイズ・コンテキストに基づいてすべてのカスタマイズを適用し、カスタマイズされたメタデータをその初期化のためにワークブックに戻します。
15.7項「「Fusion WebアプリケーションへのADFワークブック・コンポーザの統合」に説明されているように、アプリケーション開発者は、シード・カスタマイズをアプリケーションに含めたり、ADFワークブック・コンポーザを統合したりできます。たとえば、カスタマイズ対応のワークブックの表の列をユーザーがカスタマイズできるWebページをアプリケーションで提供できます。ユーザーは、Webページ上の表から特定の列を削除し、カスタマイズ対応ワークブックをダウンロードして、ワークブックに適用される変更を確認できます。
カスタマイズ対応ワークブックは、関連付けられたプロジェクトのpublic_htmlディレクトリの下のディレクトリにのみ公開できます。アプリケーションをデプロイする際には、ワークブックが公開されるときに生成されたメタデータ・パスを使用して、対応するワークブック統合メタデータ・ファイルがMDSによって見つかることを確認します。
各カスタマイズ対応ワークブックには、固有のワークブック統合メタデータ・ファイルがあります。ワークブックが公開されると、そのワークブック統合メタデータのXMLファイルが設計時のワークブックのコピーと同じ場所に保存されます。このワークブック統合メタデータ・ファイルをMDSメタデータ・リポジトリにデプロイして、実行時にMDSが管理できるようにする必要があります。MDSの用語では、ワークブック統合メタデータ・ファイルはベース・ドキュメントであり、メタデータ・パスを使用してMDSによって参照されます。メタデータ・パスは、カスタマイズ対応ワークブックの公開時に決定されます。
たとえば、設計時のカスタマイズ対応ワークブックが<PROJECT_HOME>/public_html/myCompany/myPackage/myWorkbook.xlsxに公開され、そのワークブック統合メタデータ・ファイル名がmyWorkbook-DT.xlsx-workbook-definition.xmlの場合、このワークブックのメタデータ・パスは/myCompany/myPackage/myWorkbook-DT.xlsx-workbook-defintion.xmlです。実行時に、MDSはアプリケーションで構成されたリポジトリ内で、このメタデータ・パスを使用してワークブック統合メタデータを探します。メタデータ・パスは、アプリケーション全体で一意である必要があります。
デフォルトでは、MDSリポジトリがワークブック統合メタデータ・ファイルに対して構成されていない場合、MDSは前述のメタデータ・パスを使用してクラスパス上でメタデータ・ファイルを検索します。MDSの構成を回避するために、Fusion Webアプリケーションのクラスパス上にワークブック統合メタデータ・ファイルをホストできます。
ADFワークブック・コンポーザは、許可されたユーザーがFusion Webアプリケーションの実行時Webユーザー・インタフェースから統合ExcelワークブックをカスタマイズできるようにするADFタスク・フローです。
ADFワークブック・コンポーザを使用するには、カスタマイズ対応のワークブックをFusion Webアプリケーションに統合し、メタデータをMDSで管理する必要があります。カスタマイズ対応のワークブックの詳細は、15.6項「実行時のワークブック統合メタデータのカスタマイズ」を参照してください。
ADFワークブック・コンポーザを使用すると、エンド・ユーザーは実行時に次のアクションを実行できます。
統合ExcelワークブックのADFコンポーネントの編集または削除
ワークシートでのコンポーネントの再配置
ADFコンポーネントのツールチップ、ラベルおよびソースの編集
ワークシートの削除
ADFワークブック・コンポーザのタスク・フローは、ADFライブラリとしてadf-workbook-composer.jarファイルにあります。jarファイルは、MWHOME/oracle_common/modules/oracle.adf.desktopintegrationディレクトリにあります。
ADFワークブック・コンポーザをFusion Webアプリケーションに統合する手順:
JDeveloperでFusion Webアプリケーションを開きます。
adf-workbook-composer.jarファイルをADFライブラリjarとしてFusion Webアプリケーションに追加します。
アプリケーション・ナビゲータで、プロジェクト(ViewControllerなど)を選択して右クリックし、「プロジェクト・プロパティ」を選択します。
「プロジェクト・プロパティ」で、「ライブラリとクラスパス」を選択します。
「ライブラリとクラスパス」ページで「ライブラリの追加」をクリックします。
「ライブラリの追加」ダイアログで、「新規」をクリックします。
「ライブラリの作成」ダイアログで、ライブラリ名としてADF Workbook Composer Runtimeと入力します。
「エントリの追加」をクリックします。
MWHOME/oracle_common/modules/oracle.adf.desktopintegration_11.1.1ディレクトリに移動して、adf-workbook-composer.jarファイルをクリックし、「開く」をクリックします。
|
注意: 実行時にクラス・パスに表示されるadf-workbook-composer.jarファイルのコピーが重複しないように、「デフォルトでデプロイ済」チェック・ボックスの選択を解除してください。oracle.adf.desktopintegration共有ライブラリには、15.7.2項「実行時の処理: ADFワークブック・コンポーザの起動」に説明されているadf-workbook-composer.jarファイルが含まれます。 |
アプリケーション・ナビゲータで、ADFワークブックコンポーザ・ランタイム・ライブラリを選択して展開します。
ライブラリが表示されない場合は、「表示」→「アプリケーション・プロジェクト」→「ライブラリの表示」を選択します。
WEB-INF\oracle\adf\workbookcomposer\view\taskflowsのworkbook-customization-task-flow.xmlファイルを特定し、ファイルをドラッグ・アンド・ドロップして、タスク・フローをホスト・ページ内にインポートします。
必要に応じて、目的のカスタマイズ・コンテキストを設定します。
MDSリポジトリをadf-config.xmlに構成し、メタデータ・パスでワークブック・メタデータ・ファイルにアクセスできることを確認します。
必要なワークブック・メタデータ・パスおよびワークブック名パラメータをタスク・フローに指定します。
Fusion Webアプリケーションの認可が有効の場合は、ワークブック・コンポーザjarファイルの/WEB-INF/oracle/adf/workbookcomposer/view/taskflows/ディレクトリにある、次のタスク・フローのリソース・アクセス権をユーザーに付与するためのセキュリティ・ポリシーを構成する必要があります。
button-customization-task-flow.xml
form-component-customization-task-flow.xml
image-customization-task-flow.xml
not-supported-task-flow.xml
read-only-table-customization-task-flow.xml
ribbon-command-customization-task-flow.xml
table-customization-task-flow.xml
workbook-customization-task-flow.xml
ホストのWebページを実行して、ワークブック・コンポーザが正しくレンダリングされることを確認します。
ADFワークブック・コンポーザのタスク・フローは、ADFライブラリjarアフィルとしてadf-workbook-composer.jarファイルにあります。このjarは、oracle.adf.desktopintegration共有ライブラリに格納されています。oracle.adf.desktopintegration共有ライブラリは、Application Development Runtimeのインストール・プロセスの一部としてインストールされ、JRFドメイン拡張テンプレートに含まれています。Application Development Runtimeをインストールした場合、Fusion WebアプリケーションがWebLogic Serverで実行されると、実行時にADFワークブック・コンポーザのタスク・フローを使用できます。Application Development Runtimeのインストールの詳細は、『Oracle Application Development Framework管理者ガイド』の「ADFアプリケーションの開発」を参照してください。
実行時に、ADFワークブック・コンポーザから行ったカスタマイズは、Fusion Webアプリケーションを再起動することなく即座に適用されます。ワークブックのカスタマイズに関連付けられているカスタマイズ・コンテキストを照合するエンド・ユーザーが、統合Excelワークブックの新しいコピーをダウンロードして開くか、初期化されたワークブックでClearAllDataワークブック・アクションを起動してからログインすると、そのカスタマイズが表示されます。
ADFワークブック・コンポーザのタスク・フローには、次の2つのパラメータが必要です。
WorkbookName – 実行時にユーザーがカスタマイズする、公開されたワークブックの名前。名前はコンポーザに表示されます。
WorkookMetadataPath – ワークブック・メタデータ・ファイルのパス。これは、カスタマイズするワークブックのメタデータ・ファイルを特定するためにMDSで使用されるパスです。ワークブック・メタデータ・ファイルは、設計時ワークブックが公開されると生成されます。メタデータ・パスは、ワークブックの公開先の場所によって決定されます。