16 複数のWebセッション間における統合Excelワークブックの使用

ユースケースが複数のWebアプリケーション・セッションで適切に動作するように、統合Excelワークブックを構成する方法を説明します。

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

複数のWebセッション間における統合Excelワークブックの使用について

ユーザーが統合ExcelワークブックからFusion Webアプリケーションにログオンするたびに、ADFによってセッションが割り当てられます。このセッションは、セッション・タイムアウトまたはログアウト・アクションによって終了します。

エンド・ユーザーは、統合Excelワークブックを開いて、開発者が構成したワークブック・リボン・コマンドからFusion Webアプリケーションにログオンできます。Fusion Webアプリケーションではユーザーにセッションが割り当てられます。Fusion Webアプリケーションへの接続が確立され、有効なセッションが割り当てられると、エンド・ユーザーはFusion Webアプリケーションからワークブックへデータをダウンロードできます。その後、ワークブック・リボン・コマンドを使用してFusion Webアプリケーションからログオフするか、Fusion Webアプリケーションをホストするネットワークから切断するなどしてFusion Webアプリケーションから切断することができます。

ユーザーがワークブック・コマンドを使用してFusion Webアプリケーションからログオフした場合は、ただちにセッションが終了します。ワークブックを開いてアイドル状態にすることで、ユーザーがセッションをタイムアウトできる場合、Fusion Webアプリケーションは、セッション・タイムアウトが期限切れになると、ユーザーに割り当てられたセッションを終了します。

Fusion Webアプリケーションから切断された統合Excelワークブックを使用して、エンド・ユーザーは次のアクションを実行できます。

  • Fusion Webアプリケーションからダウンロードしたデータの変更

  • ワークブック内の適切なADF表コンポーネントへの新規データの挿入

  • データの変更を保存してワークブックを閉じ、再度開くこと(Fusion Webアプリケーションへのデータのアップロードは不要)

  • ADF表コンポーネントでの変更の追跡および更新

複数のWebアプリケーション・セッション間の統合Excelワークブックの動作をテストします。これを行うには、統合Excelワークブックを実行します。ユースケースのステップを実行する際は、現在のWebアプリケーション・セッションの様々な時点で、「ログアウト」ワークブック・リボン・コマンドをクリックします。専用の終了時点を、ADF表コンポーネントのDownloadアクションの起動からUploadアクションの起動までの間の現在のセッションにします。必要に応じて、新しいWebアプリケーション・セッションが作成されます。結果が予想したものと異なる場合は、この章の後述の項に記載のプロパティを構成する必要が生じる場合があります。

複数のWebセッション間における統合Excelワークブックの使用のユースケースおよび例

公開された統合Excelワークブックをエンド・ユーザーが開くと、ワークブックに必要なデータがダウンロードされます。その後、サーバーから切断されても、統合Excelワークブックでデータの編集や更新を続行し、保存して閉じることができます。

複数のWebセッション間で統合Excelワークブックを使用するための追加機能

複数のWebセッション間で統合Excelワークブックを検証してテストした後、必要に応じてワークブックの機能をさらに追加できます。次の各項では、使用可能なその他の機能について説明します。

  • 統合Excelワークブックのトラブルシューティング: 統合Excelワークブックの開発中またはデプロイ時に、問題が発生する可能性があります。「統合Excelワークブックのトラブルシューティング」を参照してください。

  • ADFデスクトップ統合のインストール: ADFデスクトップ統合および統合Excelワークブックをエンド・ユーザーが使用できるようにするために、ADFデスクトップ統合をインストールする必要があります。「エンド・ユーザー・アクション」を参照してください。

セッション間でのサーバー・データ・コンテキストのリストア

ワークシート内の1つ以上のアクション・セットの動作がFusion Webアプリケーションの現在のモデル状態に依存しているユース・ケースでは、新しいセッションが確立されるたびに正しいモデル状態が取得およびリストアされるように、統合Excelワークブックおよびページ定義ファイルを構成する必要があります。

新しいセッションは次のタイミングで発生します。

  • ユーザーが統合Excelワークブックを保存、閉じる、または再度開くとき

  • ユーザーがワークブックのログアウト・アクションを起動するとき

  • Fusion Webアプリケーションに接続するアクション・セット間の起動間隔が、Fusion Webアプリケーションのセッションに対して指定されているセッション・タイムアウト値を超えるとき

サーバー・データ・コンテキストをリストアするための統合Excelワークブックの構成方法

セッションとセッションの間にワークシートのServerContextプロパティ・グループの値として統合Excelワークブックにキャッシュする属性バインディングを指定します。さらに、このプロパティ・グループでは、Fusion Webアプリケーションによって統合Excelワークブックに新しいセッションが割り当てられると、キャッシュされた属性バインディング・データを使用してサーバー・サイド・コンテキストをリストアするアクション・バインディングを指定できます。

ServerContextプロパティ・グループの値を指定するには、ワークシートに関連付けられているページ定義ファイルで、サーバー・コンテキストのリストアの対象となる属性バインディングおよびアクション・バインディングを公開しておく必要があります。ページ定義ファイルへの属性バインディングとアクション・バインディングの追加の詳細は、「統合Excelワークブックのページ定義ファイルの使用」を参照してください。ServerContextプロパティ・グループの詳細は、表A-20ServerContextのエントリを参照してください。

始める前に:

サーバー・データ・コンテキストのリストア方法を理解しておくと役立ちます。「セッション間でのサーバー・データ・コンテキストのリストア」を参照してください。

他のADFデスクトップ統合の機能を使用して追加できる機能についても理解しておくと役立ちます。「複数のWebセッション間で統合Excelワークブックを使用するための追加機能」を参照してください。

サーバー・データ・コンテキストをリストアするように統合Excelワークブックを構成するには:

  1. 統合Excelワークブックを開きます。
  2. 「Oracle ADF」タブの「ワークブック」グループで、「ワークシート・プロパティ」をクリックします。
  3. 「ワークシート・プロパティの編集」ダイアログで、表16-1の説明に従ってServerContextプロパティ・グループの値を構成します。

    表16-1 サーバー・データ・コンテキストをリストアするためのServerContextプロパティ

    プロパティ 入力または選択する値

    CacheDataContexts

    通常は、このコレクションに要素を追加して、ページ定義ファイルに直接構成できない重要な問合せをリストアします。このシナリオに対処する必要がない場合、このコレクションに要素を追加することは任意です。CacheDataContextsのコレクションに要素を追加する場合は、次のように構成します。

    • RestoreDataContextActionID

      CachedServerContextsによって指定されるデータをリストアするためにFusion Webアプリケーションに接続するアクション・バインディング(たとえば、Executeアクション・バインディング)を指定します。

    • CachedServerContexts

      RestoreDataContextActionIDによって指定されるアクション・バインディングが起動する前にキャッシュおよび設定される属性バインディング値を識別する配列。配列(CachedServerContext)の各要素は、CachedAttributeIDプロパティおよびRestoredAttributeIDプロパティをサポートします。

    CacheDataContextsプロパティおよびそのサブプロパティの詳細は、「ワークシートのアクションおよびプロパティ」を参照してください。

    IDAttributeID

    現在のワークシートに表示される行を一意に識別する属性バインディングを指定します。実行時には、このプロパティが参照する値で、サーバー・データ・コンテキストが正しくリストアされているかどうかを判断します。通常は、このプロパティを使用してフォームを処理します。それ以外は、オプションになる場合があります。

    このプロパティおよびそのサブプロパティの詳細は、「ワークシートのアクションおよびプロパティ」を参照してください。

    統合Excelワークブックでパラメータを使用しており、そのワークブックをFusion Webアプリケーションからダウンロードしてデプロイした場合は、「統合Excelワークブックでパラメータのプロパティを構成する方法」を参照してください。

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

注意:

ワークシート設定アクション(またはParametersおよび<invokeAction>実行可能ファイル)を使用する統合Excelワークブックでは、新しいセッションが作成されるときにワークシート設定アクションがサーバー・データ・コンテキストをリストアできる場合は、RestoreDataContextActionIDおよびCachedServerContextsを構成する必要はありません。

実行時の処理: 統合Excelワークブックによるサーバー・データ・コンテキストのリストア

ワークシートでは、初期セッションが(たとえば、session ID 1)中に、ServerContextプロパティ・グループを使用してデータがキャッシュされます。その後、ADF表コンポーネントのUploadアクションが起動される、別のセッションID (たとえば、session ID 2)を持つセッションで、ServerContextプロパティ・グループにキャッシュされたデータがFusion Webアプリケーションに送信されます。

統合Excelワークブックでの静的情報のキャッシュ

Fusion Webアプリケーションから切断されている間にエンド・ユーザーがワークブックを使用できるように、相対的に静的な特定の種類のデータが統合Excelワークブックにキャッシュされます。

表16-2に、統合Excelワークブックでキャッシュされるデータの種類を示します。

「ワークブックのアクションおよびプロパティ」で説明されているClearAllDataワークブック・アクションを起動すると、表16-2に説明されているすべてのタイプのキャッシュ・データがリフレッシュされます。表16-2では、統合Excelワークブックがキャッシュ・データをリフレッシュするその他のシナリオについても説明しています。

表16-2 統合Excelワークブックでキャッシュされるデータの種類

データの種類 キャッシュのタイミング リフレッシュのタイミング

コントロール・バインディング・タイプ、ID、ラベルなど、ユーザー・セッション間で変更が予想されないページ定義メタデータ。

ページ定義ファイルにバインドされている統合Excelワークシートがアクティブ化され、ページ定義ファイルのメタデータのキャッシュが存在しない場合。

ページ定義メタデータは、統合Excelワークブックの新しいコピーをダウンロードしないかぎり、リフレッシュされません。

ADF値リスト・コンポーネントのリスト項目

ADF値リスト・コンポーネントによってFusion Webアプリケーションからリスト項目が初めてダウンロードされるとき。

Fusion Webアプリケーションによってホストされるリスト項目の値が統合Excelワークブックによってキャッシュされたものと異なる場合。キャッシュされたリスト項目がリフレッシュされるのは、ワークブック・セッションが存在する場合のみで、ワークブック・セッションごとに1回かぎりです。

リソース・バンドルの文字列

統合Excelワークブックが初めて初期化されるとき。公開後にワークブックを初めて開くと、ワークブックは初期化されます。

リソース・バンドル文字列のキャッシュは、統合Excelワークブックの新しいコピーをダウンロードしないかぎり、リフレッシュされません。

複数のWebセッション間で使用するための値リストのキャッシング

ADFデスクトップ統合では、値リストや依存値リストの作成に使用するADF値リスト・コンポーネントによって参照される値をキャッシュして、実行時にエンド・ユーザーが値を選択したときに、これらのコンポーネントによってFusion Webアプリケーションにリクエストが送信されないようにします。

ADFデスクトップ統合では、各コンポーネントに対して最大250の値がキャッシュされます。値が250を超える値リストをコンポーネントが参照する場合、ADFデスクトップ統合では、最初の250の値をキャッシュして、残りの値に関する警告メッセージをクライアント・サイドのログ・ファイルに書き込みます。「ADF表コンポーネントへのモデルドリブン・リスト・ピッカーの追加」の説明に従って、値リストによって参照される値が250を超えるモデルドリブン・リスト・ピッカーを使用するように、統合Excelワークブックを構成することを検討してください。クライアント・サイドのログ・ファイルの詳細は、「統合Excelワークブックのログ・ファイルの生成」を参照してください。

統合Excelワークブックにキャッシュされた値リストは、ワークブック・セッションごとに1回リフレッシュされます。このリフレッシュは、Fusion Webアプリケーションによって参照される値が、統合Excelワークブックによる最後の値リストのキャッシュ以降に変更された場合に、ユーザーがFusion WebアプリケーションとのWebセッションを再確立すると行われます。

値リストから選択した値をアップロードする際に、その選択値がFusion Webアプリケーションにすでに存在しない場合、アップロードは失敗します。このような状況が発生するのは、あるエンド・ユーザーがFusion Webアプリケーションで値を削除し、別のエンド・ユーザーが統合Excelワークブックのキャッシュされた値リストでその値を選択して変更し、変更した値をFusion Webアプリケーションにアップロードしようとした場合などです。

Fusion Webアプリケーションをデプロイし、公開した統合Excelワークブックをエンド・ユーザーが使用するようになった後にFusion Webアプリケーションの構成を変更する場合は、統合Excelワークブックの新しいコピーをダウンロードするか、もしくはClearAllDataワークブック・アクションを起動するようエンド・ユーザーに通知する必要があります。ClearAllDataワークブック・アクションの詳細は、「ワークブックのアクションおよびプロパティ」を参照してください。

Fusion Webアプリケーションの変更に、ワークシートに公開されるADF値リスト・コンポーネントに関連付けられるリスト・バインディングの定義の変更が含まれる場合があります。リスト・バインディング構成を変更すると、変更前にダウンロードおよび実行されたワークブックで予期しない例外が発生する可能性があります。

注意:

統合Excelワークブックは、ModelDrivenColumnComponentサブコンポーネントがモデルドリブン・リスト・ピッカーに表示する値をキャッシュしません。モデルドリブン・リスト・ピッカーの詳細は、「ADF表コンポーネントへのモデルドリブン・リスト・ピッカーの追加」を参照してください。

値リストの詳細は、「値リストの使用」を参照してください。

明示的なワークシート設定アクションの使用

クライアントがバインディング・コンテナ・メタデータを取得する前に起動される設定アクションを指定する方法を示します。

実行時にバインディング・コンテナのメタデータがサーバーから取得されたら、ADFデスクトップ統合はワークシートを構成するいくつかの機能を提供します。ただし、クライアントがバインディング・コンテナ・メタデータを取得する前に、データまたはバインディング・コンテナを構成することもできます。たとえば、設計時に表をワークシートに追加しますが、その表を操作するビュー・オブジェクトは実行時まで指定しない場合があります。使用されるビュー・オブジェクトはパラメータ値または設定によって決まりますが、それらの値が実行時まで不明の場合は、このような操作が必要です。さらに、実行時パラメータ値(属性の追加、表示される属性の指定など)に基づいて、ビュー・オブジェクトを構成することもできます。同様に、実行時パラメータ値に基づいてバインディング・コンテナを構成することもできます。このようなユース・ケースでは、バインディング・コンテナ・メタデータがサーバーからワークシートに送信される前に、設定タスクを実行する必要があります。

ADFデスクトップ統合の明示的なワークシート設定アクション機能を使用すると、クライアントがバインディング・コンテナ・メタデータを取得する前に起動される設定アクションを指定できます。Summitサンプル・アプリケーションのEditWarehouseInventory-DT.xlsxワークブックは、この機能(倉庫の在庫ワークシートがFilterWarehouseMasterByIdの名前のメソッド・アクション・バインディングを起動)の実装を示します。

明示的なワークシート設定アクションの構成方法

ワークシートのSetupActionIDプロパティを使用すると、バインディング・コンテナ・メタデータがワークシートに送信される前に起動されるメソッドを指定できます。メソッドでは、データおよびバインディング・コンテナでの構成に必要なロジックを実装できます。

始める前に:

明示的なワークシート設定アクション機能について理解しておくと役立ちます。「明示的なワークシート設定アクションの使用」を参照してください。

他のADFデスクトップ統合の機能を使用して追加できる機能についても理解しておくと役立ちます。「複数のWebセッション間で統合Excelワークブックを使用するための追加機能」を参照してください。

ワークシートSetupActionIDプロパティを使用する手順:

  1. 統合Excelワークブックのワークシートを開きます。
  2. Excelリボンで、「ワークシート・プロパティ」をクリックします。
  3. 「ワークシート・プロパティの編集」ダイアログで、データを展開し、SetupActionIDプロパティの入力フィールドの横にある参照(...)アイコンをクリックします。
  4. 「バインディングの選択」ダイアログで、バインディング・コンテナ・メタデータがワークシートに送信される前に起動するアクションを選択し、「OK」をクリックします。

    注意:

    SetupActionIDプロパティはADFmActionのみを受け入れます。無効なメソッドがプロパティに設定されている場合は、検証エラーが報告されます。

  5. 「OK」をクリックし、「ワークシート・プロパティの編集」ダイアログを閉じます。

    図16-1は、FilterWarehouseMasterById methodActionバインディングが選択されたEditWarehouseInventory-DT.xlsxワークブックの構成を示しています。

    図16-1 「ワークシート・プロパティの編集」ダイアログのSetupActionIDプロパティ

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

明示的なワークシート設定アクションに関する必知事項

SetupActionIDプロパティによって指定されたアクションが実行されたら、ワークシートに送信されるバインディング・コンテナ・メタデータはメソッドで構成された構成を反映します。ADFデスクトップ統合では、バインディング・コンテナ・インスタンスに対して設定アクションが1回のみ実行されるようにします。なんらかの理由で新しいバインディング・コンテナ・インスタンスがワークシートに関連付けられると、新しいバインディング・コンテナ・インスタンスが構成されるように設定アクションが再度起動されます。

設定アクションの起動時にエラーが発生すると、ADFデスクトップ統合はワークシート内で自動的に無効になります。ログアウトし再度ログインしても、ワークシート内のADFデスクトップ統合は有効になりません。Excelリボンから「全データのクリア」コマンドを実行すると、ワークシート内のADFデスクトップ統合は再度有効になり、設定アクションは後続の要求時に再度実行されます。