ヘッダーをスキップ
Oracle® Fusion Middleware Oracle ADFデスクトップ統合によるアプリケーションの開発
12c (12.1.3)
E59438-01
  目次へ移動
目次

前
 
次
 

14 統合Excelワークブックのデプロイ

この章では、Fusion Webアプリケーションと統合したワークブックをエンド・ユーザーに公開してデプロイする方法を説明します。また、Fusion Webアプリケーションからのパラメータを統合Excelワークブックに渡す方法についても説明します。

この章の内容は次のとおりです。

14.1 統合Excelワークブックのデプロイの概要

統合Excelワークブックの開発が終了した後、最終の統合Excelワークブックをエンド・ユーザーが使用できるようにするために、完成したFusion Webアプリケーションをアプリケーション・サーバーにデプロイします。Fusion Webアプリケーションと統合される最終のExcelワークブックをデプロイする前に、14.3項「統合Excelワークブックの公開」の説明に従って、このExcelワークブックを公開する必要があります。Excelワークブックを公開した後、Oracleアプリケーション開発フレームワークによるFusion Webアプリケーションの開発の「Fusion Webアプリケーションのデプロイ」の章に概説されている方法のいずれかを使用してデプロイできます。

統合Excelワークブックのデプロイ対象となるエンド・ユーザーは、次の作業を行う必要があります。

Fusion Webアプリケーションとともに統合Excelワークブックをデプロイする際に、ワークブックのダウンロードURLを明示的に提供する必要はありません。エンド・ユーザーは、Fusion Webアプリケーションのユーザー・インタフェースから統合Excelワークブックをダウンロードできます。詳細は、14.4項「公開したワークブックをFusion Webアプリケーションとともにデプロイする方法」を参照してください。

14.1.1 統合Excelワークブックのデプロイのユースケースおよび例

「Oracle ADF」タブの「公開」ボタンを使用して、公開の準備が整ったワークブックのコピーを保存します。図14-1に、「公開」ボタン、およびこのボタンをクリックすると開くワークブックの公開ダイアログを示します(このダイアログを使用して、公開およびFusion Webアプリケーションとともにデプロイするための準備が整った統合Excelワークブックのコピーを保存します)。

図14-1 ワークブックの公開ダイアログ

この図は周囲のテキストで説明しています

14.1.2 統合Excelワークブックをデプロイするための追加の機能

統合Excelワークブックを公開してデプロイした後、必要に応じてワークブックの機能をさらに追加できます。使用可能な他の機能へのリンクは次のとおりです。

14.2 エンド・ユーザーがADFデスクトップ統合を使用できるようにするための処理

開発者が統合Excelワークブックで構成した機能をエンド・ユーザーが使用するには、ADFデスクトップ統合のランタイム・エディションをインストールする必要があります。インストール・プログラム(setup.exe)は、MW_HOME\oracle_common\modules\oracle.adf.desktopintegration_12.1.3ディレクトリのadfdi-excel-runtime-client-installer.zipファイル内にあります。MW_HOMEはミドルウェア・ホーム・ディレクトリです。

インストール・プログラムの使用の詳細は、Oracle ADFアプリケーションの管理の複数のエンド・ユーザーが利用できるADFデスクトップ統合のランタイム・エディションの作成に関する項を参照してください。

14.3 統合Excelワークブックの公開

Oracle ADFの機能を使用したExcelワークブックの構成が終了したら、これを公開する必要があります。ワークブックを公開することで、構成した統合Excelワークブックを対象となるエンド・ユーザーが使用できるようになります。

ADFデスクトップ統合では、ワークブックを公開する方法が2つ用意されています。統合ExcelワークブックをExcelから直接公開するか、JDeveloperで使用可能な公開ツールを使用してコマンドラインからワークブックを公開できます。コマンドラインの公開ツールでは、ANTビルド・スクリプトを使用して、Fusion Webアプリケーションから統合Excelワークブックを公開できます。


注意:

  • 1つまたは複数のワークブックを公開した後で、それらのワークブックをダウンロードしてMicrosoft Excelで正常に開くために、Fusion Webアプリケーションを再起動する必要があります。Webアプリケーションが再起動されないと、次のようなエラーが発生する可能性があります。

    TampercheckErrorException: ADFDI-05537: ワークブック統合の整合性を判別できませんでした。

  • カスタマイズ対応のワークブックは、関連付けられたプロジェクトのpublic_htmlディレクトリ(またはそのサブディレクトリ)の下のターゲットの場所にのみ公開できます。


14.3.1 Excelから統合Excelワークブックを公開する方法

ワークブックを公開するには、「Oracle ADF」タブ上のボタンをクリックして表示されるダイアログで値を指定するか、コマンドラインの公開ツールを使用します。ワークブックを公開するためのコマンドライン公開ツールは、Fusion Webアプリケーションから使用できます。

開始する前に:

統合Excelワークブックの公開方法について理解しておくと役立ちます。詳細は、14.3項「統合Excelワークブックの公開」を参照してください。

他のADFデスクトップ統合の機能を使用して追加できる機能についても理解しておくと役立ちます。詳細は、14.1.2項「統合Excelワークブックをデプロイするための追加の機能」を参照してください。

Excelからワークブックを公開するには:

  1. 統合Excelワークブックを開きます。

  2. 「ワークブック・プロパティの編集」ダイアログのApplicationHomeFolderおよびWebPagesFolderプロパティが正しいことを確認します。これらのプロパティが設定されていない場合、統合Excelワークブックの公開時にADFデスクトップ統合によって設定するよう求められます。

    詳細は、4.2.2項「新しい統合Excelワークブックの構成方法」を参照してください。

  3. 「Oracle ADF」タブで「公開」ボタンをクリックします。

  4. 図14-1のように、表示されるワークブックの公開ダイアログ・ボックスで、公開するワークブックのディレクトリとファイル名を指定します。公開するワークブック用に指定するディレクトリおよびファイル名は、設計時のワークブックのディレクトリおよびファイル名とは異なるものにする必要があります。

  5. 「保存」をクリックして変更内容を保存します。

14.3.2 コマンドライン公開ツールを使用した統合Excelワークブックの公開方法

この公開ツールはコマンドラインから実行するもので、MW_HOME\jdeveloper\adfdi\bin\excel\tools\publishディレクトリにあるpublish-workbook.exeを指します。公開ツールを実行する前に、ソースの統合Excelワークブックを開いて「ワークブック・プロパティの編集」ダイアログのApplicationHomeFolderおよびWebPagesFolderプロパティが正しいことを確認します。


注意:

すでに公開済のワークブックまたは実行時モードのワークブックを公開することはできません。


開始する前に:

統合Excelワークブックの公開方法について理解しておくと役立ちます。詳細は、14.3項「統合Excelワークブックの公開」を参照してください。

他のADFデスクトップ統合の機能を使用して追加できる機能についても理解しておくと役立ちます。詳細は、14.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-src.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スクリプトのサンプルは、コマンドラインのワークブック公開ツールの起動を実例で示します。

14.3.3 統合Excelワークブックの公開時の処理

設計モードで「公開」ボタンをクリックすると、ADFデスクトップ統合では次のアクションが実行されます。

  1. 必須のワークブック設定を検証します。

  2. クライアント・レジストリを更新します。詳細は、11.3項「統合Excelワークブックのメタデータの整合性チェック」を参照してください。

  3. 公開されるワークブックを、指定のファイル名で、指定のディレクトリに作成します。

    公開によっても、ワークブック定義がエクスポートされます。公開されたワークブック定義のXMLファイルは、設計時のワークブックのコピーと同じ場所に保存されます。ワークブック定義の詳細は、5.15項「Excelワークブック統合メタデータのエクスポートおよびインポート」を参照してください。

  4. 公開されるワークブックのワークブック設定からApplicationHomeFolderWebAppRootおよびWebPagesFolderの各プロパティを消去します。

  5. ワークシートが設計モードのときにワークシートに表示されるバインディング式を削除します。

  6. ワークブックのモードを実行時モードに変更します。

  7. Publishing Timestampプロパティをワークブックに挿入します。このプロパティは、「情報」ダイアログの「プロパティ」タブに表示されます。

14.4 公開したワークブックを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ページを構成できます。たとえば、図14-2に、Internet Explorerの「ファイルのダウンロード」ダイアログを示します。これはADFデスクトップ統合のSummitサンプル・アプリケーションのindex.jspxページで使用可能なデモ編集可能表サンプルのメニュー・オプションをクリックすることで起動されました。

図14-2 Fusion Webアプリケーションからの統合Excelワークブックの起動

この図は周囲のテキストで説明しています

図14-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:link text="Editable Table Sample" destination="/excel/EditCustomers.xlsx"/>

ここで、excelは、WebPagesFolderワークブック・プロパティによって指定されるディレクトリのサブディレクトリで、EditCustomers.xlsxはエンド・ユーザーが起動するExcelワークブックです。

ボタン、リストおよびリボン・コマンドからエンド・ユーザーがExcelワークブックを起動できるようにするための機能を提供できます。次にいくつかの例を示します。

Fusion WebアプリケーションのWebページの作成の詳細は、『Oracle ADF FacesによるWebユーザー・インタフェースの開発』を参照してください。

14.4.1 実行時の処理: 公開されたワークブックのデプロイ

web.xmlがADFデスクトップ統合を使用するFusion Webアプリケーション用に構成されている場合、次のことが起こります。

  • DIExcelDownloadFilterフィルタが定義されます。

  • フィルタ・マッピングは、*.xlsxおよび*.xlsmファイルに定義されます。

エンド・ユーザーがワークブックに対してHTTPリクエストを出す(たとえば、ユーザーがアプリケーションからWebページのリンクをクリックする)と、DIExcelDownloadFilterフィルタは、HTTPレスポンスとしてストリーム化されて戻されたWebAppRootプロパティをワークブックに埋め込みます。WebAppRootプロパティは後でADFデスクトップ統合クライアントにより使用されて、Fusion Webアプリケーションに接続し、ユーザー・セッションを確立し、データを相互に送信します。

DIExcelDownloadFilterフィルタはWebAppRoot値を、doFilter()エントリ・ポイントに渡される現在のHttpServletRequestオブジェクトから構築します。フィルタ・コードはHttpServletRequest.getRequestURL()を呼び出し、コンテキスト・パス部分の後をすべて削除する(HttpServletRequest.getContextPath()を使用)ことで、完全なURLの"root"部分を取得します。

14.5 Fusion Webアプリケーションのページからワークブックへパラメータ値を渡す方法

Fusion Webアプリケーション・ページは、エンド・ユーザーがそのページからワークブックをダウンロードするときに、統合Excelワークブックにパラメータ値を渡すように構成できます。特に、ワークブック・パラメータ値をADFmメソッドへの引数として使用できます。たとえば、顧客の表を表示し、エンド・ユーザーが指定した特定の市区町村に対してフィルタ処理されるページについて考えます。エンド・ユーザーが提供する市区町村IDは、ビュー・オブジェクトの問合せを変更して顧客に一致する市区町村IDを返すカスタム・メソッドへの引数として使用されます。このようなページでは、ページで現在選択されている市区町村に対して自動的にフィルタ処理されたデータを含む同じ顧客表を表示する統合ワークブックをエンド・ユーザーがダウンロードすることもできます。統合ワークブックのダウンロード時に、市区町村IDがワークブック・パラメータ値として埋め込まれます。

Fusion Webアプリケーション・ページから統合Excelワークブックにパラメータを渡すには、次の手順に従います。

  1. エンド・ユーザーがFusion Webアプリケーションから統合Excelワークブックをダウンロードできるように、HTTPフィルタが構成されていることを確認します。デフォルトでは、プロジェクト内でADFデスクトップ統合を有効化すると、JDeveloperによってHTTPフィルタが適切な値で構成されます。HTTPフィルタのパラメータ値を検証するには、D.2項「ADFデスクトップ統合Excelダウンロード・フィルタの構成」を参照してください。

  2. エンド・ユーザーがワークブックをダウンロードできるFusion WebアプリケーションのWebページで名前/値のペアをURL引数として使用します。詳細は、14.5.1項「Fusion Webアプリケーションのページを構成してパラメータを渡す方法」を参照してください。

  3. 「ワークブックのプロパティの編集」ダイアログおよび「ワークシートのプロパティの編集」ダイアログでパラメータ名を定義します。詳細は、14.5.3項「統合Excelワークブックでパラメータのプロパティを構成する方法」を参照してください。

  4. <parameter>要素を追加して、統合Excelワークブックのワークシートに関連付けられているページ定義ファイルを構成します。詳細は、14.5.3項「ワークシートでパラメータを受け取るようにページ定義ファイルを構成する方法」を参照してください。

図14-3に、Fusion Webアプリケーションから統合Excelワークブックへパラメータ値を渡す手順を示します。

図14-3 パラメータを渡すためのワークブックとFusion Webアプリケーションの構成

この図は周囲のテキストで説明しています

14.5.1 Fusion Webアプリケーションのページを構成してパラメータを渡す方法

<af:link>などのコンポーネントを使用して、統合ワークブックの公開済コピーをエンド・ユーザーがダウンロードできるようにすることができます。コンポーネントの接続先URLは、統合ワークブックを参照し、その問合せ部分では、URLパラメータの名前と値がワークブックのパラメータ名と値に対応します。また、呼び出されたときに、コンポーネントとそのプロパティ値で参照される値をリフレッシュするようFusion Webアプリケーションに要求するコマンドをページで指定します。

アクション・コンポーネントを使用したファイルのダウンロードの詳細は、『Oracle ADF FacesによるWebユーザー・インタフェースの開発』のアクション・コンポーネントを使用してファイルをダウンロードする方法に関する項を参照してください。

開始する前に:

Fusion Webアプリケーションから統合Excelワークブックへパラメータ値を渡す方法を理解しておくと役立ちます。詳細は、14.5項「Fusion Webアプリケーションのページからワークブックへパラメータ値を渡す方法」を参照してください。

他のADFデスクトップ統合の機能を使用して追加できる機能についても理解しておくと役立ちます。詳細は、14.1.2項「統合Excelワークブックをデプロイするための追加の機能」を参照してください。

Fusion Webアプリケーションのページを構成するには:

  1. JDeveloperで、エンド・ユーザーによる統合Excelワークブックのダウンロード元となるページにコンポーネントまたはタグ(af:goLinkなど)を挿入します。

  2. 「構造」ウィンドウでコンポーネントを右クリックし、「プロパティに移動」を選択します。

  3. 「共通」セクションを展開し、プロパティの値を設定します。

    表14-1に、af:linkコンポーネントのプロパティを示します。

    表14-1 af:linkタグのプロパティ

    プロパティ

    Text

    実行時にエンド・ユーザーに表示されるテキストを記述します。

    たとえば、次のようなテキストを記述して実行時に表示します。

    Download to Excel

    Destination

    ダウンロードする統合Excelワークブックおよびその値をURL引数として指定するEL式を記述するための式ビルダーを起動します。

    たとえば、次のようなEL式を記述します。

    "/excel/EditableCustomerSearchParam.xlsx?CityID=#{bindings.CityID.attributeValue}"
    

    ?より右の、問合せ文字列全体のURLエンコードされたランタイム値は、2048バイト未満にする必要があります。ランタイム値が2048バイトを超える場合、統合Excelワークブックに含まれるURL引数は、2048バイト内に収まる分のみです。残りのURL引数は、統合Excelワークブックに含まれません。かわりに、これらのURL引数が含まれていないことを示すログ・エントリがFusion Webアプリケーションによって書き込まれます。

    たとえば、次のEL式が評価されてからURLエンコードされた結果の合計サイズは、2048バイトよりも小さい必要があります。

    CityID=#{bindings.CityID.attributeValue}&CityCtgType=#{bindings.CityCtgType.attributeValue}

    また、URLに含まれる文字数が256を超える場合は、エンド・ユーザーが統合Excelワークブックをダウンロードして保存せずに開いたときに、例外が発生します。この問題を解決するには、URLの長さを256文字に制限するか、ワークブックを開く前に保存するようエンド・ユーザーに指示する必要があります。


  4. 必要に応じて、「動作」セクションを開き、起動するとaf:linkタグおよびDestinationプロパティの値を更新するpartialTriggersプロパティのコンポーネントIDを指定します。

    たとえば、NextButtonPreviousButtonFirstButtonおよびLastButtonというIDのナビゲーション・ボタンがある場合は、次のように指定します。

    :NextButton :PreviousButton :FirstButton :LastButton

  5. ページを保存します。

    この手順で示した例を使用した場合にJDeveloperによってJSFページに生成されるエントリを、次の例に示します。

    <af:link text="Download to Excel"
    destination="/excel/EditableCustomerSearchParam.xlsx?CityID=#{bindings.CityID.attributeValue}"
    partialTriggers=":NextButton :PreviousButton :FirstButton :LastButton"/>
    

14.5.2 統合Excelワークブックでパラメータのプロパティを構成する方法

エンド・ユーザーによってFusion Webアプリケーションからダウンロードされる統合Excelワークブックが、ワークブックのダウンロードURLの問合せ文字列に含まれているパラメータ値を受け取るように、ワークブックのParametersプロパティおよびワークシートのParametersプロパティを構成します。

開始する前に:

Fusion Webアプリケーションから統合Excelワークブックへパラメータ値を渡す方法を理解しておくと役立ちます。詳細は、14.5項「Fusion Webアプリケーションのページからワークブックへパラメータ値を渡す方法」を参照してください。

他のADFデスクトップ統合の機能を使用して追加できる機能についても理解しておくと役立ちます。詳細は、14.1.2項「統合Excelワークブックをデプロイするための追加の機能」を参照してください。

ワークブックのParametersプロパティを構成するには:

  1. 統合Excelワークブックを開きます。

  2. 「Oracle ADF」タブの「ワークブック」グループで、「ワークブック・プロパティ」をクリックします。

  3. 「パラメータ」の入力フィールドの横にある参照(...)アイコンをクリックして、「パラメータの編集」ダイアログを起動します。

  4. 「追加」をクリックして新しいワークブック初期化パラメータを追加し、プロパティを次のように構成します。

  5. 必要に応じて手順4を繰り返し、他のワークブック初期化パラメータを追加します。

  6. 「OK」をクリックします。

    ワークブックのParametersプロパティの詳細は、表A-21を参照してください。

ワークシートのParametersプロパティを構成するには:

  1. 統合Excelワークブックを開きます。

  2. 「Oracle ADF」タブの「ワークブック」グループで、「ワークシート・プロパティ」をクリックします。

  3. 「パラメータ」の入力フィールドの横にある参照(...)アイコンをクリックして、「パラメータの編集」ダイアログを起動します。

  4. 「追加」をクリックして新しいワークシート・パラメータを追加し、図14-5のように構成します。

    • (オプション)「注釈」フィールドに、ワークシート・パラメータの説明を入力します。

    • 14.5.3項「ワークシートのページ定義ファイルを構成してパラメータを受け取る方法」でワークシートに関連付けられているページ定義ファイルに追加したパラメータ要素を、「パラメータ」フィールドで指定します。

    • ワークブック初期化パラメータ(ワークブックのParameters配列)に対して指定したParameterプロパティの値を参照するEL式を、「値」フィールドに記述します。EL式を記述する際は、次の構文を使用します。

      #{workbook.params.parameter}

      parameterは、ワークブック初期化パラメータ用に指定されたParameterプロパティの値を参照します。

    図14-5 ワークシート・パラメータ

    この図は周囲のテキストで説明しています
  5. 必要に応じて手順4を繰り返し、他のワークブック初期化パラメータを追加します。

  6. 「OK」をクリックします。

    ワークシートのParametersプロパティの詳細は、表A-22を参照してください。

デフォルトでは、ワークブック・パラメータは、ワークブックがメタデータをリクエストするためにサーバーに接続するとき、エンド・ユーザーがログアウトするとき、またはセッションが期限切れになるときに、その都度送信されません。必要であれば、SendParametersプロパティを構成して、初期化パラメータが送信されるようにワークブックを構成できます。

ワークシートのSendParametersプロパティを構成するには:

  1. 統合Excelワークブックを開きます。

  2. 「Oracle ADF」タブの「ワークブック」グループで、「ワークシート・プロパティ」をクリックします。

  3. 「ワークシートのプロパティの編集」ダイアログで、表14-2および図14-6に示すように、SendParametersの値を設定します。

    表14-2 SendParametersプロパティ

    設定するプロパティ 設定する値

    SendParameters

    True: ワークブックがメタデータまたはデータをリクエストするためにサーバーに接続すると、ワークブック・パラメータが送信されます。Trueに設定した場合、すべてのユーザー・セッションにおいて、メタデータがリクエストされるたび、およびデータが初めてリクエストされたときに、パラメータが送信されます。デフォルト値はFalseです。

    詳細は、15.2項「セッション間でのサーバー・データ・コンテキストのリストア」を参照してください。


    図14-6 SendParametersプロパティ

    この図は周囲のテキストで説明しています
  4. 「OK」をクリックします。

テスト・モードに入ると、「ワークブック・パラメータ」ダイアログでテスト・パラメータ値の入力を求められます。図14-7に、ワークブックのテスト値を受け入れる「ワークブック・パラメータ」ダイアログを示します。

図14-7 「ワークブック・パラメータ」ダイアログ

この図は周囲のテキストで説明しています

一部またはすべてのパラメータの値の入力は必須ではありません。テスト・パラメータ値を入力した場合、テスト・モードを終了して設計モードに戻ったときに値はクリアされません。統合Excelワークブックを再度実行する場合、キャッシュからのワークブック・パラメータ値が「ワークブック・パラメータ」ダイアログに表示されます。

提供されたテスト値は、ADFデスクトップ統合Excelダウンロード・フィルタがパラメータ値を格納するのと同じ方法でワークブックに格納されます。ワークブックを公開する際、ワークブックが公開される前にテスト・パラメータ値がクリアされます。


注意:

前述の例では、filterByCitytIdメソッドをワークシートの設定アクション(SetupActionID)として使用できます。これにより、ワークシートが実行時に初期化されるとき(またはワークシートのバインディング・コンテナの新規インスタンスが作成されるたび)にメソッドが自動的にコールされます。SetupActionIDの詳細は、7.24項「明示的なワークシート設定アクションの使用」を参照してください。

filterByCityIdメソッドは、ユースケースに応じてリボン・コマンドやStartupイベントなどのアクション・セットの一部として構成することもできます。リボン・コマンドの場合、その実行はエンド・ユーザーによってトリガーされます。リボン・コマンドおよびStartupイベントの詳細は、8.3.2項「実行時リボン・タブのワークシート・コマンド・ボタンの構成方法」および8.2.4項「ワークシート・イベントからアクション・セットを起動する方法」を参照してください。

ワークブック・パラメータ値は、ページ定義によって公開される任意のメソッドの引数として使用できます。


14.5.3 ワークシートでパラメータを受け取るようにページ定義ファイルを構成する方法

次の手順で、統合Excelワークブックのワークシートに関連付けられているページ定義ファイルを構成できます。

  • ワークシートのバインディング・コンテナを初期化する1つ以上のparameter要素を追加します。14.5.1項「パラメータを渡すためにFusion Webアプリケーションのページを構成する方法」に示されているように、これらのパラメータの値はURL引数から提供されます。

    次の例は、統合Excelワークブックのワークシートに関連付けられているページ定義ファイルのパラメータ要素を示しています。

    <parameters>
        <parameter id="CityIDParam" />
    </parameters>
    
  • アプリケーション・モジュール・メソッド(filterByCityId)を起動するメソッド・アクション・バインディングを追加します。アプリケーション・モジュール・メソッドは、CityIdParamの値を参照する単一のLong引数(CityIdArg)を受け取ります。このメソッドは、市区町村IDをフィルタ処理するためにビュー・オブジェクトの問合せの変更および実行を担当します。

    <bindings>
    <methodAction id="filterByCityId" RequiresUpdateModel="true"
                  Action="invokeMethod" MethodName="filterByCityId"
                  IsViewObjectMethod="false" DataControl="AppModuleDataControl"
                  InstanceName="AppModuleDataControl.dataProvider">            
       <NamedData NDName="CityIdArg" NDValue="${bindings.CityIdParam}" 
                  NDType="java.lang.Long"/></methodAction>
    . . .
    </bindings>
    

ページ定義ファイルの構成の詳細は、4.3項「統合Excelワークブックのページ定義ファイルの使用」を参照してください。

14.5.4 実行時の処理: Fusion Webアプリケーションから統合Excelワークブックへパラメータを渡す方法

エンド・ユーザーがFusion Webアプリケーションから統合Excelワークブックをダウンロードすると、ダウンロードをトリガーしたコンポーネント・タグ(af:linkなど)が評価され、現在のCityIDが取得されてURLに組み込まれます。adfdiExcelDownloadフィルタによって、URLのすべてのパラメータの名前および値が、ダウンロードされた統合Excelワークブックに埋め込まれます。

これらのパラメータは、バインディング・コンテナがリフレッシュされる前にBindingContainer DCParametersに設定されます。ワークシート・パラメータがバインディング・コンテナにどのようにマップされるかの詳細は、14.5.3項「ワークシートでパラメータを受け取るようにページ定義ファイルを構成する方法」を参照してください。

ワークシートのStartupイベントで設定されたアクションも初期化中に実行されます。初期化の後、統合Excelワークブックがディスクに保存される際に、各ワークシートの初期化ステータスが記録されます。

統合Excelワークブックを保存して閉じた後、再び開くと、前に初期化されたワークシートに対する初回の初期化はスキップされます。統合Excelワークブックの初回のダウンロード時にワークブック・パラメータが取得され、サーバー・コンテキストの設定にこれらのパラメータが必要である場合は、Worksheet.ServerContext.SendParametersプロパティをTrueに設定する必要があります。SendParametersプロパティがTrueの場合、各ユーザー・セッションにおいて、メタデータのリクエストごとに、またデータの初回のリクエスト時に、ワークブック・パラメータが送信されます。

ワークブックのすべてのワークシートの初期化状態をリセットするには、ClearAllDataアクションを起動します。ClearAllDataアクションの詳細は、表A-20を参照してください。

14.6 実行時のワークブック統合メタデータのカスタマイズ

ADFデスクトップ統合では、Oracle Metadata Services (MDS)ベースのランタイム・カスタマイズもサポートされます。MDSの詳細は、『Oracle Application Development FrameworkによるFusion Webアプリケーションの開発』の「MDSでのアプリケーションのカスタマイズ」の章を参照してください。

ワークブック統合メタデータでは、ADFデスクトップ統合コンポーネントがワークブックでどのように表示され動作するか、またワークブックがそのFusion Webアプリケーションでどのように統合されるかを定義します。ワークブックが公開されると、そのワークブック統合メタデータのXMLファイルが設計時のワークブックのコピーと同じ場所に保存されます。カスタマイズ対応ワークブックの公開の詳細は、14.3項「統合Excelワークブックの公開」を参照してください。

カスタマイズ対応ワークブックのワークブック統合メタデータ・ファイルは、MDSによって管理できるようにMDSメタデータ・リポジトリにデプロイする必要があります。メタデータ・リポジトリの詳細は、Oracle Fusion Middlewareの管理の「メタデータ・リポジトリの管理」の章を参照してください。

14.6.1 実行時のワークブックのカスタマイズを有効にする方法

ワークブック統合メタデータのカスタマイズを有効にするには、「ワークブックのプロパティ」ダイアログを開き、CustomizationEnabledTrueに設定します。

開始する前に:

ワークブック統合メタデータのカスタマイズを理解しておくと役立ちます。詳細は、14.6項「実行時のワークブック統合メタデータのカスタマイズ」を参照してください。

他のADFデスクトップ統合の機能を使用して追加できる機能についても理解しておくと役立ちます。詳細は、14.1.2項「統合Excelワークブックをデプロイするための追加の機能」を参照してください。

ワークブックの実行時カスタマイズを有効にする手順:

  1. 統合Excelワークブックを開きます。

  2. 「Oracle ADF」タブの「ワークブック」グループで、「ワークブック・プロパティ」をクリックします。

  3. 「CustomizationEnabled」Trueに設定します。

  4. 「OK」をクリックします。

  5. カスタマイズ対応ワークブックを公開します。

14.6.2 実行時の処理: ワークブック統合メタデータがカスタマイズされた場合

カスタマイズ対応ワークブックは、ワークブックの初期化時にサーバーからそのメタデータを取得します。この統合メタデータは、サーバー側のMDSによって管理され、MDS APIを通じてアプリケーションによってアクセスできます。

実行時に、アプリケーションはユーザーにワークブック統合メタデータをカスタマイズする手段を提供できます。カスタマイズ対応ワークブックは、初期化されると、ワークブック統合メタデータをサーバーにリクエストします。MDSは、現在のカスタマイズ・コンテキストに基づいてすべてのカスタマイズを適用し、カスタマイズされたメタデータをその初期化のためにワークブックに戻します。

たとえば、アプリケーションは、ユーザーがカスタマイズ対応ワークブックの表の列をカスタマイズできるWebページを提供できます。ユーザーは、Webページ上の表から特定の列を削除し、カスタマイズ対応ワークブックをダウンロードして、ワークブック内の変更の影響を確認できます。

14.6.3 ワークブック統合メタデータのカスタマイズに関する必知事項

カスタマイズ対応ワークブックは、関連付けられたプロジェクトの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-RT.xlsx-workbook-defintion.xmlです。実行時に、MDSはアプリケーションで構成されたリポジトリ内で、このメタデータ・パスを使用してワークブック統合メタデータを探します。メタデータ・パスは、アプリケーション全体で一意である必要があります。

デフォルトでは、MDSリポジトリがワークブック統合メタデータ・ファイルに対して構成されていない場合、MDSは前述のメタデータ・パスを使用してクラスパス上でメタデータ・ファイルを検索します。MDSの構成を回避するために、Fusion Webアプリケーションのクラスパス上にワークブック統合メタデータ・ファイルをホストできます。実行時に作成されたカスタマイズは、MDS default-cust-storeに格納できます。