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

前
 
次
 

15 複数のWebセッション間における切断モードでの統合Excelワークブックの使用

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

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

15.1 切断されたワークブックについて

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

ユーザーに割り当てられたセッションがFusion Webアプリケーションでどのように終了するかは、ユーザーがFusion Webアプリケーションからどのように切断されたかによって決まります。ユーザーがワークブック・コマンドを使用してFusion Webアプリケーションからログオフした場合は、ただちにセッションが終了します。ユーザーが他の方法(たとえば、ワークブックを閉じるなど)でFusion Webアプリケーションから切断した場合、ユーザーに割り当てられたセッションは、セッション・タイムアウトが期限切れになると終了します。

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

15.1.1 切断されたワークブックのユースケースおよび例

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

統合Excelワークブックを保存後に開くと、更新が検出され、図15-1に示すように、変更の破棄を確認するプロンプトがエンド・ユーザーに表示されます。エンド・ユーザーが「いいえ」をクリックした場合、変更はワークブックに表示されます。エンド・ユーザーが「はい」をクリックした場合は、データをダウンロードするためにサーバーに接続することを求められます。

図15-1 切断されたワークブックの保留中の変更を破棄するダイアログ

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

15.1.2 切断されたワークブックの追加の機能

統合Excelワークブックを切断モードで検証してテストした後、必要に応じてワークブックの機能をさらに追加できます。使用可能な他の機能へのリンクは次のとおりです。

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

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

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

次のいずれかのイベントが発生し、Fusion Webアプリケーションによってエンド・ユーザーに新しいセッションが割り当てられる場合に、ビュー・オブジェクトの状態が正しくリストアされるようにページ定義ファイルを構成する必要があります。

上に示した両方のシナリオには、2つのセッションが関係しています。最初のセッションは、エンド・ユーザーが統合Excelワークブックを開いてFusion Webアプリケーションにログオンしたときに割り当てられます。エンド・ユーザーがFusion Webアプリケーションからログオフするか、セッションが期限切れになると、Fusion Webアプリケーションはこのセッションを終了します。エンド・ユーザーが統合Excelワークブックを再び開いたとき、またはFusion Webアプリケーションと相互作用するアクションを起動したときに、Fusion Webアプリケーションによって2番目のセッションが割り当てられます。

ページ定義ファイルを構成する以外にも、エンド・ユーザーがFusion Webアプリケーションからログオフした場合、またはFusion Webアプリケーションに変更をコミットする前にセッションが期限切れになった場合に保留中の変更が失われないように、統合Excelワークブックの機能を構成します。たとえば、CreateInsertアクション・バインディングおよびワークシートのDownSyncアクションを起動するために、ワークシートのStartupイベントを構成します。また、UpSyncアクションおよびCommitアクション・バインディングを起動するために、「保存」というラベルのADFボタン・コンポーネントを構成します。エンド・ユーザーのセッションが終了すると、Fusion Webアプリケーションによって新しいセッションが割り当てられた後にエンド・ユーザーが「保存」ボタンをクリックした場合でも、レコードは保存されません。このようなシナリオを回避するために、「保存」というラベルのADFボタン・コンポーネントからCreateInsertアクション・バインディングを起動することをお薦めします。

別の例として、ADF表コンポーネントのDownloadForInsertアクションの動作があります。ADF表コンポーネントによるDownloadForInsertアクションの起動をサポートするために、一時レコードを作成するカスタム・メソッドをFusion Webアプリケーションで作成する場合は、DownloadForInsertアクションの起動に成功した後、これらの一時レコードを必ず削除してください。DownloadForInsertアクションの使用の詳細は、7.5項「ADF表コンポーネントに保留中の挿入行としてデータをダウンロードするためのワークシートの構成」を参照してください。

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

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

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

開始する前に:

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

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

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

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

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

  3. ワークシート・プロパティの編集ダイアログで、表15-1の説明に従ってServerContextプロパティ・グループの値を構成します。

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

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

    CacheDataContexts

    CacheDataContextsのコレクションに要素を追加します。追加する要素を次のように構成します。

    • RestoreDataContextActionID

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

    • CachedServerContexts

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

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

    IDAttributeID

    現在のワークシートに表示される行を一意に識別する属性バインディングを指定します。実行時には、サーバー・データ・コンテキストが正しくリストアされているかどうかを判断するために、このプロパティが参照する値が使用されます。

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


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

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


注意:

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


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

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

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

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

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

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

実行時固有のものではないページ定義構成(コントロール・バインディング・タイプ、IDおよびラベルなど)

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

統合Excelワークブックの新規コピーをダウンロードするか、表A-20に示すワークブック・アクションClearAllDataおよびEditOptionsを起動しないかぎり、ページ定義構成はリフレッシュされません。

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

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

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

表A-20で説明しているワークブック・アクションClearAllDataおよびEditOptionsを起動した場合も、キャッシュされたリスト項目が消去されます。

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

統合Excelワークブックが初めて初期化されるとき。ワークブックが初期化されるのは、変換後に初めて開いたとき、またはClearAllDataの起動後です。

統合Excelワークブックの新規コピーをダウンロードするか、表A-20に示すワークブック・アクションClearAllDataおよびEditOptionsを起動しないかぎり、リソース・バンドルの文字列のキャッシュはリフレッシュされません。


15.4 切断モードで使用する値リストのキャッシュ

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

ADFデスクトップ統合では、各コンポーネントに対して最大250の値がキャッシュされます。値が250を超える値リストをコンポーネントが参照する場合、ADFデスクトップ統合では、最初の250の値をキャッシュして、残りの値に関する警告メッセージをクライアント・サイドのログ・ファイルに書き込みます。統合Excelワークブックを構成して、値リストによって参照される値が250を超えるFusion Webアプリケーションのページから、選択ダイアログを起動させることを検討してください。クライアント・サイドのログ・ファイルの詳細は、C.3項「統合Excelワークブックのログ・ファイルの生成」を参照してください。Fusion Webアプリケーションのページからの選択ダイアログの起動の詳細は、8.4項「Fusion WebアプリケーションからのWebページの表示」および8.5項「カスタム・ポップアップ・ピッカー・ダイアログのADF表列への挿入」を参照してください。

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

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

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

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