ヘッダーをスキップ
Oracle® Fusion Middleware Oracle Application Development Frameworkデスクトップ統合開発者ガイド
11gリリース1(11.1.1.6.0)
B66694-01
  目次へ移動
目次
索引へ移動
索引

前
 
次
 

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

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

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

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

統合Excelワークブックの開発が終了した後、最終の統合Excelワークブックをエンド・ユーザーが使用できるようにするために、結果となるFusion Webアプリケーションをアプリケーション・サーバーにデプロイします。Fusion Webアプリケーションと統合される最終のExcelワークブックをデプロイする前に、14.3項「統合Excelワークブックの公開」の手順に従ってこれを公開する必要があります。Excelワークブックを公開した後、『Oracle Fusion Middleware Oracle Application Development Framework Fusion開発者ガイド』の「Fusion Webアプリケーションのデプロイ」に概説されているメソッドのいずれかを使用してデプロイできます。

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

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

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

setup.exeツールの使用の詳細は、I.1項「ADFデスクトップ統合のランタイム・エディションのインストール」を参照してください。

Microsoft ClickOnceインストーラの詳細は、次のサイトを参照してください。

http://msdn.microsoft.com/en-us/library/71baz9ah.aspx

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

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

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

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

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

Excelからワークブックを公開する手順:

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

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

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

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

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

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

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

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

次に、次の構文を使用して公開ツールを実行します。

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\foddemo\masterpricelist\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デスクトップ統合では次のアクションが実行されます。

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

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

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

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

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

14.4 公開したワークブックをFusion Webアプリケーションとともにデプロイする方法

統合ExcelワークブックがJDeveloperプロジェクトを構成する他のファイルとともにパッケージ化されていない場合は、Fusion WebアプリケーションのJDeveloperプロジェクトに統合Excelワークブックを追加します。こうすることで、最終のFusion Webアプリケーションをデプロイする際に、Fusion Webアプリケーションと統合するExcelワークブックが確実にデプロイされます。たとえば、Master Price Listモジュールには、このモジュールによって次の場所で統合されるExcelワークブックが格納されます。

FOD_HOME\MasterPriceList\ViewController\src\oracle\foddemo\masterpricelist\excel\excel

FOD_HOMEは、Fusion Order Demoアプリケーションのインストール・ディレクトリです。

統合Excelワークブックの格納先を決定したら、エンド・ユーザーが統合ExcelワークブックにアクセスできるようにFusion WebアプリケーションでWebページを構成できます。たとえば、図14-1は、Master Price Listモジュールによって表示されたPriceListSummary.jspxページのExcelライブ・スプレッドシートを使用して編集メニュー・オプションをクリックして起動された、Internet Explorerの「ファイルのダウンロード」ダイアログを示しています。

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

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

図14-1に示した機能を有効にするには、Fusion WebアプリケーションのHTTPフィルタ・パラメータを構成してExcelワークブックを認識させる必要があります。4.2項「Fusion WebアプリケーションへのADFデスクトップ統合の追加」で説明しているように、Fusion Webアプリケーションのテクノロジ・スコープにADFデスクトップ統合を追加すると、これらのパラメータが自動的に構成されます。HTTPフィルタ・パラメータを手動で構成する場合は、付録E「Webアプリケーション・デプロイメント・ディスクリプタでのADFデスクトップ統合の設定」を参照してください。

Fusion WebアプリケーションのHTTPフィルタを構成した後、Fusion Webアプリケーションによってエンド・ユーザーに表示されるWebページを構成し、エンド・ユーザーがExcelワークブックを起動できるようにします。Fusion Webアプリケーションと統合されたExcelワークブックを起動できるようにする基本的な方法は、ワークブックを起動するハイパーリンクを提供することです。たとえば、Webページに次のようなHTMLを記述できます。

<a href="/excel/EditPriceList.xlsx">Open the Master Price List in Excel</a>

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

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

Fusion WebアプリケーションのWebページの作成の詳細は、『Oracle Fusion Middleware Oracle Application Development Framework Webユーザー・インタフェース開発者ガイド』を参照してください。

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

Fusion Webアプリケーションのページを構成して、エンド・ユーザーがそのページからワークブックをダウンロードするときに、統合Excelワークブックにパラメータ値を渡すことができます。 たとえば、エンド・ユーザーが商品リストを表示するページからワークブックをダウンロードする場合、エンド・ユーザーがダウンロードを起動したときにワークブックに表示される商品リストは、ページ上に表示される商品リストと一致します。その後ワークシートまたはFusion Webアプリケーションのページの一方でエンド・ユーザーが行った変更は、他方のデータには影響しません。

この機能を構成するには、次の作業を行う必要があります。

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

<af:goLink>タグを挿入し、エンド・ユーザーがダウンロードする統合Excelワークブックおよびダウンロードする値を参照する、このタグのプロパティ値を指定します。また、起動時に<af:goLink>タグおよびそのプロパティ値によって参照される値のリフレッシュをFusion Webアプリケーションに要求するコマンドを、ページ上に指定します。

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

  1. JDeveloperで、エンド・ユーザーによる統合Excelワークブックのダウンロード元となるページにaf:goLinkを挿入します。

  2. 構造ウィンドウでaf:goLinkノードを右クリックし、「プロパティに移動」を選択します。

  3. 「共通」セクションを開き、表14-1の説明に従ってプロパティの値を設定します。

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

    プロパティ Value

    Text

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

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

    Download to Excel

    Destination

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

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

    "/excel/workbook.xlsx?productName=#{bindings.productName.attributeValue}"

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

    たとえば、productName=#{bindings.productName.attributeValue}のURLエンコードされたランタイム値は、2048バイト未満であることが必要です。

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


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

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

    :NextButton :PreviousButton :FirstButton :LastButton

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

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

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

14.5.2 ワークシートのページ定義ファイルを構成してパラメータを受け取る方法

次の手順で、統合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ワークブックのページ定義ファイルの使用」を参照してください。

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

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

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

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

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

  3. Parametersの入力フィールドの横にある省略記号ボタン(...)をクリックして、「WorkbookParameterコレクション・エディタ」を起動します。

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

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

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

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

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

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

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

  3. Parametersの入力フィールドの横にある省略記号ボタン(...)をクリックして、「WorksheetParameterコレクション・エディタ」を起動します。

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

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

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

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

      #{workbook.params.productName}

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

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

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

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

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

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

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

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

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

  3. プロパティ・インスペクタで、次の表および図14-2に示すようにSendParametersの値を設定します。

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

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


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

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

エンド・ユーザーが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を参照してください。


注意:

ShareFrameプロパティがTrueのアクション・セットでWebダイアログが起動すると、サーバーに渡されたパラメータの値がリセットされる可能性があります。これらのパラメータが使用され、それらの値がWebダイアログの起動間で維持されることが必要なカスタム・コードでは、ユーザー・セッションのデータ構造の値が保存されるようにしてください。