この章の内容は次のとおりです。
統合Excelワークブックの開発が終了した後、最終の統合Excelワークブックをエンド・ユーザーが使用できるようにするために、完成したFusion Webアプリケーションをアプリケーション・サーバーにデプロイします。Fusion Webアプリケーションと統合される最終のExcelワークブックをデプロイする前に、「統合Excelワークブックの公開」の説明に従って、このExcelワークブックを公開する必要があります。Excelワークブックを公開した後、『Oracle Application Development FrameworkによるFusion Webアプリケーションの開発』の「Fusion Webアプリケーションのデプロイ」の章に概説されている方法のいずれかを使用してデプロイできます。
エンド・ユーザーがADFデスクトップ統合アドインをインストールできるように、ADFデスクトップ統合のadfdi-excel-addin-installer.exe
をエンド・ユーザーが使用できるようにしてください。詳細は、「エンド・ユーザーがADFデスクトップ統合を使用できるようにするための処理」を参照してください。
統合Excelワークブックのデプロイ対象となるエンド・ユーザーは、次の作業を行う必要があります。
ADFデスクトップ統合のExcel用アドインをWindowsベースのコンピュータにインストールします。
「ADFデスクトップ統合と協働するExcelの構成」の説明に従って、Excelアプリケーションのセキュリティ設定を構成します。
「Oracle ADF」タブの「公開」ボタンを使用して、ワークブックの公開済コピーを保存します。図15-1に、「公開」ボタン、およびこのボタンをクリックすると開く「ワークブックの公開」ダイアログを示します(このダイアログを使用して、公開およびFusion Webアプリケーションとともにデプロイするための準備が整った統合Excelワークブックのコピーを保存します)。
図15-1 ワークブックの公開ダイアログ
統合Excelワークブックを公開してデプロイした後、必要に応じてワークブックの機能をさらに追加できます。次の各項では、使用可能なその他の機能について説明します。
パラメータ渡し: Fusion Webアプリケーションのページを構成して、エンド・ユーザーがそのページからワークブックをダウンロードするときに、統合Excelワークブックにパラメータ値を渡すことができます。詳細は、「Fusion Webアプリケーションのページからワークブックへパラメータ値を渡す方法」を参照してください。
統合Excelワークブックで構成した機能をエンド・ユーザーが使用するには、「システムへのADFデスクトップ統合のインストール方法」の説明に従って、ADFデスクトップ統合をインストールする必要があります。
インストーラをエンド・ユーザーが使用できるようにする方法の詳細は、『Oracle ADFアプリケーションの管理』のWebサーバーからADFデスクトップ統合アドインをインストールする方法に関する項を参照してください。
インストール・プログラム(adfdi-excel-addin-installer.exe
)は、次のディレクトリにあります。
MW_HOME
\oracle_common\modules\oracle.adf.desktopintegration
MW_HOME
はミドルウェア・ホーム・ディレクトリです。
Oracle ADFの機能を使用したExcelワークブックの構成が終了したら、これを公開する必要があります。ワークブックを公開することで、統合Excelワークブックを実行時にエンド・ユーザーが使用できるようになります。
ADFデスクトップ統合では、ワークブックを公開する方法が2つ用意されています。統合ExcelワークブックをExcelから直接公開するか、JDeveloperで使用可能な公開ツールを使用してコマンドラインからワークブックを公開できます。コマンドラインの公開ツールでは、ANTスクリプトなどのスクリプトを使用して、Fusion Webアプリケーションから統合Excelワークブックを公開できます。
注意:
1つまたは複数のワークブックを公開した後で、それらのワークブックをダウンロードしてMicrosoft Excelで正常に開くために、Fusion Webアプリケーションを再起動する必要があります。Webアプリケーションが再起動されないと、次のようなエラーが発生する可能性があります。
TampercheckErrorException: ADFDI-05537: ワークブック統合の整合性を判別できませんでした。
カスタマイズ対応のワークブックは、関連付けられたプロジェクトのpublic_html
ディレクトリ(またはそのサブディレクトリ)の下のターゲットの場所にのみ公開できます。
ワークブックを公開するには、「Oracle ADF」タブ上のボタンをクリックして、表示されるダイアログで値を指定します。
開始する前に:
統合Excelワークブックの公開方法について理解しておくと役立ちます。詳細は、「統合Excelワークブックの公開」を参照してください。
他のADFデスクトップ統合の機能を使用して追加できる機能についても理解しておくと役立ちます。詳細は、「統合Excelワークブックをデプロイするための追加の機能」を参照してください。
Excelからワークブックを公開するには:
この公開ツールはコマンド行から実行するもので、MW_HOME
\jdeveloper\adfdi\bin\excel\tools\publish
ディレクトリにあるpublish-workbook.exe
を指します。公開ツールを実行する前に、ソースの統合Excelワークブックを開いて「ワークブック・プロパティの編集」ダイアログのApplicationHomeFolder
およびWebPagesFolder
プロパティが正しいことを確認します。
注意:
すでに公開済のワークブックまたは実行時モードのワークブックを公開することはできません。
開始する前に:
統合Excelワークブックの公開方法について理解しておくと役立ちます。詳細は、「統合Excelワークブックの公開」を参照してください。
他のADFデスクトップ統合の機能を使用して追加できる機能についても理解しておくと役立ちます。詳細は、「統合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
ヒント:
公開ツールの必須の引数に関する詳細を参照するには、次のコマンドを実行します。
publish-workbook -help (-h)
注意:
必ずソースおよび保存先のワークブックの絶対パスを指定します。公開ツールでは、ワークブックの相対パスをサポートしていません。
ワークブックのパスが異なる場合でも、保存先のワークブックにソースと同じ名前を付けることはできません。
統合Excelワークブックが正常に公開されると、公開ツールによって成功メッセージが表示されます。ワークブックの公開中にエラーが発生した場合は、公開ツールによって処理が中止され、コマンド行コンソールにエラー・メッセージが表示されます。
ANTでの公開ツールの使用
Fusion Webアプリケーションのビルド時にANTスクリプトを作成して、JDeveloperから公開ツールを実行できます。ANTを使用してユーティリティを実行するには、次のいずれかの方法を使用します。
プロジェクト用のANTビルド・スクリプトを生成して、ワークブックのコマンド行公開ツールを実行するためのターゲットを追加します。
ワークブックのコマンド行公開ツールを実行するために、別個のANTビルド・スクリプトを生成または作成します。
公開ツールを実行するためのANTビルド・スクリプトのサンプル(publish-workbook.xml
)は、MW_HOME
\jdeveloper\adfdi\bin\excel\samples
ディレクトリにあります。このANTスクリプトのサンプルは、コマンド行のワークブック公開ツールの起動を実例で示します。
設計モードで「公開」ボタンをクリックすると、ADFデスクトップ統合では次のアクションが実行されます。
必須のワークブック設定を検証します。
クライアント・レジストリを更新します。詳細は、「統合Excelワークブックのメタデータの整合性チェック」を参照してください。
公開されるワークブックを、指定のファイル名で、指定のディレクトリに作成します。
公開によっても、ワークブック定義がエクスポートされます。公開されたワークブック定義のXMLファイルは、設計時のワークブックのコピーと同じ場所に保存されます。ワークブック定義の詳細は、「Excelワークブック統合メタデータのエクスポートおよびインポート」を参照してください。
公開されるワークブックのワークブック設定からApplicationHomeFolder
、WebAppRoot
およびWebPagesFolder
の各プロパティを消去します。
設計時のすべてのコンポーネントのプレースホルダを消去します。
ワークブックのモードを実行時モードに変更します。
Publishing Timestamp
プロパティをワークブックに挿入します。このプロパティは、「情報」ダイアログの「プロパティ」タブに表示されます。
「統合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 Fusion Webアプリケーションからの統合Excelワークブックの起動
図15-2に示されている機能を有効にするには、Excelワークブックが認識されるようにFusion WebアプリケーションのHTTPフィルタ・パラメータを構成する必要があります。Fusion WebアプリケーションでADFデスクトップ統合が有効になっている場合、これらのパラメータはJDeveloperによって自動的に構成されます。HTTPフィルタ・パラメータを手動で構成する場合は、「Webアプリケーション・デプロイメント・ディスクリプタでのADFデスクトップ統合の設定」を参照してください。
Fusion WebアプリケーションのHTTPフィルタを構成した後、Fusion Webアプリケーションによってエンド・ユーザーに表示されるWebページを構成し、エンド・ユーザーがExcelワークブックを起動できるようにします。Fusion Webアプリケーションと統合されたExcelワークブックを起動できるようにする基本的な方法は、ワークブックを起動するハイパーリンクを提供することです。たとえば、Webページに次のようなADFコードを記述できます。
<af:link 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 ADF FacesによるWebユーザー・インタフェースの開発』を参照してください。
ADFデスクトップ統合が有効になっているFusion WebアプリケーションをJDeveloperからデプロイする際は、ADFデスクトップ統合の共有ライブラリへの参照が適切なディスクリプタ・ファイルに追加されます。ADFデスクトップ統合のモデルAPIライブラリまたはADFデスクトップ統合ランタイム・ライブラリを参照する1つ以上のプロジェクトを含むすべてのFusion Webアプリケーションについて、プラットフォームに依存するADFデスクトップ統合モデルAPIの共有ライブラリへの参照がデプロイメント中に追加されます。
ADFデスクトップ統合ランタイム・ライブラリへの参照を含むすべてのWebアプリケーション・モジュール(WAR)プロジェクトの場合は、プラットフォームに依存しないADFデスクトップ統合ランタイム共有ライブラリへの参照がデプロイメント中に追加されます。
Oracle WebLogicサーバーに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
に配信されます。
デプロイされる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
に配信されます。
web.xml
がADFデスクトップ統合を使用するFusion Webアプリケーション用に構成されている場合、次のことが起こります
ADFデスクトップ統合を使用するFusion Webアプリケーション用に構成されている場合、次のイベントが発生します。
DIExcelDownloadFilter
フィルタが定義されます。
フィルタ・マッピングは、*.xlsx
および*.xlsm
ファイルに定義されます。
実行時に、エンド・ユーザーがワークブックに対してHTTPリクエストを出す(たとえば、ユーザーがアプリケーションからWebページのリンクをクリックする)と、DIExcelDownloadFilter
フィルタは、HTTPレスポンスとしてストリーム化されて戻されたWebAppRoot
プロパティをワークブックに埋め込みます。WebAppRoot
プロパティは後でADFデスクトップ統合クライアントにより使用されて、Fusion Webアプリケーションに接続し、ユーザー・セッションを確立し、データを相互に送信します。「Fusion Webアプリケーションのページからワークブックへパラメータ値を渡す方法」に説明されているように、パラメータ値をWebアプリケーションからワークブックに渡すこともできます。
DIExcelDownloadFilter
フィルタはWebAppRoot
値を、doFilter()
エントリ・ポイントに渡される現在のHttpServletRequest
オブジェクトから構築します。フィルタ・コードはHttpServletRequest.getRequestURL()
を呼び出し、コンテキスト・パス部分の後をすべて削除する(HttpServletRequest.getContextPath()
を使用)ことで、完全なURLの"root"部分を取得します。
Fusion Webアプリケーション・ページは、エンド・ユーザーがそのページからワークブックをダウンロードするときに、統合Excelワークブックにパラメータ値を渡すように構成できます。ワークブック・パラメータを使用して、ユーザーのWebページから統合ワークブックにコンテキストを渡すことができます。渡されたコンテキストは、統合ワークブックからWebアプリケーションに送信されて戻され、アプリケーションの状態に影響します(ワークブックでどのようなデータがレンダリングされるかなど)。たとえば、図15-3に示すように、Summitサンプル・アプリケーションでは、倉庫のリストがエンド・ユーザーに表示されます。エンド・ユーザーがワークブックのダウンロード・ボタンをクリックすると、Summitサンプル・アプリケーションは、WarehouseID
パラメータの値をワークブックに渡してダウンロードします。渡されたWarehouseID
パラメータでは、倉庫のどのデータが編集用にワークシートにレンダリングされるかを制御します。
図15-3 パラメータ値に基づいたワークブックのダウンロード
Fusion Webアプリケーション・ページから統合Excelワークブックにパラメータを渡すには、次の手順に従います。
エンド・ユーザーがFusion Webアプリケーションから統合Excelワークブックをダウンロードできるように、HTTPフィルタが構成されていることを確認します。デフォルトでは、プロジェクト内でADFデスクトップ統合を有効化すると、JDeveloperによってHTTPフィルタが適切な値で構成されます。HTTPフィルタのパラメータ値を検証するには、「ADFデスクトップ統合Excelダウンロード・フィルタの構成」を参照してください。
エンド・ユーザーがワークブックをダウンロードできるFusion WebアプリケーションのWebページで名前/値のペアをURL引数として使用します。詳細は、「Fusion Webアプリケーションのページを構成してパラメータを渡す方法」を参照してください。
注意:
?
より右の、問合せ文字列全体のURLエンコードされたランタイム値は、2048バイト未満にする必要があります。ランタイム値が2048バイトを超える場合、統合Excelワークブックに含まれるURL引数は、2048バイト内に収まる分のみです。残りのURL引数は、統合Excelワークブックに含まれません。かわりに、これらのURL引数が含まれていないことを示すログ・エントリがFusion Webアプリケーションによって書き込まれます。
たとえば、?
の右にある、次のEL式が評価されてからURLエンコードされた文字列結果の合計サイズは、2048バイトよりも小さい必要があります。
"/excel/EditWarehouseInventory.xlsx?WarehouseId=#{item.bindings.Id.inputValue}"
この上限を超える情報を渡す必要がある場合は、(カスタム)データベース表に一時的に格納し、一意のトークンのみを渡して、その情報レイヤーを参照することを検討してください。この技術により、望ましくない公開からコンテキスト情報も保護されます。
「ワークブックのプロパティの編集」ダイアログおよび「ワークシートのプロパティの編集」ダイアログでパラメータ名を定義します。詳細は、「統合Excelワークブックでパラメータのプロパティを構成する方法」を参照してください。
<parameter>
要素を追加して、統合Excelワークブックのワークシートに関連付けられているページ定義ファイルを構成します。詳細は、「ワークシートでパラメータを受け取るようにページ定義ファイルを構成する方法」を参照してください。
図15-4に、パラメータをWebアプリケーションからEditWarehouseInventory-DT.xlsx
ワークブックに渡すために、Summitサンプル・アプリケーションに実装されている手順を示します。Summitサンプル・アプリケーションの詳細は、「ADFデスクトップ統合のサンプル・アプリケーションの概要」を参照してください。
図15-4 パラメータを渡すためのワークブックとFusion Webアプリケーションの構成
<af:button>
などのコンポーネントを使用して、統合ワークブックの公開済コピーをエンド・ユーザーがダウンロードできるようにすることができます。コンポーネントの接続先URLは、統合ワークブックを参照し、その問合せ部分では、URLパラメータの名前と値がワークブックのパラメータ名と値に対応します。また、呼び出されたときに、コンポーネントとそのプロパティ値で参照される値をリフレッシュするようFusion Webアプリケーションに要求するコマンドをページで指定します。
アクション・コンポーネントを使用したファイルのダウンロードの詳細は、『Oracle ADF FacesによるWebユーザー・インタフェースの開発』のファイルをダウンロードするためのアクション・コンポーネントの使用方法に関する項を参照してください。
開始する前に:
Fusion Webアプリケーションから統合Excelワークブックへパラメータ値を渡す方法を理解しておくと役立ちます。詳細は、「Fusion Webアプリケーションのページからワークブックへパラメータ値を渡す方法」を参照してください。
他のADFデスクトップ統合の機能を使用して追加できる機能についても理解しておくと役立ちます。詳細は、「統合Excelワークブックをデプロイするための追加の機能」を参照してください。
Fusion Webアプリケーションのページを構成するには:
エンド・ユーザーによってFusion Webアプリケーションからダウンロードされる統合Excelワークブックが、ワークブックのダウンロードURLの問合せ文字列に含まれているパラメータ値を受け取るように、ワークブックのParameters
プロパティおよびワークシートのParameters
プロパティを構成します。
開始する前に:
Fusion Webアプリケーションから統合Excelワークブックへパラメータ値を渡す方法を理解しておくと役立ちます。詳細は、「Fusion Webアプリケーションのページからワークブックへパラメータ値を渡す方法」を参照してください。
他のADFデスクトップ統合の機能を使用して追加できる機能についても理解しておくと役立ちます。詳細は、「統合Excelワークブックをデプロイするための追加の機能」を参照してください。
ワークブックのParametersプロパティを構成するには:
統合Excelワークブックを開きます。
「Oracle ADF」タブの「ワークブック」グループで、「ワークブック・プロパティ」をクリックします。
「パラメータ」の入力フィールドの横にある参照(...)アイコンをクリックして、「パラメータの編集」ダイアログを起動します。
「追加」をクリックして新しいワークブック・パラメータを追加し、プロパティを次のように構成します。
「パラメータ」フィールドで、af:button
タグのDestination
プロパティのURL引数として使用するパラメータ名を定義し、「Fusion Webアプリケーションのページを構成してパラメータを渡す方法」の説明に従って、ページ定義パラメータに後でバインドします。
たとえば、EditWarehouseInventory-DT.xlsx
ワークブックでは、図15-5に示すように、WarehouseID
パラメータ値を定義します。
ヒント:
定義した値が標準のURL問合せ文字列に使用できることを確認します。EL式で参照した際に適切に機能するように、使用するパラメータ名は簡単な識別子にしてください。
図15-5 ワークブック・パラメータ
(オプション)「注釈」フィールドに、ワークブック・パラメータの説明を入力します。
必要に応じて、手順4を繰り返し、他のワークブック・パラメータを追加します。
「OK」をクリックします。
ワークブックのParameters
プロパティの詳細は、表A-20を参照してください。
ワークシートのParametersプロパティを構成するには:
統合Excelワークブックを開きます。
「Oracle ADF」タブの「ワークブック」グループで、「ワークシート・プロパティ」をクリックします。
「パラメータ」の入力フィールドの横にある参照(...)アイコンをクリックして、「パラメータの編集」ダイアログを起動します。
「追加」をクリックして、新しいワークシート・パラメータを追加し、図15-6に示すように、EditWarehouseInventory-DT.xlsx
ワークブックから構成します。
「ワークシートでパラメータを受け取るようにページ定義ファイルを構成する方法」でワークシートに関連付けられているページ定義ファイルに追加したパラメータ要素を、「パラメータ」フィールドで指定します。
ワークブック・パラメータ(ワークブックのParameters
配列)に対して指定したParameter
プロパティの値を参照するEL式を、「値」フィールドに記述します。EL式を記述する際は、次の構文を使用します。
#{workbook.params.
parameter
}
parameter
は、ワークブック・パラメータ用に指定されたParameter
プロパティの値を参照します。
(オプション)「注釈」フィールドに、ワークシート・パラメータの説明を入力します。
図15-6 ワークシート・パラメータ
必要に応じて、手順4を繰り返し、他のワークブック・パラメータを追加します。
「OK」をクリックします。
ワークシートのParameters
プロパティの詳細は、表A-21を参照してください。
新しい各ユーザー・セッションで初期サーバー状態を設定するのに、ワークブック・パラメータ値が必要なユースケースでは、SendParameters
プロパティをTrue
に設定します。また、メソッド・アクション・バインディングを指定して、ワークブック・パラメータ値を使用してサーバー状態を初期化する、ワークシートのSetupActionID
を起動する必要があります。
ワークシートのSendParametersおよびSetupActionIDプロパティを構成する手順:
テスト・モードに入ると、「ワークブック・パラメータ」ダイアログでテスト・パラメータ値の入力を求められます。図15-8に、ワークブックのテスト値を受け入れる「ワークブック・パラメータ」ダイアログを示します。
図15-8 「ワークブック・パラメータ」ダイアログ
テスト中、ここに入力した値はワークブック・パラメータ値に使用されます。ワークブック・パラメータをワークシートのページ定義パラメータにバインドした場合、ここに入力した値がバインディング・コンテナに送信されます。一部またはすべてのパラメータの値の入力は必須ではありません。テスト・パラメータ値を入力した場合、テスト・モードを終了して設計モードに戻ったときに値はクリアされません。統合Excelワークブックを再度実行する場合、キャッシュからのワークブック・パラメータ値が「ワークブック・パラメータ」ダイアログに表示されます。
提供されたテスト値は、ADFデスクトップ統合Excelダウンロード・フィルタがパラメータ値を格納するのと同じ方法でワークブックに格納されます。ワークブックを公開する際、ワークブックが公開される前にテスト・パラメータ値がクリアされます。
注意:
前述のEditWarehouseInventory-DT.xlsx
ワークブックの例では、FilterWarehouseMasterById
メソッド・アクションをワークシートの設定アクション(SetupActionID
)に使用できます。これにより、ワークシートが実行時に初期化されるとき(またはワークシートのバインディング・コンテナの新規インスタンスが作成されるたび)に、メソッドが自動的にコールされます。SetupActionID
の詳細は、「明示的なワークシート設定アクションの使用」を参照してください。
同じメソッド・アクションは、ユースケースに応じてリボン・コマンドやStartup
イベントなどのアクション・セットの一部として構成することもできます。リボン・コマンドの場合、その実行はエンド・ユーザーによってトリガーされます。リボン・コマンドおよびStartup
イベントの詳細は、「実行時リボン・タブのワークシート・リボン・コマンドの構成方法」および「ワークシート・イベントからアクション・セットを起動する方法」を参照してください。
ワークブック・パラメータ値は、ページ定義によって公開される任意のメソッドの引数として使用できます。
次の手順で、統合Excelワークブックのワークシートに関連付けられているページ定義ファイルを構成できます。
ワークシートのバインディング・コンテナを初期化する1つ以上のparameter
要素を追加します。「パラメータを渡すために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>
ページ定義ファイルの構成の詳細は、「統合Excelワークブックのページ定義ファイルの使用」および『Oracle Application Development FrameworkによるFusion Webアプリケーションの開発』のページ定義ファイルの使用に関する項を参照してください。
エンド・ユーザーがFusion Webアプリケーションから統合Excelワークブックをダウンロードすると、ダウンロードをトリガーしたコンポーネント・タグ(af:button
など)が評価され、現在のパラメータ値(warehouseID
など)が取得されてURLに組み込まれます。adfdiExcelDownload
フィルタによって、URLのすべてのパラメータの名前および値が、ダウンロードされた統合Excelワークブックに埋め込まれます。
これらのパラメータは、バインディング・コンテナがリフレッシュされる前にBindingContainer
DCParameters
に設定されます。ワークシート・パラメータがバインディング・コンテナにどのようにマップされるかの詳細は、「ワークシートでパラメータを受け取るようにページ定義ファイルを構成する方法」を参照してください。
新しい各ユーザー・セッションで初期サーバー状態を設定するのに、ワークブック・パラメータ値が必要なユースケースでは、Worksheet.ServerContext.SendParameters
プロパティをTrue
に設定します。また、メソッド・アクション・バインディングを指定して、ワークブック・パラメータ値を使用してサーバー状態を初期化する、ワークシートのSetupActionID
を起動する必要があります。ワークシートSetupActionID
プロパティの詳細は、「明示的なワークシート設定アクションの使用」を参照してください。
EditWarehouseInventory.xlsx
ワークブックでは、FilterWarehouseMasterById
メソッドがユーザー・セッションごとに起動され、ダウンロードしたワークブックに格納されているワークブックWarehouseId
パラメータ値を使用して、正しいサーバー状態が設定されます。
ワークブックのすべてのワークシートの初期化状態をリセットするには、ClearAllData
アクションを起動します。ClearAllData
アクションの詳細は、表A-19を参照してください。
ADFデスクトップ統合では、Oracle Metadata Services (MDS)ベースのランタイム・カスタマイズもサポートされます。MDSの詳細は、『Oracle Application Development FrameworkによるFusion Webアプリケーションの開発』の「MDSによるアプリケーションのカスタマイズ」の章を参照してください。
ワークブック統合メタデータでは、ADFデスクトップ統合コンポーネントがワークブックでどのように表示され動作するか、またワークブックがそのFusion Webアプリケーションでどのように統合されるかを定義します。ワークブックが公開されると、そのワークブック統合メタデータのXMLファイルが設計時のワークブックのコピーと同じ場所に保存されます。カスタマイズ対応ワークブックの公開の詳細は、「統合Excelワークブックの公開」を参照してください。
カスタマイズ対応ワークブックのワークブック統合メタデータ・ファイルは、MDSによって管理できるようにMDSメタデータ・リポジトリにデプロイする必要があります。メタデータ・リポジトリの詳細は、『Oracle Fusion Middlewareの管理』の「メタデータ・リポジトリの管理」の章を参照してください。
ワークブック統合メタデータのカスタマイズを有効にするには、「ワークブックのプロパティ」ダイアログを開き、CustomizationEnabled
をTrue
に設定します。
開始する前に:
ワークブック統合メタデータのカスタマイズを理解しておくと役立ちます。詳細は、「実行時のワークブック統合メタデータのカスタマイズ」を参照してください。
他のADFデスクトップ統合の機能を使用して追加できる機能についても理解しておくと役立ちます。詳細は、「統合Excelワークブックをデプロイするための追加の機能」を参照してください。
ワークブックの実行時カスタマイズを有効にする手順:
True
に設定します。カスタマイズ対応ワークブックは、ワークブックの初期化時にサーバーからそのメタデータを取得します。
この統合メタデータは、サーバー側のMDSによって管理され、MDS APIを通じてアプリケーションによってアクセスできます。実行時に、アプリケーションはユーザーにワークブック統合メタデータをカスタマイズする手段を提供できます。カスタマイズ対応ワークブックは、初期化されると、ワークブック統合メタデータをサーバーにリクエストします。MDSは、現在のカスタマイズ・コンテキストに基づいてすべてのカスタマイズを適用し、カスタマイズされたメタデータをその初期化のためにワークブックに戻します。
「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で管理する必要があります。カスタマイズ対応のワークブックの詳細は、「実行時のワークブック統合メタデータのカスタマイズ」を参照してください。
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
ディレクトリに移動して、adf-workbook-composer.jar
ファイルを選択し、「開く」をクリックします。
注意:
実行時にクラス・パスに表示されるadf-workbook-composer.jar
ファイルのコピーが重複しないように、「デフォルトでデプロイ済」チェック・ボックスの選択を解除してください。oracle.adf.desktopintegration
共有ライブラリには、「実行時の処理: 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 ADFアプリケーションの管理』の「ADFアプリケーションのデプロイ」の章を参照してください。
実行時に、ADFワークブック・コンポーザから行ったカスタマイズは、Fusion Webアプリケーションを再起動することなく即座に適用されます。ワークブックのカスタマイズに関連付けられているカスタマイズ・コンテキストを照合するエンド・ユーザーが、統合Excelワークブックの新しいコピーをダウンロードして開くか、初期化されたワークブックでClearAllData
ワークブック・アクションを起動してからログインすると、そのカスタマイズが表示されます。
ADFワークブック・コンポーザのタスク・フローには、次の2つのパラメータが必要です。
WorkbookName
– 実行時にユーザーがカスタマイズする、公開されたワークブックの名前。名前はコンポーザに表示されます。
WorkookMetadataPath
– ワークブック・メタデータ・ファイルのパス。これは、カスタマイズするワークブックのメタデータ・ファイルを特定するためにMDSで使用されるパスです。ワークブック・メタデータ・ファイルは、設計時ワークブックが公開されると生成されます。メタデータ・パスは、ワークブックの公開先の場所によって決定されます。