Oracle® Fusion Middleware Oracle Application Development Frameworkデスクトップ統合開発者ガイド 11gリリース1 (11.1.1.7.0) B66694-02 |
|
前 |
次 |
この章では、Fusion Webアプリケーションと統合したワークブックをエンド・ユーザーに公開してデプロイする方法を説明します。また、Fusion Webアプリケーションからのパラメータを統合Excelワークブックに渡す方法についても説明します。
この章の内容は次のとおりです。
統合Excelワークブックの開発が終了した後、最終の統合Excelワークブックをエンド・ユーザーが使用できるようにするために、完成したFusion Webアプリケーションをアプリケーション・サーバーにデプロイします。Fusion Webアプリケーションと統合される最終のExcelワークブックをデプロイする前に、14.3項「統合Excelワークブックの公開」の説明に従ってこれを公開する必要があります。Excelワークブックを公開した後、『Oracle Fusion Middleware Oracle Application Development Framework Fusion開発者ガイド』の「Fusion Webアプリケーションのデプロイ」に概説されている方法のいずれかを使用してデプロイできます。
統合Excelワークブックのデプロイ対象となるエンド・ユーザーは、次の作業を行う必要があります。
各自のシステムでADFデスクトップ統合を設定します。
ADFデスクトップ統合のsetup.exe
ツールを、ネットワーク上のディレクトリなどからエンド・ユーザーが使用できるようにします。詳細は、14.2項「エンド・ユーザーがADFデスクトップ統合を使用できるようにするための処理」を参照してください。
必要であれば、各自のExcelアプリケーションに対してセキュリティ設定を構成します。
Fusion Webアプリケーションとともに統合Excelワークブックをデプロイする際に、ワークブックのダウンロードURLを明示的に提供する必要はありません。エンド・ユーザーは、Fusion Webアプリケーションのユーザー・インタフェースから統合Excelワークブックをダウンロードできます。詳細は、14.4項「公開したワークブックをFusion Webアプリケーションとともにデプロイする方法」を参照してください。
「Oracle ADF」タブの「公開」ボタンを使用して、公開の準備が整ったワークブックのコピーを保存します。図14-1に、「公開」ボタン、およびこのボタンをクリックすると開くワークブックの公開ダイアログを示します(このダイアログを使用して、公開およびFusion Webアプリケーションとともにデプロイするための準備が整った統合Excelワークブックのコピーを保存します)。
開発者が統合Excelワークブックで構成した機能をエンド・ユーザーが使用するには、ADFデスクトップ統合のランタイム・エディションをインストールする必要があります。インストール・プログラム(setup.exe
)は、MW_HOME
\oracle_common\modules\oracle.adf.desktopintegration_11.1.1
ディレクトリのadfdi-excel-runtime-client-installer.zip
ファイル内にあります。MW_HOME
はミドルウェア・ホーム・ディレクトリです。
インストール・プログラムの使用の詳細は、『Oracle Fusion Middleware Oracle Application Development Framework開発者ガイド』のADFデスクトップ統合のランタイム・エディションを複数のエンド・ユーザーに使用可能にする方法に関する項を参照してください。
Oracle ADFの機能を使用したExcelワークブックの構成が終了したら、これを公開する必要があります。ワークブックを公開することで、構成した統合Excelワークブックを対象となるエンド・ユーザーが使用できるようになります。
ADFデスクトップ統合では、ワークブックを公開する方法が2つ用意されています。統合ExcelワークブックをExcelから直接公開するか、JDeveloperで使用可能な公開ツールを使用してコマンドラインからワークブックを公開できます。コマンドラインの公開ツールでは、ANTビルド・スクリプトを使用して、Fusion Webアプリケーションから統合Excelワークブックを公開できます。
注意:
|
ワークブックを公開するには、「Oracle ADF」タブ上のボタンをクリックして表示されるダイアログで値を指定するか、コマンドラインの公開ツールを使用します。ワークブックを公開するためのコマンドライン公開ツールは、Fusion Webアプリケーションから使用できます。
Excelからワークブックを公開するには:
統合Excelワークブックを開きます。
「ワークブック・プロパティの編集」ダイアログのApplicationHomeFolder
およびWebPagesFolder
プロパティが正しいことを確認します。これらのプロパティが設定されていない場合、統合Excelワークブックの公開時にADFデスクトップ統合によって設定するよう求められます。
詳細は、4.2.2項「新しい統合Excelワークブックの構成方法」を参照してください。
「Oracle ADF」タブで「公開」ボタンをクリックします。
図14-1のように、表示されるワークブックの公開ダイアログ・ボックスで、公開するワークブックのディレクトリとファイル名を指定します。公開するワークブック用に指定するディレクトリおよびファイル名は、設計時のワークブックのディレクトリおよびファイル名とは異なるものにする必要があります。
「保存」をクリックして変更内容を保存します。
注意: ADFデスクトップ統合には、Excelの「最終版にする」機能との互換性はありません。統合するワークブックでこの機能を使用すると、予期しないエラーが複数発生する可能性があります。 |
この公開ツールはコマンドラインから実行するもので、MW_HOME
\jdeveloper\adfdi\bin\excel\tools\publish
ディレクトリにあるpublish-workbook.exe
を指します。公開ツールを実行する前に、ソースの統合Excelワークブックを開いて「ワークブック・プロパティの編集」ダイアログのApplicationHomeFolder
およびWebPagesFolder
プロパティが正しいことを確認します。
注意: すでに公開済のワークブックまたは実行時モードのワークブックを公開することはできません。 |
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
ヒント: 公開ツールの必須の引数に関する詳細を参照するには、次のコマンドを実行します。
|
統合Excelワークブックが正常に公開されると、公開ツールによって成功メッセージが表示されます。ワークブックの公開中にエラーが発生した場合は、公開ツールによって処理が中止され、コマンドライン・コンソールにエラー・メッセージが表示されます。
コマンドライン公開ツールを使用する場合は、デフォルトでコマンドライン・コンソールに情報レベルのメッセージが記録されます。
ANTでの公開ツールの使用
Fusion Webアプリケーションのビルド時にANTスクリプトを作成して、JDeveloperから公開ツールを実行できます。ANTを使用してユーティリティを実行するには、次のいずれかの方法を使用します。
プロジェクト用のANTビルド・スクリプトを生成して、ワークブックのコマンドライン公開ツールを実行するためのターゲットを追加します。
ワークブックのコマンドライン公開ツールを実行するために、別個のANTビルド・スクリプトを生成または作成します。
公開ツールを実行するためのANTビルド・スクリプトのサンプル(publish-workbook.xml
)は、MW_HOME
\jdeveloper\adfdi\bin\excel\samples
ディレクトリにあります。このANTスクリプトのサンプルは、コマンドラインのワークブック公開ツールの起動を実例で示します。
設計モードで「公開」ボタンをクリックすると、ADFデスクトップ統合では次のアクションが実行されます。
必須のワークブック設定を検証します。
クライアント・レジストリを更新します。詳細は、11.3項「統合Excelワークブックのメタデータの整合性チェック」を参照してください。
公開されるワークブックを、指定のファイル名で、指定のディレクトリに作成します。
公開されるワークブックのワークブック設定からApplicationHomeFolder
、WebAppRoot
およびWebPagesFolder
の各プロパティを消去します。
ワークシートが設計モードのときにワークシートに表示されるバインディング式を削除します。
ワークブックのモードを実行時モードに変更します。
統合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に示されている機能を有効にするには、Excelワークブックが認識されるようにFusion WebアプリケーションのHTTPフィルタ・パラメータを構成する必要があります。Fusion WebアプリケーションでADFデスクトップ統合が有効になっている場合、これらのパラメータはJDeveloperによって自動的に構成されます。HTTPフィルタ・パラメータを手動で構成する場合は、付録D「Webアプリケーション・デプロイメント・ディスクリプタでのADFデスクトップ統合の設定」を参照してください。
Fusion WebアプリケーションのHTTPフィルタを構成した後、Fusion Webアプリケーションによってエンド・ユーザーに表示されるWebページを構成し、エンド・ユーザーがExcelワークブックを起動できるようにします。Fusion Webアプリケーションと統合されたExcelワークブックを起動できるようにする基本的な方法は、ワークブックを起動するハイパーリンクを提供することです。たとえば、Webページに次のようなHTMLを記述できます。
<a href="/excel/EditCustomers.xlsx">Editable Table Sample</a>
ここで、excel
は、WebPagesFolder
ワークブック・プロパティによって指定されるディレクトリのサブディレクトリで、EditCustomers.xlsx
はエンド・ユーザーが起動するExcelワークブックです。
ボタン、リストおよびリボン・コマンドからエンド・ユーザーがExcelワークブックを起動できるようにするための機能を提供できます。次にいくつかの例を示します。
ボタン
クリックすると統合Excelワークブックが起動するボタンをWebページ上に表示します。
選択リスト
統合Excelワークブックを起動するボタンとともに、ADF Faces selectOneChoice
コンポーネントを使用します。
メニュー
ADF Faces goMenuItem
コンポーネントを使用します。
図14-2に示されている使用可能なデモのメニューでは、goMenuItem
コンポーネントが使用されています。次のエントリがADFデスクトップ統合のSummitサンプル・アプリケーションのindex.jspx
ページに表示され、goMenuItem
コンポーネントを示します。
<af:goMenuItem text="Editable Table Sample" id="gmi1" destination="/excel/EditCustomers.xlsx"/>
Fusion WebアプリケーションのWebページの作成の詳細は、『Oracle Fusion Middleware Oracle Application Development Framework Webユーザー・インタフェース開発者ガイド』を参照してください。
web.xml
がADFデスクトップ統合を使用するFusion Webアプリケーション用に構成されている場合、次のことが起こります。
DIExcelDownloadFilter
フィルタが定義されます。
フィルタ・マッピングは、*.xlsx
ファイルに定義されます。
エンド・ユーザーがワークブックに対してHTTPリクエストを出す(たとえば、ユーザーがアプリケーションからWebページのリンクをクリックする)と、DIExcelDownloadFilter
フィルタは、HTTPレスポンスとしてストリーム化されて戻されたWebAppRoot
プロパティをワークブックに埋め込みます。WebAppRoot
プロパティは後でADFデスクトップ統合クライアントにより使用されて、Fusion Webアプリケーションに接続し、ユーザー・セッションを確立し、データを相互に送信します。
DIExcelDownloadFilter
フィルタはWebAppRoot
値を、doFilter()
エントリ・ポイントに渡される現在のHttpServletRequest
オブジェクトから構築します。フィルタ・コードはHttpServletRequest.getRequestURL()
を呼び出し、コンテキスト・パス部分の後をすべて削除する(HttpServletRequest.getContextPath()
を使用)ことで、完全なURLの"root"部分を取得します。
Fusion Webアプリケーションのページを構成して、エンド・ユーザーがそのページからワークブックをダウンロードするときに、統合Excelワークブックにパラメータ値を渡すことができます。たとえば、エンド・ユーザーが商品リストを表示するページからワークブックをダウンロードする場合、エンド・ユーザーがダウンロードを起動したときにワークブックに表示される商品リストは、ページ上に表示される商品リストと一致します。それ以降にワークシートまたはFusion Webアプリケーションのページの一方でエンド・ユーザーが行った変更は、他方のデータには影響しません。
この機能を構成するには、次の作業を行う必要があります。
エンド・ユーザーがFusion Webアプリケーションから統合Excelワークブックをダウンロードできるように、HTTPフィルタが構成されていることを確認します。デフォルトでは、Oracle ADFデスクトップ統合プロジェクトでADFデスクトップ統合を有効化すると、JDeveloperによってHTTPフィルタが適切な値で構成されます。HTTPフィルタのパラメータ値を検証するには、D.2項「ADFデスクトップ統合Excelダウンロード・フィルタの構成」を参照してください。
エンド・ユーザーによる統合Excelワークブックのダウンロード元となるFusion Webアプリケーションのページを構成して、エンド・ユーザーがダウンロードを実行したときにそのパラメータがURL引数を介して統合Excelワークブックに渡されるようにします。
統合Excelワークブックのワークシートに関連付けられているページ定義ファイルを構成して、エンド・ユーザーがワークブックをダウンロードするFusion Webアプリケーションのページのパラメータを使用してワークシートが初期化されるようにします。
エンド・ユーザーがダウンロードする統合Excelワークブックのワークブック・プロパティおよびワークシート・プロパティを構成して、エンド・ユーザーがダウンロードを起動するFusion Webアプリケーションのページのパラメータがワークブックに含まれるようにします。
<af:goLink>
タグを挿入し、エンド・ユーザーがダウンロードする統合Excelワークブックおよびダウンロードする値を参照する、このタグのプロパティ値を指定します。起動時に<af:goLink>
タグおよびそのプロパティ値によって参照される値のリフレッシュをFusion Webアプリケーションに要求するコマンドを、ページ上に指定します。
Fusion Webアプリケーションのページを構成するには:
JDeveloperで、エンド・ユーザーによる統合Excelワークブックのダウンロード元となるページにaf:goLink
を挿入します。
構造ウィンドウでaf:goLinkノードを右クリックし、「プロパティに移動」を選択します。
「共通」セクションを開き、表14-1の説明に従ってプロパティの値を設定します。
表14-1 af:goLinkタグのプロパティ
プロパティ | 値 |
---|---|
|
実行時にエンド・ユーザーに表示されるテキストを記述します。 たとえば、次のようなテキストを記述して実行時に表示します。
|
|
ダウンロードする統合Excelワークブックおよびその値をURL引数として指定するEL式を記述するための式ビルダーを起動します。 たとえば、次のようなEL式を記述します。
たとえば、次のEL式が評価されてからURLエンコードされた結果の合計サイズは、2048バイトよりも小さい必要があります。
また、URLに含まれる文字数が256を超える場合は、エンド・ユーザーが統合Excelワークブックをダウンロードして保存せずに開いたときに、例外が発生します。この問題を解決するには、URLの長さを256文字に制限するか、ワークブックを開く前に保存するようエンド・ユーザーに指示する必要があります。 |
必要に応じて、「動作」セクションを開き、起動するとaf:goLink
タグおよびDestination
プロパティの値を更新するpartialTriggers
プロパティのコンポーネントIDを指定します。
たとえば、NextButton
、PreviousButton
、FirstButton
およびLastButton
というIDのナビゲーション・ボタンがある場合は、次のように指定します。
:NextButton :PreviousButton :FirstButton :LastButton
ページを保存します。
この手順で示した例を使用した場合にJDeveloperによってJSFページに生成されるエントリを、次の例に示します。
<af:goLink text="Download to Excel" destination="/excel/workbook.xlsx?productName=#{bindings.productName.attributeValue}" partialTriggers=":NextButton :PreviousButton :FirstButton :LastButton"/>
次の手順で、統合Excelワークブックのワークシートに関連付けられているページ定義ファイルを構成します。
14.5.3項「統合Excelワークブックでパラメータのプロパティを構成する方法」ではワークブックのParameters
プロパティを構成しますが、これによって指定される値でワークシートを初期化する、parameter
要素を1つ以上追加します。
次の例は、統合Excelワークブックのワークシートに関連付けられているページ定義ファイルのパラメータ要素を示しています。
<parameters> <parameter id="ProductNameParam" /> </parameters>
ワークシートに関連付けられているページ定義ファイルが正しく初期化されるように、invokeAction
およびメソッド・アクション・バインディングを追加します。
注意:
|
次の例は、filterByProductName
メソッド・アクション・バインディングを起動するinitializeProductTable
invokeAction
を示しています。invokeAction
は、ProductNameParam
の値が指定された場合のみリフレッシュされます。
<executables> <invokeAction Binds="filterByProductName" id="initializeProductTable" Refresh="deferred" RefreshCondition="${bindings.ProductNameParam != null}"/> ... </executables>
メソッド・アクション・バインディングによって、ビュー・オブジェクト・メソッド(filterByProductName
)が起動します。このビュー・オブジェクト・メソッドにより、ProductNameParam
の値を参照する1つの文字列引数(ProductNameArg
)が取得されます。
<bindings> <methodAction id="filterByProductName" RequiresUpdateModel="true" Action="invokeMethod" MethodName="filterByProductName" IsViewObjectMethod="true" DataControl="AppModuleDataControl" InstanceName="AppModuleDataControl.ProductVO1"> <NamedData NDName="ProductNameArg" NDValue="${bindings.ProductNameParam}" NDType="java.lang.String"/> </methodAction> . . . </bindings>
ページ定義ファイルの構成の詳細は、4.3項「統合Excelワークブックのページ定義ファイルの使用」を参照してください。
エンド・ユーザーによってFusion Webアプリケーションからダウンロードされる統合Excelワークブックが、ワークブックのダウンロードURLの問合せ文字列に含まれているパラメータ値を受け取るように、ワークブックのParameters
プロパティおよびワークシートのParameters
プロパティを構成します。
ワークブックのParametersプロパティを構成するには:
統合Excelワークブックを開きます。
「Oracle ADF」タブの「ワークブック」グループで、「ワークブック・プロパティ」をクリックします。
「パラメータ」の入力フィールドの横にある参照(...)アイコンをクリックして、「パラメータの編集」ダイアログを起動します。
「追加」をクリックして新しいワークブック初期化パラメータを追加し、プロパティを次のように構成します。
(オプション)「注釈」フィールドに、ワークブック初期化パラメータの説明を入力します。
14.5.1項「Fusion Webアプリケーションのページを構成してパラメータを渡す方法」でaf:goLink
タグのDestination
プロパティ用に構成したURL引数の名前を、「パラメータ」フィールドで指定します。
たとえば、表14-1に示したaf:goLink
URL引数を追加した場合、Parameterプロパティの値は図14-3に示すようにproductName
になります。
必要に応じて手順4を繰り返し、他のワークブック初期化パラメータを追加します。
「OK」をクリックします。
ワークブックのParameters
プロパティの詳細は、表A-18を参照してください。
ワークシートのParametersプロパティを構成するには:
統合Excelワークブックを開きます。
「Oracle ADF」タブの「ワークブック」グループで、「ワークシート・プロパティ」をクリックします。
「パラメータ」の入力フィールドの横にある参照(...)アイコンをクリックして、「パラメータの編集」ダイアログを起動します。
「追加」をクリックして新しいワークシート・パラメータを追加し、図14-4のように構成します。
(オプション)「注釈」フィールドに、ワークシート・パラメータの説明を入力します。
14.5.2項「ワークシートのページ定義ファイルを構成してパラメータを受け取る方法」でワークシートに関連付けられているページ定義ファイルに追加したパラメータ要素を、「パラメータ」フィールドで指定します。
ワークブック初期化パラメータ(ワークブックのParameters
配列)に対して指定したParameter
プロパティの値を参照するEL式を、「値」フィールドに記述します。EL式を記述する際は、次の構文を使用します。
#{workbook.params.
parameter
}
parameter
は、ワークブック初期化パラメータ用に指定されたParameter
プロパティの値を参照します。
必要に応じて手順4を繰り返し、他のワークブック初期化パラメータを追加します。
「OK」をクリックします。
ワークシートのParameters
プロパティの詳細は、表A-19を参照してください。
デフォルトでは、ワークブック・パラメータは、ワークブックがメタデータをリクエストするためにサーバーに接続するとき、エンド・ユーザーがログアウトするとき、またはセッションが期限切れになるときに、その都度送信されません。必要であれば、SendParameters
プロパティを構成して、初期化パラメータが送信されるようにワークブックを構成できます。
ワークシートのSendParametersプロパティを構成するには:
統合Excelワークブックを開きます。
「Oracle ADF」タブの「ワークブック」グループで、「ワークシート・プロパティ」をクリックします。
「ワークシート・プロパティの編集」ダイアログで、表14-2および図14-5に示すように、SendParameters
の値を設定します。
表14-2 SendParametersプロパティ
設定するプロパティ | 設定する値 |
---|---|
|
詳細は、15.2項「セッション間でのサーバー・データ・コンテキストのリストア」を参照してください。 |
「OK」をクリックします。
エンド・ユーザーがFusion Webアプリケーションから統合Excelワークブックをダウンロードすると、af:goLink
タグが評価され、現在の製品名が取得されてURLに組み込まれます。adfdiExcelDownload
フィルタによって、URLのすべてのパラメータの名前および値が、ダウンロードされた統合Excelワークブックに埋め込まれます。
エンド・ユーザーがワークブックをダウンロードして初めて開くときに、統合Excelワークブックのアクティブなワークシートが初期化されます。この初期化プロセスには、Webアプリケーションからのメタデータのフェッチも含まれます。格納されたワークブック・パラメータが存在する場合は、ワークシート・メタデータの取得処理の一部としてADFデスクトップ統合のリモート・サーブレットに送信されるため、<invokeAction>
実行可能ファイルなどのアプリケーション・ロジックに使用できます。具体的には、これらのパラメータはバインディング・コンテナがリフレッシュされる前にBindingContainer
DCParameters
に送信されます。ワークシートのStartup
イベントで設定されたアクションも初期化中に実行されます。初期化の後、統合Excelワークブックがディスクに保存される際に、各ワークシートの初期化ステータスが記録されます。
統合Excelワークブックを保存して閉じた後、再び開くと、前に初期化されたワークシートに対する初回の初期化はスキップされます。統合Excelワークブックの初回のダウンロード時にワークブック・パラメータが取得され、サーバー・コンテキストの設定にこれらのパラメータが必要である場合は、Worksheet.ServerContext.SendParameters
プロパティをTrue
に設定する必要があります。SendParameters
プロパティがTrue
の場合、各ユーザー・セッションにおいて、メタデータのリクエストごとに、またデータの初回のリクエスト時に、ワークブック・パラメータが送信されます。
ワークブックのすべてのワークシートの初期化状態をリセットするには、ClearAllData
アクションを起動します。ClearAllData
アクションの詳細は、表A-17を参照してください。
注意:
|