Oracle® Fusion Middleware Oracle Application Development Frameworkデスクトップ統合開発者ガイド 11gリリース1 (11.1.1.7.0) B66694-02 |
|
前 |
次 |
この章では、ユースケースが複数のWebアプリケーション・セッションで適切に動作するように、統合Excelワークブックを構成する方法を説明します。
この章の内容は次のとおりです。
エンド・ユーザーは、統合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アプリケーションからダウンロードしたデータの変更
ワークブック内の適切なADF表コンポーネントへの新規データの挿入
データの変更を保存してワークブックを閉じ、再度開くこと(Fusion Webアプリケーションへのデータのアップロードは不要)
ADF表コンポーネントでの変更の追跡および更新
公開された統合Excelワークブックをエンド・ユーザーが開くと、ワークブックに必要なデータがダウンロードされます。その後、サーバーから切断されても、統合Excelワークブックでデータの編集や更新を続行し、保存して閉じることができます。
統合Excelワークブックを保存後に開くと、更新が検出され、図15-1に示すように、変更の破棄を確認するプロンプトがエンド・ユーザーに表示されます。エンド・ユーザーが「いいえ」をクリックした場合、変更はワークブックに表示されます。エンド・ユーザーが「はい」をクリックした場合は、データをダウンロードするためにサーバーに接続することを求められます。
次のいずれかのイベントが発生し、Fusion Webアプリケーションによってエンド・ユーザーに新しいセッションが割り当てられる場合に、ビュー・オブジェクトの状態が正しくリストアされるようにページ定義ファイルを構成する必要があります。
エンド・ユーザーが、ワークブックのデータを変更し、ワークブックを保存して閉じた後、ワークブックを再度開いて、ワークブックを保存して閉じる前に、実行した変更をアップロードしようとしました。
ADF表コンポーネントのDownload
アクションの起動からUpload
アクション(またはFusion Webアプリケーションにアクセスする他のADF表コンポーネント・アクション)の起動までの時間が、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.7項「ADF表コンポーネントに挿入前のデータをダウンロードするためのワークシートの構成」を参照してください。
セッションとセッションの間にワークシートのServerContext
プロパティ・グループの値として統合Excelワークブックにキャッシュする属性バインディングを指定します。さらに、このプロパティ・グループでは、Fusion Webアプリケーションによって統合Excelワークブックに新しいセッションが割り当てられると属性バインディングを使用してサーバー・サイド・コンテキストをリストアするアクション・バインディングを指定できます。
ServerContext
プロパティ・グループの値を指定するには、ワークシートに関連付けられているページ定義ファイルで、サーバー・コンテキストのリストアの対象となる属性バインディングおよびアクション・バインディングを公開しておく必要があります。属性バインディングおよびアクション・バインディングのページ定義ファイルへの追加の詳細は、4.3項「統合Excelワークブックのページ定義ファイルの使用」を参照してください。ServerContext
プロパティ・グループの詳細は、表A-19のServerContext
のエントリを参照してください。
サーバー・データ・コンテキストをリストアするように統合Excelワークブックを構成するには:
統合Excelワークブックを開きます。
「Oracle ADF」タブの「ワークブック」グループで、「ワークシート・プロパティ」をクリックします。
ワークシート・プロパティの編集ダイアログで、表15-1の説明に従ってServerContext
プロパティ・グループの値を構成します。
表15-1 サーバー・データ・コンテキストをリストアするためのServerContextプロパティ
プロパティ | 入力または選択する値 |
---|---|
|
|
|
現在のワークシートに表示される行を一意に識別する属性バインディングを指定します。実行時には、サーバー・データ・コンテキストが正しくリストアされているかどうかを判断するために、このプロパティが参照する値が使用されます。 このプロパティおよびそのサブプロパティの詳細は、A.13項「ワークシート・プロパティ」を参照してください。 |
統合Excelワークブックでパラメータを使用しており、そのワークブックをFusion Webアプリケーションからダウンロードしてデプロイした場合は、14.5.3項「統合Excelワークブックでパラメータのプロパティを構成する方法」を参照してください。
「OK」をクリックします。
注意:
|
Fusion Webアプリケーションから切断されている間にエンド・ユーザーがワークブックを使用できるように、相対的に静的な特定の種類のデータが統合Excelワークブックにキャッシュされます。表15-2に、統合Excelワークブックでキャッシュされるデータの種類を示します。また、統合Excelワークブックによってそのデータがリフレッシュされるタイミングも示します。
表15-2 統合Excelワークブックでキャッシュされるデータの種類
データの種類 | キャッシュのタイミング | リフレッシュのタイミング |
---|---|---|
実行時固有のものではないページ定義構成(コントロール・バインディング・タイプ、IDおよびラベルなど) |
ページ定義ファイルにバインドされている統合Excelワークシートがアクティブ化され、ページ定義ファイルの構成のキャッシュが存在しない場合。 |
統合Excelワークブックの新規コピーをダウンロードするか、表A-17に示すワークブック・アクション |
ADF値リスト・コンポーネントのリスト項目 |
ADF値リスト・コンポーネントによってFusion Webアプリケーションからリスト項目が初めてダウンロードされるとき。 |
Fusion Webアプリケーションによってホストされるリスト項目の値が統合Excelワークブックによってキャッシュされたものと異なる場合。キャッシュされたリスト項目がリフレッシュされるのは、ワークブック・セッションが存在する場合のみで、ワークブック・セッションごとに1回かぎりです。 表A-17で説明しているワークブック・アクション |
リソース・バンドルの文字列 |
統合Excelワークブックが初めて初期化されるとき。ワークブックが初期化されるのは、変換後に初めて開いたとき、または |
統合Excelワークブックの新規コピーをダウンロードするか、表A-17に示すワークブック・アクション |
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-17を参照してください。
Fusion Webアプリケーションでの変更には、ワークシートで公開されているADF値リストやTreeNodeListサブコンポーネントに関連付けられているリスト・バインディングの定義の変更が含まれる場合があります。リスト・バインディング構成を変更すると、変更前にダウンロードおよび実行されたワークブックで予期しない例外が発生する可能性があります。