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

前
 
次
 

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

この章では、Fusion Webアプリケーションに接続していないときにエンド・ユーザーが使用できる機能について説明します。さらに、エンド・ユーザーがFusion 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ワークブックの機能

エンド・ユーザーがFusion Webアプリケーションから切断されているときには、次のアクションを実行できます。

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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

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

  1. 統合Excelワークブックで「ワークシート・プロパティ」をクリックします。

  2. 表示されるプロパティ・インスペクタで、次の表の説明に従ってServerContextプロパティ・グループの値を構成します。

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

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

    CacheDataContexts

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

    • RestoreDataContextActionID

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

    • CachedServerContexts

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

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

    IDAttributeID

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

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


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

  3. 「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 切断モードで使用する値リストのキャッシュ

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項「Webページ・ピッカー・ダイアログからの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-17を参照してください。

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