プライマリ・コンテンツに移動
Oracle® Fusion Middleware Oracle ADFデスクトップ統合によるアプリケーションの開発
12c (12.2.1.3.0)
E90374-01
目次へ移動
目次

前
次

9 統合Excelワークブックへの対話性の追加

アップロードやダウンロードなどのアクションを起動するアクション・セットを構成し、コマンドをリボン・タブに公開し、Excel式でEL式を使用することにより、統合Excelワークブックに対話性を追加します。

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

9.1 統合Excelワークブックへの対話性の追加について

アクション・セットなどの機能を使用し、実行時リボン・タブの構成や依存値リストの作成によって、統合ワークブックをエンド・ユーザーに対して対話形式にすることができます。

図9-1は、対話機能のいくつかを示します。

図9-1 統合Excelワークブックの対話機能

図9-1の説明が続きます
「図9-1 統合Excelワークブックの対話機能」の説明

統合Excelワークブックに対話性を追加すると、エンド・ユーザーがワークブックでOracle ADFの機能を起動するアクション・セットを実行できるようになります。また、これらのアクション・セットの実行時に統合Excelワークブックでステータス・メッセージやアラート・メッセージ、エラー処理も提供されます。アクション・セットを起動するADFデスクトップ統合コンポーネントでのエンド・ユーザーの動作(ダブルクリック、クリック、選択)の他に、エンド・ユーザーが実行時にアクション・セットを起動するために使用する、ワークブックおよびワークシート・リボン・コマンドを構成できます。

9.1.1 統合Excelワークブックへの対話性の追加のユース・ケースと例

統合Excelワークブックに対話性を追加するために、エンド・ユーザーの動作により起動されるアクション・セットを使用できます。たとえば、図9-2に示すように、CustomerSearch-DT.xlsxすべての顧客のダウンロード・リボン・コマンドでは、2つのアクションを含むアクション・セットを使用して、ワークシートに関連付けられている問合せ値をリセットします。図9-2では、エンド・ユーザーが検索機能を起動できるリボン・コマンド(顧客の検索)も示されています。

図9-2 すべての顧客のダウンロード・リボン・コマンドのアクション・セット

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

9.1.2 統合Excelワークブックへの対話性の追加の追加機能

アクション・セットと実行時リボン・タブの他に、その他の機能を追加してワークブックを構成できます。次の各項では、使用可能なその他の機能について説明します。

9.2 アクション・セットの使用

アクション・セットは、特定の順序で実行される1つ以上のアクションからなる、順序付けされたリストです。アクションのタイプには次のようなものがあります。

  • ADFmAction

  • ComponentAction

  • WorksheetMethod

  • Confirmation

  • Dialog

アクション・セットは、エンド・ユーザーの動作(リボン・コマンドのクリックなど)またはExcelワークシート・イベントによって起動できます。エンド・ユーザーの動作によってアクション・セットが起動される場合、ADFコンポーネントのプロパティ・インスペクタのアクション・セットのプロパティ名には、必要な動作の名前が先頭に付きます。次のリストは、ADFデスクトップ統合がプロパティ・インスペクタで表示するプロパティ名と、アクション・セットを起動するユーザーの動作を示します。

  • DoubleClickActionSetはADF入力テキストまたはADF出力テキスト・コンポーネント用で、エンド・ユーザーが関連のアクション・セットを起動するためにこれらのコンポーネントをダブルクリックするときに使用されます。

  • SelectActionSetはワークシート・リボン・コマンド用で、エンド・ユーザーが関連のアクション・セットを起動するためにリボン・コマンドを選択したときに使用されます。

  • ActionSetはワークシート・イベント用で、アクション・セットを起動するときに明示的なエンド・ユーザーの動作は必要ありません。

ADFコンポーネントやワークシート・リボン・コマンド、またはワークシート・イベントからアクションの編集ダイアログを起動して、アクション・セットを定義あるいは構成します。アクション・セットが起動するアクションを定義する他に、アクション・セットのAlertプロパティを構成して、アクション・セットの起動の結果に対するフィードバックを提供できます。アクション・セットのStatusプロパティを構成して、定義したアクションをアクション・セットが実行する際に、エンド・ユーザーに進捗バーを表示します。「アクションの編集」ダイアログを開く方法の詳細は、「コレクション・エディタの使用」を参照してください。

ADFデスクトップ統合のSummitサンプル・アプリケーションには、使用されるアクション・セットの多くの例が用意されています。1つの例は、EditCustomers-DT.xlsxワークブックで実行時にUploadというラベルの付くリボン・コマンドです。このリボン・コマンドには、ADF表コンポーネントのUploadアクションを起動するアクション・セットが構成されています。図9-3は、設計モードでのアクションの編集ダイアログを示しています。

デフォルトでは、エンド・ユーザーはアクション・セットの実行中に別の統合Excelワークブックを開くことはできません。アクション・セットが長時間実行されることがわかっている場合は、そのアクション・セットを非ブロッキングにして、エンド・ユーザーが長時間実行するアクション・セットの完了を待機している間に他の作業を行えるようにします。

図9-3 EditCustomers-DT.xlsxワークブックのアップロード・リボン・コマンドのアクション・セット

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

ヒント:

アクションの編集ダイアログに追加するアクションごとに、「注釈」フィールドに説明を記述します。記述する説明は「メンバー」リスト・ビューに表示され、複数の項目を効率的に管理できます。

注意:

ADFデスクトップ統合は、 Membersリスト・ビューで指定した順にアクション・セット内のアクションを起動します。

9.2.1 アクション・セット内のメソッド・アクション・バインディングの起動方法

1つのアクション・セットで複数のメソッド・アクション・バインディングを起動できます。ページ定義ファイルは、Fusion Webアプリケーションと統合するワークシートで起動可能なアクション・バインディングを定義します。統合Excelワークブックのページ定義ファイルとアクション・バインディングの詳細は、「統合Excelワークブックのページ定義ファイルの使用」を参照してください。

「アクションの編集」ダイアログを使用して、起動するメソッド・アクション・バインディングを指定します。

始める前に:

アクション・セットについて理解しておくと役立ちます。「アクション・セットの使用」を参照してください。

他のADFデスクトップ統合の機能を使用して追加できる機能についても理解しておくと役立ちます。「統合Excelワークブックへの対話性の追加の追加機能」を参照してください。

アクション・セットでメソッド・アクションを起動するには:

  1. 統合Excelワークブックを開きます。
  2. 「アクションの編集」ダイアログを開いて、ここに示す「追加」ボタンからドロップダウン・リストを起動します。
    この図は周囲のテキストで説明しています
  3. ADFmActionを選択して、次のリストにあるようにプロパティを構成します。
    • ActionID

      ActionIDの入力フィールドの横にある参照(...)アイコンをクリックして、バインディングIDピッカーを起動し、アクション・セットが起動するメソッド・アクション・バインディングを選択します。たとえば、図9-4は、Summitサンプル・アプリケーションのEditCustomers-DT.xlsxワークブックのDownloadアクション・セットで起動される最初のアクションである、Executeアクション・バインディングを示します。

    • Annotation

      オプションで、構成するアクションの目的に関するコメントを入力します。このプロパティに設定する値には、機能的な影響はありません。

      図9-4 アクション・バインディングの実行

      図9-4の説明が続きます
      「図9-4 アクション・バインディングの実行」の説明
  4. 「OK」をクリックします。

9.2.2 アクション・セット内のコンポーネント・アクションの起動方法

ADF表コンポーネントなどの一部のコンポーネントは、Fusion Webアプリケーションと統合するExcelワークシート間のデータ送信の管理に使用できるアクションを公開します。ADFデスクトップ統合コンポーネントで使用可能なアクションの詳細は、「ADFデスクトップ統合コンポーネントのプロパティとアクション」を参照してください。

アクション・セットのアクションの配列にコンポーネント・アクションを追加することで、1つ以上のコンポーネント・アクションを起動するアクション・セットを構成できます。たとえば、図9-5は、Summitサンプル・アプリケーションのEditCustomers-DT.xlsxワークブックに存在するADF表コンポーネントによって公開されるDownloadアクションを、そのワークブックの「ダウンロード」リボン・コマンドのSelectActionSetアクション・セットによる起動に選択できる「コンポーネント・アクションの選択」ダイアログを示します。

図9-5 コンポーネント・メソッドの選択ダイアログ

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

注意:

コンポーネント・アクションを公開するコンポーネントが現在のワークシートに含まれない場合、「コンポーネント・アクションの選択」ダイアログは空の状態で表示されます。

始める前に:

アクション・セットについて理解しておくと役立ちます。「アクション・セットの使用」を参照してください。

他のADFデスクトップ統合の機能を使用して追加できる機能についても理解しておくと役立ちます。「統合Excelワークブックへの対話性の追加の追加機能」を参照してください。

アクション・セットからコンポーネント・アクションを起動するには:

  1. 統合Excelワークブックを開きます。
  2. 「アクションの編集」ダイアログを開いて、ここに示す「追加」ボタンからドロップダウン・リストを起動します。
  3. ComponentActionを選択して、次のリストにあるようにプロパティを構成します。
    • ComponentID

      ComponentIDの入力フィールドの横にある参照(...)アイコンをクリックして、「コンポーネント・メソッドの選択」ダイアログを起動し、アクション・セットが実行時に起動するコンポーネント・アクションを選択します。これによって、ComponentIDActionの各入力フィールドに値が移入されます。

    • Action

      アクション・セットが実行時に起動するコンポーネント・アクション。

    • Annotation

      オプションで、構成するアクションの目的に関するコメントを入力します。このプロパティに設定する値には、機能的な影響はありません。

    • DetailStatusMessage

      「ステータス・メッセージ」ウィンドウに表示されるオプションのリテラル値またはEL式を指定します(「アクション・セットの実行中に進捗バーを表示する方法」を参照)。

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

9.2.3 コンポーネント・アクションを起動するアクション・セットに関する必知事項

統合Excelワークブックでのアクション・セットの動作に関する次の情報に注意してください。

ログイン前のアクション・セットの起動

ADF表コンポーネントのDownloadアクションなど、一部のコンポーネント・アクションでは、Fusion Webアプリケーションへの接続を正常に完了する必要があります。このようなコンポーネント・アクションが含まれるアクション・セットをエンド・ユーザーが起動する場合、統合ExcelワークブックはFusion Webアプリケーションに接続しようと試み、必要があれば「Excelワークブック・ユーザーの認証」で説明されている認証プロセスを起動します。

アクション・セットの検証による正しいコンポーネント・アクションの起動

アクション・セットを作成する際は、ワークシートに複数のインスタンスのコンポーネントが含まれる場合、正しいコンポーネントのインスタンスからコンポーネント・アクションを起動するようにしてください。図9-6は、2つのインスタンスのADF表コンポーネントが表示される「コンポーネント・アクションの選択」ダイアログを示します。表A-1に示すComponentIDプロパティの値を使用して、コンポーネント・アクションを起動するコンポーネントのインスタンスを正しく識別してください。

図9-6 「コンポーネント・アクションの選択」ダイアログ

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

9.2.4 ワークシート・イベントからアクション・セットを起動する方法

ADFデスクトップ統合には、ワークシート・イベントがいくつか用意されており、これはトリガーされるとアクション・セットを起動できます。次のワークシート・イベントはアクション・セットを起動できます。

  • Startup

  • Shutdown

    DialogアクションのTargetプロパティがTaskPaneに設定されている場合、このイベントからDialogアクションを起動しないでください。

  • Activate

  • Deactivate

Eventsワークシート・プロパティによって参照されるイベントの配列(WorksheetEventリスト)に要素を追加します。イベントと、追加する要素の中でそれによって起動されるアクション・セットを指定します。Eventsワークシート・プロパティおよびアクション・セットを起動できるワークシート・イベントの詳細は、表A-20を参照してください。アクション・セットの詳細は、表A-15を参照してください。

「イベントの編集」ダイアログを使用して、ワークシート・イベントによって起動されるアクション・セットを指定します。

始める前に:

アクション・セットについて理解しておくと役立ちます。「アクション・セットの使用」を参照してください。

他のADFデスクトップ統合の機能を使用して追加できる機能についても理解しておくと役立ちます。「統合Excelワークブックへの対話性の追加の追加機能」を参照してください。

ワークシート・イベントからアクション・セットを起動するには:

  1. 統合Excelワークブックを開きます。
  2. 「Oracle ADF」タブの「ワークブック」グループで、「ワークシート・プロパティ」をクリックします。
  3. 「ワークシート・プロパティの編集」ダイアログで、Eventsプロパティの入力フィールドの横にある参照(...)アイコンをクリックします。
  4. 「イベントの編集」ダイアログで、「追加」をクリックして、イベントおよびそれが起動する対応するアクション・セットを指定する新しい要素を追加します。

    図9-7は、EditCustomers-DT.xlsxファイルの例を示しています。ここでは、ワークシート・イベントのStartupが、ADF表コンポーネントのDownloadアクションを起動するアクション・セットを起動します。

    図9-7 ワークシートのStartupイベントにより起動されるアクション・セット

    この図は周囲のテキストで説明しています
  5. 「OK」をクリックします。

9.2.5 アクション・セットの実行中に進捗バーを表示する方法

アクション・セットでStatusプロパティの値を指定することにより、アクション・セットの実行時にエンド・ユーザーに対してステータス・メッセージおよび進捗バーを表示できます。

アクション・セットのStatusプロパティを使用しながら、進捗バーを使用して進行状況を視覚的に示すことができます。StatusプロパティのMode属性により、実行時の進捗バーの外観を選択できます。メインの進捗バーと詳細進捗バーの、2種類の進捗バーが使用可能です。メインの進捗バーはアクション・セットのアクションを使用して進捗を示し、詳細進捗バーは現在のアクションの進捗を示します。

アクション・セットにStatusプロパティを構成するアクション・セットにプロパティ・インスペクタを使用します。たとえば、実行時にリボン・コマンドで起動されるSelectActionSetStatusプロパティを構成する場合は、リボン・コマンドの編集ダイアログを使用します。

始める前に:

アクション・セットについて理解しておくと役立ちます。「アクション・セットの使用」を参照してください。

他のADFデスクトップ統合の機能を使用して追加できる機能についても理解しておくと役立ちます。「統合Excelワークブックへの対話性の追加の追加機能」を参照してください。

ステータス・メッセージを表示するには:

  1. 統合Excelワークブックを開きます。
  2. たとえば、アクション・セットを起動するリボン・コマンドのアクションの編集ダイアログを開きます。
  3. 表9-1の説明に従って、Statusプロパティ・グループのプロパティの値を設定します。

    表9-1 Statusプロパティ・グループ

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

    AllowCancel

    ステータス・ダイアログ・ボックスに「取消」ボタンを表示する場合はTrue

    アクション・セットの実行をエンド・ユーザーが取り消せるかどうかを示します。

    「取消」ボタンの詳細は、「アクションの取消しに関する必知事項」を参照してください。

    Enabled

    Trueに設定すると、ステータス・メッセージが表示されます。デフォルト値はTrueです。

    Message

    実行時に表示するステータス・メッセージに解決されるオプションのEL式またはリテラル値。

    たとえば、EditCustomers-DT.xlsxファイルの「アップロード」リボン・コマンドでは、Messageプロパティに次のEL式が構成されています。

    #{res['excel.customers.ribbon.upload.message']}

    Mode

    進捗バーの表示形式を選択します。

    • Automatic: ADFデスクトップ統合は、アクションセットを分析し、表示する進捗バーを判別します。

    • BothBarsAlways: メインの進捗バーと詳細進捗バーの両方を表示します。

    • MainBarOnly: 1つの進捗バーのみを表示します。このバーはアクションのリストを使用して進捗を表示します。

    • DetailBarOnly: 1つの進捗バーのみを表示します。このバーは現在のアクションの進捗を表示します。

    • MainMessageOnly: いずれの進捗バーも表示しません。

    Title

    実行時に表示するステータス・メッセージのタイトルに解決されるオプションのEL式またはリテラル値。

    たとえば、EditCustomers-DT.xlsxファイルの「アップロード」リボン・コマンドでは、Titleプロパティに次のEL式が構成されています。

    #{res['excel.customers.ribbon.upload.title']}

    注意:

    ADFデスクトップ統合では、表9-1で説明されているように、MessageおよびTitleプロパティに値を指定しない場合、実行時に汎用テキストがレンダリングされます。このため、アクション・セットの機能コンテキストに固有のこれらのプロパティに値を指定することをお薦めします。

    図9-8に、ADF表コンポーネントのUploadアクションのStatusプロパティ・グループ用に構成された、プロパティ値およびそれに対応するビジュアル要素を示します。

    図9-8 アクション・セットのステータス・メッセージ・プロパティ

    図9-8の説明が続きます
    「図9-8 アクション・セットのステータス・メッセージ・プロパティ」の説明

    Statusプロパティ・グループの詳細は、表A-15Statusのエントリを参照してください。

    オプションのDetailStatusMessageプロパティを使用して、追加の情報をユーザーに提供することもできます。DetailStatusMessageプロパティの詳細は、「アクション・セット内のコンポーネント・アクションの起動方法」を参照してください。

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

9.2.6 実行時の処理: アクション・セットによるステータス・メッセージの表示

アクション・セットが起動されると、Statusプロパティがステータス・メッセージを表示するように構成されていれば、ステータス・メッセージが表示されます。図9-9は、EditCustomers-DT.xlsxワークブックのUploadリボン・コマンドに構成されているアクション・セットが実行される際、実行時に表示されるステータス・メッセージを示しています。

図9-9 ステータス・メッセージの実行時の表示

図9-9の説明が続きます
「図9-9 ステータス・メッセージの実行時の表示」の説明

実行時にMessageプロパティの値が空の場合、ADFデスクトップ統合ではデフォルトのローカライズされた値が指定されます。Titleプロパティが空の場合、アクション・セット・コンテナ(リボン・コマンドなど)のラベルが使用されます。コンテナのラベルも空の場合、ADFデスクトップ統合により提供されたデフォルト値が使用されます。

9.2.7 進捗バーに関する必知事項

進捗バーに関する次の情報に気をつけてください。

  • アクション(alertconfirmdialogまたはupload optionsなど)がユーザーの入力を求めると、進捗バー・ウィンドウは自動的に非表示になります。

  • ADFmActionなどの一部のアクション・タイプは、詳細バーでの進捗の増分の表示をサポートしていません。たとえば、図9-10に、ModeBothBarsAlwaysに設定されたCommitアクションの進捗バーを示します。詳細バーは表示されていますが、進捗を示してはいないことに注意してください。

    図9-10 ADFmActionタイプの進捗バー

    図9-10の説明が続きます
    「図9-10 ADFmActionタイプの進捗バー」の説明
  • Automaticモードで、アクション・セットに3つよりも少ないアクションしかない場合、ステータス・メッセージ・ダイアログには詳細な進捗バーのみが表示されます。アクション・セットに3つ以上のアクションがある場合、ダイアログにメイン・バーは必ず表示されますが、詳細な進捗バーは、アクション・セット内のいずれかのアクションが進捗の増分に対応している場合にのみ表示されます。どのアクションも進捗の増分に対応していない場合は、詳細バーは表示されません。

  • 必要な場合、メインの進捗バーを表示せずに、詳細な進捗バーを表示することができます。このような構成は、問合せを実行した後にデータをダウンロードするといった、1つのすばやいアクションと1つの長いアクションを含むアクション・セットには有用な場合があります。

  • 非常にすばやいアクション・セット(Worksheet.DownSyncなど)またはダイアログのみを表示するアクション・セットの場合、ベスト・プラクティスはステータス・メッセージを無効にすることです。

9.2.8 エンド・ユーザーがアクション・セットを実行しながらExcelの作業を続行できるようにする方法

長時間実行するアクション・セットによって、エンド・ユーザーが他の統合Excelワークブックやワークシートを使用できなくならないように、統合Excelワークブックを構成できます。

長時間実行するアクション・セット(100,000行のTable.Downloadアクションが含まれるアクション・セットなど)を実行する統合Excelワークブックは、エンド・ユーザーがMicrosoft Excelを使用して他の統合Excelワークブックやワークシート、統合以外のExcelワークブックやワークシートにアクセスすることをブロックします。長時間実行するアクションを含むことがわかっているアクション・セットを、エンド・ユーザーがアクション・セットの完了を待っている間に、Excelを使用して他のワークブックやワークシートに引き続きアクセスできるように構成できます。これを行うには、アクション・セットのActionOptions.NonBlockingプロパティをTrueに設定します。デフォルト値は、Falseです。

ActionOptions.NonBlockingプロパティをTrueに設定した場合は、「取消」ボタンがある進行状況ダイアログを表示して、エンド・ユーザーがアクション・セットを取り消せるようにすることも検討してください。「アクション・セットの実行中に進捗バーを表示する方法」を参照してください。

エンド・ユーザーがアクション・セットの実行中にMicrosoft Excelを引き続き利用できるようにするには:
  1. 統合Excelワークブックを開きます。
  2. 実行時に長時間実行するアクション・セットを起動するコンポーネントのプロパティ・インスペクタを開き、ActionOptionsプロパティ・グループに移動します。
  3. NonBlockingプロパティをTrueに設定します。
    たとえば、図9-11に示すプロパティ・インスペクタでは、リボン・コマンドが起動するTable.Download アクションのNonBlockingプロパティをTrueに設定しています。

    図9-11 アクション・セットの実行中にExcelの利用をエンド・ユーザーに許可するNonBlockingプロパティ

    この図は周囲のテキストで説明しています
  4. 「OK」をクリックします。

9.2.9 実行時の処理: エンド・ユーザーがアクション・セットを実行しながら作業を続行する方法

実行時には、統合ExcelワークシートがNonBlockingプロパティをTrueに設定したActionSetを起動すると、ADFデスクトップ統合はバックグラウンド処理を開始します。

バックグラウンド操作で非ブロッキングのActionSetが処理されている間に、エンド・ユーザーは次のような他の操作を実行できます。

  • ワークブックやワークシートの切替

  • 統合Excelワークシートを含む他のワークシートのセルの編集

エンド・ユーザーは、バックグラウンド処理が完了するまで非ブロッキングのActionSetを含む統合Excelワークシートの編集はできません。

エンド・ユーザーが、ADFデスクトップ統合対応Fusion Webアプリケーションとの通信が必要な別の操作を実行する場合、ADFデスクトップ統合はバックグラウンド処理が進行中であることを知らせる通知を送信します。たとえば、バックグラウンド処理の進行中にワークシートを保存しようとしたエンド・ユーザーには次の通知が表示されます。

図9-12 バックグラウンド処理が完了するまで操作を処理できないことを示す通知メッセージ

図9-12の説明が続きます
「図9-12 バックグラウンド処理が完了するまで操作を処理できないことを示す通知メッセージ」の説明

バックグラウンド処理が完了すると、エンド・ユーザーはバックグラウンド処理を起動した統合Excelワークシートを再び使用できます。バックグラウンド処理が完了したときに、エンド・ユーザーが現在アクティブにしているワークシートが非ブロッキングのActionSetワークシートと異なる場合は、バックグラウンド処理が完了したことを示す通知メッセージが表示されます。

9.2.10 アクションの取消しに関する必知事項

アクション・セット内の各アクションは、中断不能、中断可能またはダイアログとして分類できます。

中断不能アクションはアトミックであり、操作中に取消しまたは中断できません。次のアクションは中断不能です。

  • ワークシート・アクション: UpSyncDownSync

  • ADFmAction

  • 表アクション: RowUpSyncRowUpSyncNoFailRowDownSyncClearCachedRowAttributesFlagAllRowsUnflagAllRowsMarkAllRowsChangedMarkAllRowsUnchangedInitialize

中断不能アクションの実行中に「取消」ボタンがクリックされると、次の処理が行われます。

  1. 現在のアクションが完了します。

  2. アクション・セットが中止され、失敗としては扱われません。

  3. ActionSet.Alertがスキップされます。

  4. アクション・セットに対して構成されている成功または失敗アクションは実行されません。

  5. ステータス・ビューア(開かれている場合)のワークシートのメッセージ・コンテンツは変更されません。「ステータス・ビューアを使用したエンド・ユーザーへのエラー・メッセージのレポート」を参照してください。

中断可能アクションは、操作中に取り消すことができます。次の表アクションは中断可能です。

  • UploadUploadAllOrNothing

  • DownloadDownloadFlaggedRowsDownloadForInsert

  • DeleteFlaggedRows

中断可能アクションの実行中に「取消」ボタンがクリックされると、次の処理が行われます。

  1. 現在の操作が完了せずに停止します。

  2. 表がクリーンアップされます。

    • Uploadアクション: 「取消」ボタンがクリックされる前に正常にアップロードされた行の場合は、「変更済」列セル・フラグがクリアされるかそのまま残され、CommitBatchActionIDアクションが実行されます。アップロード中に行が失敗した場合、「変更済」列セルは影響を受けず、エラー・ステータスが表示されます。アップロードされていない行の「変更済」列には変更済ステータスが引き続き表示され、「ステータス」列は変更されません。

    • UploadAllOrNothingアクション: CommitBatchActionIDアクションは実行されません。すべての行の「変更済」列フラグは設定されたままになります。失敗した行ではエラー・メッセージが表示されます。正常にアップロードされた行には「ステータス」セルがあり、エラー行は移入されません。

    • DownloadDownloadForInsertアクション: 「取消」ボタンがクリックされる前にダウンロードされた行はそのままの状態になり、削除されません。表は適宜サイズ変更されます。

    • DownloadFlaggedRowsアクション: 「取消」ボタンがクリックされる前にダウンロードされたフラグ付きの行は、フラグ・セルがクリアされます。残りのフラグ付きの行にはフラグ・ステータスが引き続き表示されます。

    • DeleteFlaggedRowsアクション: 「取消」ボタンがクリックされる前にサーバーで削除された行は、ワークシートから削除されます。残りのフラグ付きの行にはフラグ・ステータスが引き続き表示されます。

  3. Table.FailureActionIDは実行されません。

  4. アクション・セット内の残りのアクションはスキップされます。

  5. ステータス・ビューアは、取消し前に処理された行のステータスを反映します。

ダイアログ・アクションでは、取消しまたは閉じることのできるモーダル・ダイアログが表示されます。アクション・セット・ステータス・メッセージ・ダイアログは、これらのいずれかのアクションの実行中は表示されません。次のアクションはダイアログ・タイプです。

  • Confirmation

  • Dialog

  • DisplayWorksheetErrorsDisplayRowErrorsDisplayTableErrors

エンド・ユーザーがアクション・セットを取り消すことができる「取消」ボタンを表示するには、「アクション・セットの実行中に進捗バーを表示する方法」で説明されているように、AllowCancelプロパティをTrueに設定する必要があります。エンド・ユーザーがアクション・セットを取り消すと、「取消」ボタンが無効になり、操作を取り消したことをユーザーに通知する警告メッセージが表示され、アクション・セットが中止されます。

ヒント:

アクション・セットの操作を取り消すには、エンド・ユーザーはキーボードのスペース・バーを押します。

9.2.11 アクション・セットの起動後にアラートを発信する方法

エンド・ユーザーに対して、アクション・セットの操作が正常に完了したか、または失敗したかを通知するアラート・メッセージを表示できます。たとえば、アクション・セットのすべてのアクションが成功したときや、少なくとも1つは失敗があった場合にメッセージを表示できます。この動作は、ActionSet.Alertプロパティ・グループで構成します。非常にすばやく実行するが、対話形式のアクションのないアクション・セットには、アラート・メッセージを使用することを検討してください。このような場合は、ActionSet.Statusプロパティ・グループを無効にして、ActionSet.Alertプロパティを有効にしてください。

注意:

エンド・ユーザーがアクション・セットの実行をキャンセルした場合、アラート・メッセージは表示されません。たとえば、ポップアップ・ダイアログのWebページを起動するアクション・セットが実行を完了した後に表示されるようにアラート・メッセージを構成します。実行時には、エンド・ユーザーは、ポップアップ・ダイアログをホストするExcel Webブラウザ・コントロールの「閉じる」ボタンを使用してポップアップ・ダイアログを閉じることにより、アクション・セットの実行をキャンセルします。このシナリオでは、アラート・メッセージは表示されません。Webページの表示の詳細は、「Fusion WebアプリケーションからのWebページの表示」を参照してください。

始める前に:

アクション・セットについて理解しておくと役立ちます。「アクション・セットの使用」を参照してください。

他のADFデスクトップ統合の機能を使用して追加できる機能についても理解しておくと役立ちます。「統合Excelワークブックへの対話性の追加の追加機能」を参照してください。

アクション・セットにアラートを追加するには:

  1. 統合Excelワークブックを開きます。
  2. 「Oracle ADF」タブの「ワークブック」グループで、「ワークシート・プロパティ」をクリックします。
  3. 「ワークシート・プロパティの編集」ダイアログで、リボン・コマンド・ノードを展開して、アラートを表示するSelectActionSetを含むリボン・コマンドを選択します。
  4. アクション・セットの「アラート」プロパティ・グループを展開して、表9-2の説明に従って値を設定します。

    たとえば、図9-13は、Alertプロパティ・グループのSuccessMessageプロパティ用に構成された値を示します。

    表9-2 ActionSet.Alertプロパティ・グループ

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

    Enabled

    ドロップダウン・リストからTrueを選択すると、アクション・セットの完了時にアラート・メッセージが表示されます。デフォルト値は、Falseです。

    FailureMessage

    アクション・セットの実行時にエラーが発生した場合に、ダイアログに表示されるメッセージに評価されるオプションのEL式またはリテラル値を指定します。

    エラー処理の詳細は、「ステータス・ビューアを使用したエンド・ユーザーへのエラー・メッセージのレポート」を参照してください。

    OKButtonLabel

    ダイアログの「OK」ボタンに表示されるメッセージに評価されるオプションのEL式またはリテラル値を指定します。

    SuccessMessage

    アクション・セットの実行時にエラーが発生しなかった場合に、ダイアログに表示されるメッセージに評価されるオプションのEL式またはリテラル値を指定します。

    図9-13 アクション・セットのアラート・メッセージ・プロパティ

    この図は周囲のテキストで説明しています
  5. 「OK」をクリックします。

9.2.12 実行時の処理: アクション・セットによるアラート発信

たとえば、図9-14は、実行時にアクション・セットの実行が正常に完了した場合に表示されるAlertプロパティ・グループのSuccessMessageプロパティ用に構成されたアラート・メッセージを示します。

図9-14 アラート・メッセージの実行時の表示

図9-14の説明が続きます
「図9-14 アラート・メッセージの実行時の表示」の説明

実行時にFailureMessageOKButtonLabelまたはSuccessMessageプロパティの値が空の場合、ADFデスクトップ統合ではデフォルトのローカライズされた値が指定されます。

9.2.13 アクション・セットのエラー処理の構成方法

アクション・セットのActionOptionsプロパティの値を指定して、次のイベントのいずれかが発生したときのアクション・セットの動作を決定します。

  • アクション・セットのアクションの失敗

  • アクション・セットのすべてのアクションが正常に完了

これらのエディタの起動方法、またはADFコンポーネントのプロパティ・インスペクタの詳細は、「開発ツールのスタート・ガイド」を参照してください。アクション・セットのプロパティの詳細は、「アクション・セットのプロパティ」を参照してください。

始める前に:

アクション・セットについて理解しておくと役立ちます。「アクション・セットの使用」を参照してください。

他のADFデスクトップ統合の機能を使用して追加できる機能についても理解しておくと役立ちます。「統合Excelワークブックへの対話性の追加の追加機能」を参照してください。

統合Excelワークブックでは、ステータス情報および実行時に発生したエラーをステータス・ビューアでエンド・ユーザーにレポートします。「ステータス・ビューアを使用したエンド・ユーザーへのエラー・メッセージのレポート」を参照してください。

アクション・セットのエラー処理を構成するには:

  1. 統合Excelワークブックを開きます。
  2. 適切なエディタまたはプロパティ・インスペクタを開いて、表9-3に従ってアクション・セットのActionOptionsプロパティの値を構成します。

    表9-3 ActionOptionsプロパティ

    設定するプロパティ 目的

    AbortOnFailure

    True(デフォルト値)に設定すると、現在のアクションが失敗した場合、アクション・セットはそれ以降のアクションを一切実行しません。Falseに設定すると、前のアクションが成功か失敗かにかかわらず、アクション・セットはすべてのアクションを実行します。

    FailureActionID

    (オプション)アクション・セットが正常に完了しなかった場合に起動するADFモデル・アクションを指定します。

    たとえば、アクション・セットの起動が失敗したときに、加えられた変更をロールバックするADFモデル・アクションを指定できます。

    FailureActionIDメソッドの実行中にレコード・セットの通貨を変更するアクション・セットの呼び出しは、サポートされていません。また、ロールバック・メソッドは、アクション・セットでFailureActionIDとして指定しないでください。

    SuccessActionID

    (オプション)アクション・セットが正常に完了した場合に起動するADFモデル・アクションを指定します。

    たとえば、commitアクションを実行するアクション・バインディングを指定できます。このプロパティの値はオプションで、commitアクションを実行するアクション・バインディングなど、最終のアクションをアクション・セット自体に指定できます。

    SuccessActionIDメソッドの実行中にレコード・セットの通貨を変更するアクション・セットの呼び出しは、サポートされていません。

  3. オプションで、実行時にアクション・セットが失敗した場合にエンド・ユーザーに表示するメッセージを、評価するアクション・セットのFailureMessageプロパティに対するEL式に書き込みます。このメッセージは、「ステータス・ビューアを使用したエンド・ユーザーへのエラー・メッセージのレポート」で説明されているステータス・ビューアのワークシート領域に表示されます。
  4. 「OK」をクリックします。

9.2.14 ユーザーにアクション・セットの確認を求める方法

確認アクションはエンド・ユーザーに対して、Confirmationアクションのプロパティで指定されたタイトルとプロンプトのメッセージを表示する簡単なメッセージ・ダイアログを提供します。

アクション・セットの実行は、エンド・ユーザーが提供されたボタンをクリックするまで一時停止します。ユーザーが「OK」をクリックすると、アクション・セットはアクション・セットの残りのアクションを続けます。ユーザーが「取消」をクリックすると、その時点でアクション・セットは中止され、残りのアクションは起動されません。エラーや成功がないため、FailureActionIDアクションやSuccessActionIDアクションは起動されません。

始める前に:

アクション・セットについて理解しておくと役立ちます。「アクション・セットの使用」を参照してください。

他のADFデスクトップ統合の機能を使用して追加できる機能についても理解しておくと役立ちます。「統合Excelワークブックへの対話性の追加の追加機能」を参照してください。

Confirmationアクションをコンポーネントから起動するには:

  1. 統合Excelワークブックを開きます。
  2. 「アクションの編集」ダイアログを開き、ここの説明にあるように「追加」ボタンの下向き矢印をクリックしてドロップダウン・リストを開きます。
    この図は周囲のテキストで説明しています
  3. 「確認」を選択して、次のリストにあるようにプロパティを構成します。
    • CancelButtonLabel

      ダイアログの「取消」ボタンに表示されるメッセージに評価されるオプションのEL式またはリテラル値を指定します。

    • OKButtonLabel

      ダイアログの「OK」ボタンに表示されるメッセージに評価されるオプションのEL式またはリテラル値を指定します。

    • Prompt

      ダイアログのプロンプトとして表示されるメッセージに評価されるオプションのEL式またはリテラル値を指定します。

    • Title

      実行時に表示する確認ダイアログのタイトルに解決されるオプションのEL式またはリテラル値を指定します。

  4. オプションで、構成するアクションの目的に関するコメントをAnnotationプロパティに入力します。このプロパティに設定する値には、機能的な影響はありません。
  5. 「OK」をクリックします。

    注意:

    ビジネス・ユースケースに固有のTitleおよびPromptプロパティの値を指定することをお薦めします。

図9-15に、アクションの編集ダイアログおよびSummitサンプル・アプリケーションのEditAllInventory-DT.xlsxワークブックのフラグ付きの行の削除リボン・コマンドのデフォルトの属性値を示します。

図9-15 確認アクションの属性

図9-15の説明が続きます
「図9-15 確認アクションの属性」の説明

9.2.15 実行時の処理: ユーザーにアクション・セットの確認を求める方法

一度アクション・セットが起動されると、ユーザーに対して確認のプロンプトが表示されます。ユーザーが「OK」をクリックすると、次のアクションが実行され、「取消」をクリックすると、アクション・セットの実行はエラーなしに終了します。

注意:

ユーザーがConfirmationアクションをキャンセルする場合、FailureActionIDバインディングは実行されません。

図9-16に、Summitサンプル・アプリケーションのEditAllInventory-DT.xlsxワークブックのフラグ付きの行の削除リボン・コマンドをクリックしたときに表示される「確認」ダイアログを示します。

図9-16 確認のダイアログ

図9-16の説明が続きます
「図9-16 確認のダイアログ」の説明

実行時にCancelButtonLabelOKButtonLabelまたはPromptプロパティの値が空の場合、ADFデスクトップ統合ではデフォルトのローカライズされた値が指定されます。Titleプロパティが空の場合、アクション・セット・コンテナ(リボン・コマンドなど)のラベルが使用されます。コンテナのラベルも空の場合、ADFデスクトップ統合により提供されたデフォルト値が使用されます。

9.3 実行時リボン・タブの構成

Oracle ADF機能を起動するリボン・コマンドを含む統合Excelワークブックに、Excelリボンの実行時リボン・タブを追加できます。

実行時リボン・タブは、これらのアイテムをワークブックとワークシートの2つにグループ化します。「ワークブックのアクションおよびプロパティ」に説明されているワークブック・アクションを起動するリボン・コマンドが表示されるようにワークブック・グループを構成し、アクティブなワークシートで一定の範囲のアクションを起動するようにワークシート・グループを構成します。

図9-17に、ワークブックおよびワークシートの両方のグループにリボン・コマンドを構成する、EditAllInventory-DT.xlsxワークブックの在庫実行時リボン・タブを示します。ワークブック・グループでは、標準のデフォルト・ワークブック・アクションを起動するリボン・コマンドを公開しますが、ワークシート・グループでは、ワークシートにレンダリングされるADF表コンポーネントによって公開される複数のコンポーネント・アクション(UploadDeleteFlaggedRowsなど)を起動するリボン・コマンドを公開します。

図9-17 EditAllInventory-DT.xlsxのリボン・タブの実行時の表示

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

ワークシートのコマンド・アイテムは、ワークシートがアクティブな場合に表示されます。ワークブック・コマンドを削除すると、そのワークブックの実行時タブに表示されなくなります。指定されたグループのすべてのコマンドを削除すると、統合Excelワークブックまたはワークシートがアクティブの場合に、グループは表示されません。

実行時にリボン・タブをExcelリボンに表示するには、Visibleワークブック・プロパティをTrueに設定します。図9-18に示すように、Titleプロパティに指定した値によって、エンド・ユーザーに対して実行時に表示されるタブのタイトルが決定されます。

図9-18 実行時リボン・タブのワークブック・プロパティ

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

ワークブック・リボン・コマンドを定義する方法の詳細は、「実行時リボン・タブのワークブック・リボン・コマンドの定義方法」を参照してください。ワークブック・リボン・コマンドを構成する方法の詳細は、「実行時リボン・タブのワークシート・リボン・コマンドの構成方法」を参照してください。

9.3.1 実行時リボン・タブのワークブック・リボン・コマンドの定義方法

ワークブック・リボン・コマンドを定義するには、ワークブック・プロパティのRuntime Ribbon Tabグループを構成します。

始める前に:

Excelの実行時リボン・タブについて理解しておくと役立ちます。「実行時リボン・タブの構成」を参照してください。

他のADFデスクトップ統合の機能を使用して追加できる機能についても理解しておくと役立ちます。「統合Excelワークブックへの対話性の追加の追加機能」を参照してください。

ワークブック・リボン・コマンドを定義する手順:

  1. 統合Excelワークブックを開きます。
  2. 「Oracle ADF」タブの「ワークブック」グループで、「ワークブック・プロパティ」をクリックします。
  3. 「ワークブック・プロパティの編集」ダイアログで、実行時リボン・タブを展開してワークブック・コマンドを選択します。Workbook Commandsの横にある参照(...)アイコンをクリックして、図9-19のようにダイアログを表示します。

    図9-19 ワークブック・コマンドの編集ダイアログ

    この図は周囲のテキストで説明しています
  4. 「追加」をクリックして、次のようにワークブック・リボン・コマンドのプロパティの値を指定します。
    • Method

      ワークブック・リボン・コマンドで起動するワークブック・アクションを指定します。ワークブック・アクションで使用可能なリストは、「ワークブックのアクションおよびプロパティ」を参照してください。

    • Label

      ラベルが指定されていない場合、ADFデスクトップ統合は実行時にデフォルトのラベルを使用します。

      (オプション)実行時にラベルとして表示される値を入力フィールドに入力します。あるいは、参照(...)アイコンをクリックして式ビルダーを起動し、リソース・バンドルの文字列に解決されるEL式を記述します。

      ラベルに表示される実行時の値は1024文字を超えることはできません。1024文字を超える実行時の値は、切り捨てられて1024文字のみが表示されます。

      リソース・バンドルの使用の詳細は、「統合Excelワークブックでのリソース・バンドルの使用」を参照してください。

      ラベルの詳細は、「統合Excelワークブックでのラベルの使用」を参照してください。

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

9.3.2 実行時リボン・タブのワークシート・リボン・コマンドの構成方法

ワークシート・リボン・コマンドを定義するには、ワークシート・プロパティのRibbon Commandグループを構成します。デフォルトでは、ワークシートのプロパティでワークシート・グループに定義されるリボン・コマンドはありません。

始める前に:

Excelの実行時リボン・タブについて理解しておくと役立ちます。「実行時リボン・タブの構成」を参照してください。

他のADFデスクトップ統合の機能を使用して追加できる機能についても理解しておくと役立ちます。「統合Excelワークブックへの対話性の追加の追加機能」を参照してください。

Runtime Ribbon Tab.Visibleワークブック・プロパティをTrue設定します。Runtime Ribbon Tab.VisibleFalseに設定されている場合、実行時リボン・タブはこのワークブックに表示されません。ワークブックのプロパティの詳細は、表A-19を参照してください。

ワークシート・リボン・コマンドを定義する手順:

  1. 統合Excelワークブックを開きます。
  2. 「Oracle ADF」タブの「ワークブック」グループで、「ワークシート・プロパティ」をクリックします。
  3. 「ワークシート・プロパティの編集」ダイアログで、Ribbon Commandsプロパティの入力フィールドの横にある参照(...)アイコンをクリックして、図9-20のようにエディタを起動します。

    図9-20 リボン・コマンドの編集ダイアログ

    この図は周囲のテキストで説明しています
  4. 「追加」をクリックして、コレクション・エディタの「メンバー」リストに新しいリボン・コマンドを追加します。
  5. 表9-4の説明に従って、リボン・コマンドのプロパティを構成します。

    表9-4 ワークシート・リボン・コマンドのプロパティ

    設定するプロパティ 設定する値

    SelectActionSet

    リボン・コマンドが起動するアクションのタイプを指定します。「アクション・セットの使用」を参照してください。

    Image

    リボン・コマンドの適切なイメージをドロップダウン・リストから選択します。たとえば、リボン・コマンドのアクション・セットでADF表コンポーネントのDownloadアクションを起動する場合は、「ダウンロード」を選択します。その他のオプションが、リボン・コマンドが起動するアクションに対応しない場合は、「汎用」を選択します。

    ADFデスクトップ統合では、使用可能なイメージが用意されています。

    Label

    ラベルまたは実行時にラベルに評価されるEL式として表示するテキストを指定します。ADFデスクトップ統合でのEL式の詳細は、「ADFデスクトップ統合のEL式」を参照してください。ラベルの使用の詳細は、「統合Excelワークブックでのラベルの使用」を参照してください。

    Tooltip

    ツールチップまたは実行時にツールチップに評価されるEL式として表示するテキストを指定します。

    リボン・コマンド・ツールチップには、1024文字の最大サイズがあります。ツールチップ値がこの制限を超えた場合は、最初の1024文字のみ表示されます。

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

9.3.3 実行時の処理: リボン・タブのリボン・コマンド

図9-21に、Summitサンプル・アプリケーションのEditCustomers-DT.xlsxワークブックの「顧客」リボン・タブを示します。ワークブックレベルのリボン・コマンドの順序とグループ化は、実行時に常に同じです。ワークシート・コマンドはリボン・コマンドの編集ダイアログで定義された順序で表示されます。

ステータス・ビューアは、ワークブックごとに1回構成され、設計時にワークブック・コマンドに表示されますが、ワークシート・グループには実行時に表示されます。これは、ステータス・ビューアがワークシート固有であり、対象のワークシートの情報を表示するためです。統合されていないワークシートにエンド・ユーザーが移動して、ステータス・ビューアのリボン・コマンドをクリックすると、そのワークシートではステータス・ビューアを使用できない旨をエンド・ユーザーに通知するメッセージが表示されます。

図9-21 リボン・タブのリボン・コマンド

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

ユーザーがツールチップのあるリボン・コマンドの上にマウス・カーソルを重ねると、マルチパート・ツールチップが表示されます。リボン・コマンド・ラベルが最初に太字で表示され、続いてTooltipプロパティのテキストが表示されます。このテキストの下に、アドイン名が表示されます。図9-22に、Summitサンプル・アプリケーションのEditCustomers-DT.xlsxワークブックの「ダウンロード」ワークシート・リボン・コマンドの上にカーソルを移動したときに表示されるツールチップを示します。

図9-22 ツールチップを表示するリボン・コマンド

図9-22の説明が続きます
「図9-22 ツールチップを表示するリボン・コマンド」の説明

定義するワークシートレベルのリボン・コマンドが5つ以下の場合、大きいアイコンでワークシート・グループにそれぞれ表示されます。定義するワークシートレベルのリボン・コマンドが6つ以上の場合、最初の4つのリボン・コマンドが大きいアイコンで表示されます。残りのリボン・コマンドは、図9-23に示すように、「その他」のラベルのメニューに表示されます。

図9-23 ドロップダウン・リストを表示するワークシートの「その他」リボン・コマンド

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

注意:

ツールバーのリボン・コントロールは、すべての開いている統合ワークブックで共有されます。ツールバーの同じ場所を占める、異なるリボン・コマンドを使用している、2つ以上のワークブックを開いている場合、Excelでは開いているすべてのワークブックのうち最初に開かれたワークブックのキー・ヒントが必ず表示されます。これはExcelの制限です。

9.4 Fusion WebアプリケーションからのWebページの表示

アクション・セットでDialogアクションを構成して、Excelワークブックと統合するFusion Webアプリケーションからのページを表示します。

これらのページによって、統合Excelワークブックに追加の機能が提供されます。これには、Fusion Webアプリケーションと対話する検索ダイアログなどの機能があります。

アクション・セットのDialogアクションは、次の2つのタイプのダイアログのどちらかを表示するように構成できます。

  • ポップアップ・ダイアログ

  • 実行時作業ウィンドウ

コンポーネントのアクション・セットのプロパティDialog.Target (PopupまたはTaskPane)は、Webページがレンダリングされる場所を決定します。

Dialog.Pageプロパティの値は、アクションの起動時に表示されるWebページを指定します。有効な値は、WebAppRootプロパティの値の相対URL、または絶対URLです。

たとえば、CustomerSearch-DT.xlsxワークブックは、ユーザーが実行時に顧客の検索リボン・コマンドをクリックすると起動するページの値として次の相対URLを指定します。

/faces/external/searchForm.jspx

次のような絶対URLも有効です。

http://www.oracle.com/technetwork/middleware/fusion-middleware/overview/index.html

ヒント:

モデルドリブン・リスト・ピッカーを表の列に追加する場合は、「ADF表コンポーネントへのモデルドリブン・リスト・ピッカーの追加」を参照してください。

注意:

DialogアクションはADFタスク・フローをサポートしていません。

9.4.1 ポップアップ・ダイアログでのWebページの表示方法

アクション・セットのDialogアクションを構成して、ExcelのWebブラウザ・コントロールによりホストされているモーダル・ポップアップ・ダイアログでWebページを起動できます。この機能は、たとえばFusion Webアプリケーションからのページにより表示される値を、統合Excelワークブックに入力できるようにする機能をエンド・ユーザーに提供します。

アクション・セットが起動するWebページは、大/小文字区別のID属性がADFdi_CloseWindowに設定されている予約済HTML<span>要素を含む必要があります。

次の例は、span要素の値を、f:verbatimタグのrenderedプロパティを使用して自動的に設定する方法を示します。

<f:verbatim rendered="#{requestScope.searchAction eq 'search'}">
		<span id="ADFdi_CloseWindow">Continue</span>
	</f:verbatim>
<f:verbatim rendered="#{requestScope.searchAction eq 'cancel'}">
		<span id="ADFdi_CloseWindow">Abort</span>
	</f:verbatim>

図9-24は、CustomerSearch-DT.xlsxワークブックのブラウザ・コントロールによりホストされるsearchForm.jspxページを示しています。

図9-24 「検索」ポップアップ・ダイアログ

図9-24の説明が続きます
「図9-24 「検索」ポップアップ・ダイアログ」の説明

f:verbatimタグのrenderedプロパティが使用できない場合には、次のようにしなければならない場合があります。

  1. Dialogアクションの結果の値をプロパティとして公開するバッキングBeanを作成します。

    次の例は、バッキングBeanコードを示しています。

    public class PickDialogBackingBean {
        private String dialogResult = null;
        
        public PickDialogBackingBean () {
        }
    
        public void pickerOkListener(ActionEvent actionEvent) {
            setDialogResult("Continue");
            return;
        }
        
        public String getDialogResult() {
            return dialogResult;
        }
        
        public void setDialogResult(String result) {
            dialogResult = result;
        }
    }
    
  2. アクション・リスナーを使用して、バッキングBeanおよび<span>要素のEL式を起動し、ADFdi_CloseWindowの値をBeanプロパティの値に設定します。

    次の例は、EL式を使用してADFdi_CloseWindowの値をBeanプロパティの値に設定する方法を示しています。

    <af:outputText id="otx1" value="<span id="ADFDI_CloseWindow">#{backing_PickDialog.dialogResult}</span>" escape="false"/>  

    次の例は、ダイアログのJSFページのボタン・コンポーネントのactionListener属性がバッキングBeanを起動する方法を示しています。

    <af:button actionListener="#{backing_PickDialog.pickerOkListener}"
                        text="OK"/>
    

どちらの方法を使用する場合でも、ADFデスクトップ統合はADFdi_CloseWindowの値をモニターして、ポップアップ・ダイアログをいつ閉じるかを決定します。ADFdi_CloseWindow <span>要素の内容に応じて、次のようになります。

  • 空白の文字列を参照する場合、または文字列が存在しない場合は、ポップアップ・ダイアログは開いたままになります。

  • Continueの場合、ポップアップ・ダイアログが閉じ、アクション・セットが次のアクションを起動します。

  • Abortの場合、ポップアップ・ダイアログが閉じ、アクション・セットが実行を停止します。追加のアクション・セットは起動されません。

  • 他のなんらかの文字列の値を参照する場合、ポップアップ・ダイアログは開いたままになります。

DialogアクションのTargetプロパティをPopupに設定し、.NET Webブラウザ・コントロールを使用して、モーダル・ポップアップ・ダイアログでカスタムWebページを表示します。アクション・セットが起動するDialogアクションは、ユーザーからの入力があるまで実行を続けられないため、モーダルなポップアップ・ダイアログにWebページを表示する場合は、Excelの作業ウィンドウにWebページを表示するときとは異なります。ポップアップ・ダイアログが開いているときに、エンド・ユーザーは統合Excelワークブックの他の部分と対話することはできません。ポップアップ・ダイアログがフォーカスを保持します。

エンド・ユーザーは、ブラウザ・コントロールを閉じたり、ADFデスクトップ統合がブラウザ・コントロールを閉じるまでは、ブラウザ・コントロール内で複数のWebページ間を移動できます。

カスタム・ページでユーザー選択を利用するには、Dialogアクション後にアクションの追加が必要になる場合があります。たとえば、国ベースの検索でユーザーが国名の入力を求められる場合などです。このようなシナリオで、次に起動する論理アクションは、Execute (ユーザーが入力した国名による問合せ)およびADF表コンポーネントのDownloadアクションです。

注意:

  • Titleプロパティが空白の場合、Webページのタイトルがダイアログ・ウィンドウのタイトルとして使用されます。

  • ADFdi_CloseWindow <span>の値は、ブラウザ・コントロール内のすべてのページ遷移でモニターされます。値がContinueの場合は、ポップアップ・ダイアログが閉じ、アクション・セットの実行が継続されます。値がAbortの場合は、ポップアップ・ダイアログが閉じ、アクション・セットのアクションはそれ以上実行されません。<span>要素が存在しない場合か、値がContinueまたはAbort以外の場合は、ポップアップ・ダイアログが開いたままになります。

    各ページ遷移で、予約された<span>要素が存在する場合、クライアント側Javascriptは実行可能で、要素の値を変更できます。値がContinueまたはAbortに変更された場合も、ポップアップ・ダイアログが閉じ、アクション・セットに同じ効果があります。

  • エンド・ユーザーが統合Excelワークブックをダウンロードできるように、ポップアップ・ダイアログで表示されるWebページを構成しないようにしてください。この場合、ポップアップ・ダイアログからダウンロードしたワークブックをエンド・ユーザーが開くと、Oracle ADF機能が無効になります。

  • リスト・ボックスやドロップダウン・リストなどのHTML <select>コンポーネントを使用している場合、ページがDialogアクションによって表示されるときは、<select>コンポーネントはz-orderの構成に従わない点に注意してください。.NET Webブラウザ・コントロールでは、レイヤー化された重複するコンポーネントを持つWebページ上で、<select>コンポーネントが他のコンポーネントの上に表示されることがあります。

9.4.2 ポップアップ・ダイアログでのWebページ検索フォームの表示方法

リボン・コマンドを使用して、検索フォームをエンド・ユーザーに表示するページをFusion Webアプリケーションから起動できます。リボン・コマンドのアクション・セットを構成して、検索処理の検索結果が統合Excelワークブックにダウンロードされるように、ADF表コンポーネントについてDownloadアクションを起動します。

Fusion Webアプリケーションでの検索フォームの作成の詳細は、『Oracle Application Development FrameworkによるFusion Webアプリケーションの開発』のデータバインドされたADF検索フォームの作成に関する項を参照してください。

注意:

ADFデスクトップ統合は、ページ定義ファイルでのFindMode属性の使用はサポートしていません。FindMode属性の詳細は、『Oracle Application Development FrameworkによるFusion Webアプリケーションの開発』pageNamePageDef.xmlに関する項を参照してください。

始める前に:

統合ExcelワークブックでのWebページのレンダリング方法を理解しておくと役立ちます。「Fusion WebアプリケーションからのWebページの表示」を参照してください。

他のADFデスクトップ統合の機能を使用して追加できる機能についても理解しておくと役立ちます。「統合Excelワークブックへの対話性の追加の追加機能」を参照してください。

統合ExcelワークブックからWebページを起動するには:

  1. 統合Excelワークブックを開きます。
  2. 「実行時リボン・タブのワークシート・リボン・コマンドの構成方法」の説明に従って、Excelワークシートにリボン・コマンドを作成します。
  3. 実行時に文字列を表示するようにコンポーネントのLabelプロパティを設定し、ボタンをクリックすれば検索処理を実行できることをエンド・ユーザーに示します。
  4. 「アクションの編集」ダイアログを使用して、コンポーネントのClickActionSetプロパティ(リボン・コマンドを構成している場合にはSelectActionSetプロパティ)のアクションの配列(Actionリスト)を構成します。表9-5は、順番に起動するアクションについて説明します。

    表9-5 拡張検索フォームを起動するアクション

    追加するアクション 目的

    Dialog

    検索フォームを含むFusion Webアプリケーションからのページを表示します。Fusion Webアプリケーションからページを表示する方法の詳細は、「ポップアップ・ダイアログでのWebページの表示方法」を参照してください。

    ComponentAction

    ADF表コンポーネントまたはADF読取り専用表コンポーネントからDownloadアクションを起動して、指定した検索条件と一致する結果をダウンロードします。

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

図9-25に、リボン・コマンドのSelectActionSetDialogアクション、その後にADF表コンポーネントのDownloadアクションが含まれる、CustomerSearch-DT.xlsxワークブックの例を示します。エンド・ユーザーがリボン・コマンドを起動すると、Dialogアクションは検索ページ(searchForm.jspx)をブラウザ・ウィンドウに表示します。エンド・ユーザーが検索ページに検索条件を指定し、そこでSearchボタンを選択すると、ADF表コンポーネントのDownloadアクションが実行されます。これにより、指定した検索条件に一致する行が統合ワークシートに取得されます。

図9-25 Webページを開くように構成されたリボン・コマンド

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

図9-26に、実行時にWebページの検索フォームを示します。

図9-26 Webページの検索フォーム

図9-26の説明が続きます
「図9-26 Webページの検索フォーム」の説明

9.4.3 ADFデスクトップ統合の実行時作業ウィンドウでのWebページの表示方法

アクションのDialog.TargetプロパティをTaskPaneに設定して、ADFデスクトップ統合の作業ウィンドウのDialog.Pageプロパティで指定したWebページを表示できます。ポップアップ・ダイアログでWebページを表示するのとは対照的に、作業ウィンドウでWebページを表示すると、Webページを表示する間はアクション・セットでアクションの実行を継続できます。エンド・ユーザーは、Webページが表示されている間、統合Excelワークブックの他の部分にアクセスして対話することができます。

注意:

  • Titleプロパティが空白の場合、タスク・ペインのタイトルも空白のままです。

  • DialogアクションのTargetプロパティをTaskPaneに設定すると、ADFデスクトップ統合はADFdi_CloseWindowの値(および他の要素)を無視します。

9.4.4 Fusion Webアプリケーションからのページ表示に関する必知事項

Dialogアクションを起動するアクション・セットで追加のアクションを指定すれば、統合Excelワークブックに含まれるデータを、Fusion Webアプリケーションと同期した状態にできます。DialogアクションのShareFrameプロパティを設定することにより、Fusion Webアプリケーション・ページと統合Excelワークシートの両方が同じデータ・コントロール・フレームを使用するよう徹底することができます。

注意:

  • カスタムのWebページがADF Facesに基づいていてポップアップ・ウィンドウを開く場合、そのWebページが正しく機能するには特定の方法で構成されている必要があります。コマンド・コンポーネントで、windowEmbedStyleinlineDocumentに設定してください。

    『Oracle ADF FacesによるWebユーザー・インタフェースの開発』のポップアップ・ダイアログ、メニューおよびウィンドウに関する項を参照してください。

  • Dialog.PageプロパティではEL式は受け入れられません。

9.4.4.1 統合ExcelワークシートとFusion Webアプリケーション・ページ間のデータの送信

エンド・ユーザーがFusion Webアプリケーションからのページを使用する際に、統合ExcelワークブックとFusion Webアプリケーションが同期された状態のままとなるように、Dialogアクションを起動するアクション・セットを次のように構成します。

  • Dialogアクションを起動する前に、統合ExcelワークブックからFusion Webアプリケーションに変更を送信します。

    RowUpSyncまたはRowUpSyncNoFailワークシート・アクションを起動して、ADF表コンポーネントの現在の行からの変更を同期します。UpSyncを起動して、フォーム・コンポーネントの変更を同期することもできます。

  • (必要に応じて)データ状態をWebページから取得する1つの方法は、WebページのバッキングBeanのロジックであり、そのデータ・バインディングからデータを取得し、そのデータを統合Excelワークシートのバインディングに転送します。

  • Dialogアクションを起動した後、Fusion Webアプリケーションから統合Excelワークブックに変更を送信します。

    RowDownSyncワークシート・アクションを起動して、Fusion WebアプリケーションからADF表コンポーネントの現在の行へ変更を送信します。DownSyncを起動して、フォーム・コンポーネントの変更を同期することもできます。

DoubleClickActionSetについては、アクション・セットを実行した後で、サーバー・サイド・モデルがアクション・セットの実行前と同じ状態にある必要があります。これを達成するために、ADF表コンポーネントでは、「行レベルのアクション・セット・モデル管理を有効化する方法」に説明されている行レベルのアクション・セット・モデルの管理をサポートしています。

統合ExcelワークブックとFusion Webアプリケーション間でのデータ同期の詳細は、「複数のWebセッション間で統合Excelワークブックを使用するための追加機能」を参照してください。ワークシート・アクションとADF表コンポーネント・アクションの詳細は、「ADFデスクトップ統合コンポーネントのプロパティとアクション」を参照してください。

9.4.4.2 統合ExcelワークシートとFusion Webアプリケーション・ページ間のデータ・コントロール・フレームの共有

Fusion Webアプリケーションと統合Excelワークブックは、どちらもデータ・コントロール・フレームを使用して、トランザクションとビュー・オブジェクトの状態、および拡張機能によってページ定義ファイルで公開されるバインディングを管理します。Fusion Webアプリケーションのページを統合Excelワークシートから起動すると、ページを起動するDialogアクションのShareFrameプロパティをTrueに設定することで、ページと統合Excelワークシートが両方とも同じデータ・コントロール・フレームを使用するように徹底できます。

DialogアクションのPageプロパティで、Dialogアクションが起動するページを指定します。Dialogアクションが絶対URLやFusion Webアプリケーションの一部でないページを起動する場合、ShareFrameTrueに設定されていると、ADFデスクトップ統合はShareFrameの値を無視します。

次のシナリオではShareFrameFalseに設定します。

  • アクション・セットのDialog.Pageプロパティは、絶対URLまたはFusion Webアプリケーションの一部でないページを参照します。

  • アクション・セットのDialog.Pageプロパティは、Fusion Webアプリケーションの一部であるページを参照しますが、統合Excelワークシートと情報を共有する必要はありません。たとえば、オンライン・ヘルプの情報を表示するページなどです。

Fusion Webアプリケーションのデータ・コントロール・フレームの詳細は、『Oracle Application Development FrameworkによるFusion Webアプリケーションの開発』のタスク・フロー間のデータ・コントロールの共有に関する項を参照してください。

9.4.4.3 ADFデスクトップ統合フレーム共有に対するFusion Webアプリケーションの構成

ADFデスクトップ統合の機能をFusion Webアプリケーションに追加する際、アプリケーションが自動的に構成されて、ADFデスクトップ統合のフレーム共有がサポートされます。フレーム共有によって、統合Excelワークブックの各ワークシートが専用のDataControlフレームを使用できます。それぞれのワークシートから起動されるダイアログで表示されるWebページは、統合Excelワークシートと同じDataControlフレームを共有できます。

Fusion Webアプリケーションがフレーム共有をサポートしていることを確認する手順:

  1. JDeveloperFusion Webアプリケーション・プロジェクトを開きます。
  2. 「アプリケーション」ウィンドウで、「アプリケーション・リソース」パネルを展開します。
  3. 「ディスクリプタ」「ADF META-INF」ノードにあるadf-config.xmlファイルを開きます。
  4. 「ソース」タブをクリックして、ソース・エディタを開きます。
  5. 次のadf-desktopintegration-servlet-config要素が、</adf-config>タブの前のファイルにあることを確認します。
    <adf-desktopintegration-servlet-config xmlns="http://xmlns.oracle.com/adf/desktopintegration/servlet/config"> 
        <controller-state-manager-class>
           oracle.adf.desktopintegration.controller.impl.ADFcControllerStateManager
        </controller-state-manager-class>
    </adf-desktopintegration-servlet-config>
    
  6. adf-config.xmlファイルを保存して、JDeveloperを閉じます。

9.5 表の列での行レベルのアクション・セットの使用

場合によっては、エンド・ユーザーが列をダブルクリックしたときに現在の表の行のコンテキストで実行するアクション・セットを構成する必要があります。

たとえば、「ADF表の列へのカスタム・ポップアップ・ピッカー・ダイアログの追加方法」で説明されているように、現在の表の行のサーバー・サイド行の属性値を選択するためのカスタム・ダイアログを起動する、ADF表コンポーネントの列DoubleClickActionSetを構成できます。

行レベルのアクション・セット・モデル管理

モデルの状態を変更する可能性のある表ベースの行レベル・アクション・セットが起動される場合に、サーバー・サイド・モデル状態の管理を自動化できます。ADFデスクトップ統合では、アクション・セットのアクションを起動する前にセーブポイントを作成し、アクション・セットの実行後にセーブポイントにリストアします。これにより、アクション・セットが中断または取り消され、アクション・セットの起動前と同じ状態に戻ると、アクション・セットの起動後のモデル状態は同じままになります。

挿入ワークシート行の場合、ADFデスクトップ統合は、アクション・セット中に使用可能な一時的なサーバー・サイド行を自動的に作成します。挿入および更新の両方のワークシート行の場合、ADFデスクトップ統合は、アクション・セット(挿入の場合の一時行を含む)中に発生したモデルの変更を自動的に元に戻します。

これは、サーバー・サイド・モデルを変更する行アクション・セットで構成したADF表コンポーネントと統合Excelワークブックがある場合に便利です。たとえば、「ADF表の列へのカスタム・ポップアップ・ピッカー・ダイアログの追加方法」で説明されているように、現在のワークシート行のサーバー・サイド行の属性値を選択するためのカスタム・ダイアログを起動する、列コンポーネントのダブルクリック・アクション・セットがあります。

9.5.1 行レベルのアクション・セット・モデル管理を有効化する方法

行レベルのアクション・セットでサーバー・サイド・モデル状態を管理するには、次のワークブック・プロパティをTrueに設定します。

Compatibility.TableComponents.RowActionSetModelMgmtEnabled

RowActionSetModelMgmtEnabledプロパティをTrueに設定する前に、ADFデスクトップ統合がDataControlセーブポイントを作成して、モデル状態を取得およびリストアすることに注意してください。このため、Fusion WebアプリケーションのDataControlプロバイダがセーブポイントをサポートしていることを確認してください。

行レベルのアクション・セット・モデル管理を有効化する手順:

  1. 統合Excelワークブックを開きます。
  2. 「Oracle ADF」タブの「ワークブック」グループで、「ワークブック・プロパティ」をクリックします。
  3. ADF表コンポーネントで行挿入(InsertRowEnabled行レベル・アクション)がサポートされている場合は、InsertBeforeRowActionIDアクションを設定して、行レベルのアクション・セット中に一時的なサーバー・サイド行を作成します。

    行レベルのアクション・セットに一時行を作成する個別のアクションがユースケースで必要な場合は、InsertTempRowActionIDプロパティを構成します。

    注意:

    行レベルのアクション・セット中に一時的なサーバー・サイド行を作成するのにInsertBeforeRowActionIDアクションで十分な場合は、InsertTempRowActionIDを空白のままにしてください。

  4. 「ワークブック・プロパティの編集」ダイアログで、まで設定されていない場合は、Workbook.Compatibility.TableComponents.RowActionSetModelMgmtEnabledプロパティをTrueに設定します。

    この機能を含まないバージョンのADFデスクトップ統合で作成された統合Excelワークブックでは、RowActionSetModelMgmtEnabledプロパティがFalseに設定されていることに注意してください。

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

注意:

旧バージョンのADFデスクトップ統合で作成した統合Excelワークブックの場合は、RowActionSetModelMgmtEnabledプロパティをTrueに設定して、行レベルのアクション・セット中にモデル状態を管理するカスタム構成またはコードを削除します。

9.5.2 実行時の処理: RowActionSetModelMgmtEnabledがtrueに設定される

RowActionSetModelMgmtEnabledプロパティがTrueに設定されている場合、ADFデスクトップ統合は、行レベルのアクション・セットの実行中にモデル状態を自動的に管理します。

挿入ワークシート行の場合は、アクション・セットが実行されると一時的なサーバー・サイド行が自動的に作成され、アップロードが成功すると自動的に削除されます。InsertTempRowActionIDアクションが構成されている場合、起動後に一時的なサーバー・サイド行が作成されます。それ以外の場合は、InsertBeforeRowActionIDアクションがかわりに起動され、一時的なサーバー・サイド行が作成されます。

InsertTempRowActionIDまたはInsertBeforeRowActionIDのいずれのアクションも構成されていない場合、挿入行に対してアクションは起動されません。InsertRowEnabledFalseに設定されている場合、InsertTempRowActionIDアクションは無視されます。

ADF表コンポーネントで構成された行レベルのアクション・セットをエンド・ユーザーが起動し、モデル状態を変更する可能性のあるアクションが行レベルのアクション・セットに1つ以上含まれている場合、ADFデスクトップ統合は次を実行します。

  1. サーバー・サイド行の配置(更新ワークシート行のみ)

  2. データ・コントロールのセーブポイントの作成

  3. 一時的なサーバー・サイド行を作成するInsertTempRowActionIDまたはInsertBeforeRowActionIDアクションの起動(挿入ワークシート行のみ)

  4. アクション・セットのアクションの起動

  5. アクション・セットの起動の完了後に、前に作成したセーブポイントへのリストア(次のような終了方法に関係なく):

    • アップロードの成功

    • アップロードの失敗

    • エンド・ユーザーが「取消」ボタンをクリック

注意:

次のアクション(またはアクション・タイプ)により、モデル状態が変更する場合があります。

  • Table.RowUpSync

  • Table.RowDownSync (挿入行のみに適用)

    RowDownSync (既存の行でモデル状態が変更されない場合)。

  • Table.RowUpSyncNoFail

  • Worksheet.UpSync

    このアクションは、行レベルのアクション・セットでもサポートされます。

  • ADFmAction

  • Dialog

    ShareFrameTrueに設定されており、Webページが同じWebアプリケーションの一部の場合、Dialogアクションでモデル状態が変更されることがあります。

RowActionSetModelMgmtEnabledプロパティがFalseに設定されている場合、アクション・セットの実行中の一時的なサーバー・サイド行の作成と削除を明示的に管理する必要があります。

9.5.3 RowUpSyncNoFailを使用してADF表コンポーネントからの変更を同期化する方法

行レベルのアクション・セットには、正常に完了するために、モデルの現在の状態に応じて、ADFmActionまたはDialogアクションが含まれる場合があります。Table.RowUpSyncアクションでは、各表の行の現在値をワークシートからFusion Webアプリケーションのモデル・レイヤーに送信します。Table.RowUpSyncアクションでは、アクションを正常に完了するために、表の行のすべてのセルに有効なデータを含める必要があります。たとえば、新しく挿入された行では、Table.RowUpSyncアクションを完了するために、すべての必須属性に有効値が必要です。これに対して、Table.RowUpSyncNoFailアクションは表の行のセルから有効値を同期して、無効値の検証エラーを無視します。RowUpSyncと同様、RowUpSyncNoFailアクションは、DoubleClickActionSetをサポートする表の列の行レベルのアクション・セットでの使用を対象にしています。

「行レベルのアクション・セット・モデル管理を有効化する方法」に説明されているRowUpSyncNoFailを使用する際に、行レベルのアクション・セット・モデルの管理を有効にします。

RowUpSyncNoFailを使用してADF表コンポーネントからの変更を同期化する手順:

  1. 統合Excelワークブックを開きます。
  2. 表タイプ・コンポーネントを参照するExcelワークシートのセルを選択し、「Oracle ADF」タブの「プロパティの編集」ボタンをクリックします。
  3. Columnsプロパティの参照(...)アイコンをクリックします。
  4. 「列の編集」ダイアログで列を選択し、UpdateComponentプロパティの参照(...)アイコンをクリックします。
  5. ADF表コンポーネントRowUpSyncNoFailアクションを、列のDoubleClickActionSetのアクションのリストに追加します。
  6. 「OK」をクリックします。

9.5.4 実行時の処理: RowUpSyncNoFailアクションの起動

RowUpSyncNoFailアクションが起動されると、現在の表の行からデータ値がサーバーにアップロードされ、一般的な障害、エラー・レポートおよびエラー処理は無視されます。サーバーが使用できないなどの致命的エラーはレポートされます。

RowUpSyncNoFailアクションでは、モデルの状態を変更し、エラー時に変更は元に戻りません。したがって、RowUpSyncNoFailへのコールでは、行検証の失敗の原因となる値の行がモデルに残る可能性があります。これにより、Table.Uploadなど、他のメソッドへの後続のコールの動作が影響を受ける場合があります。このため、行レベルのアクション・セット・モデル管理を有効にする必要があります。

9.5.5 ADF表の列へのカスタム・ポップアップ・ピッカー・ダイアログの追加方法

ADF表コンポーネントの列のサブコンポーネント(UpdateComponentまたはInsertComponent)のDoubleClickActionSetを構成して、エンド・ユーザーがADF表コンポーネントの列に挿入する値を選択する場合にピッカー・ダイアログをレンダリングするFusion Webアプリケーション・ページを起動できます。

この機能は、エンド・ユーザーがADF表コンポーネントに入力できる値を制限する場合に役立ちます。たとえば、エラーが発生しないようにエンド・ユーザーが手動で値を変更できないようにするため、実行時のADF表コンポーネント列をExcelワークシートで読取り専用にしたい場合などです。Fusion Webアプリケーションによってレンダリングされたピッカー・ダイアログを起動すると、エンド・ユーザーは正しくないデータを入力することなくADF表コンポーネントの値を変更できるようになります。

DoubleClickActionSetを構成するほか、次のようにする場合は、ADF表コンポーネントのRowData.CachedAttributesプロパティを属性バインディングの値を参照するように構成します。

  • 統合ExcelワークブックのADF表コンポーネントに表示したくないFusion Webアプリケーションのページの値を、エンド・ユーザーが変更可能にする場合

  • ADF表コンポーネントの列を統合Excelワークブックで読取り専用にする場合。

  • 1つ以上のユーザー・セッションを通じて、エンド・ユーザーには表示されないが、ピッカー・ダイアログで変更するADF表コンポーネントのデータをキャッシュする場合。

    たとえば、ADF表コンポーネントではエンド・ユーザーに製品名のリストが表示されます。ピッカー・ダイアログは起動されて、ADF表コンポーネントで製品名のリストをリフレッシュし、プロセスの一環として、製品IDの値を設定します。このシナリオでは、ADF表コンポーネントのRowData.CachedAttributesプロパティの製品IDに属性バインディング値を指定します。アクション・セットが実行された後、ADF表コンポーネントはリフレッシュされた製品名のリストをExcelワークシートの行に表示し、そのRowData.CachedAttributesプロパティにある関連の製品IDを参照します。

選択ダイアログへの値の移入の詳細は、『Oracle Application Development FrameworkによるFusion Webアプリケーションの開発』の「データバインドされた選択リストおよびシャトルの作成」を参照してください。

始める前に:

行レベルのアクション・セットの使用について理解しておくと役立ちます。「表の列での行レベルのアクション・セットの使用」を参照してください。

他のADFデスクトップ統合の機能を使用して追加できる機能についても理解しておくと役立ちます。「統合Excelワークブックへの対話性の追加の追加機能」を参照してください。

挿入コンポーネントをサポートするADF表コンポーネントで、カスタム・ピッカー・ダイアログを正常に機能させる場合は、「行レベルのアクション・セット・モデル管理を有効化する方法」に説明されている行レベルのアクション・セット・モデルの管理がADF表コンポーネントでサポートされていることを確認します。行レベルのアクション・セット・モデル管理を有効にしないと、一時的な挿入行が実行時に作成されます。

ADF表コンポーネント列からカスタム・ピッカー・ダイアログを起動する手順:

  1. 統合Excelワークブックを開きます。
  2. ADF表コンポーネントを配置するExcelワークシートのセルを選択し、「Oracle ADF」タブの「プロパティの編集」ボタンをクリックして、プロパティ・インスペクタを表示します。
  3. ADF表コンポーネントのRowData.CachedAttributesプロパティを構成して、属性バインディング値を参照します。
  4. Columnsの入力フィールドの横にある参照(...)アイコンをクリックして、「列の編集」ダイアログを表示します。
  5. 「メンバー」・リストで、エンド・ユーザーが実行時にピッカー・ダイアログを起動する元の列を選択します。
  6. 列のサブコンポーネント(UpdateComponentまたはInsertComponent)のDoubleClickActionSetActions属性を、表9-6に示すように構成します。

    表9-6 DoubleClickActionSetプロパティ

    追加するアクション 目的

    ComponentAction

    ADF表コンポーネントのTable.RowUpSyncアクションを起動して、ADF表コンポーネントの現在の行にあるFusion Webアプリケーションに対するすべての保留中の変更を同期します。

    Dialog

    Dialogアクションを構成して、Fusion Webアプリケーションからピッカー・ダイアログ・ページを起動します。DialogアクションのShareFrameプロパティをTrueに設定します。「Fusion WebアプリケーションからのWebページの表示」を参照してください。

    ComponentAction

    ADF表コンポーネントのTable.RowDownSyncアクションを起動して、ワークシートの現在のADF表コンポーネント行に相当するFusion WebアプリケーションのADF表コンポーネントのイテレータの行からのデータを同期します。

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

9.6 Excel式を生成するためのEL式の使用

EL式を使用して、ADFコンポーネントの値としてExcel式を生成できます。

たとえば、EL式でHYPERLINK関数を使用できます。EL式でExcelのHYPERLINK関数を使用する場合、ADF出力テキスト・コンポーネントなどのOracle ADFコンポーネントを使用して、実行時にハイパーリンクを表示するには、HYPERLINK関数をExcelのT関数内に囲む必要があります。

ADFデスクトップ統合はExcelの式を認識するため、HYPERLINK関数を囲む必要があります。これを回避するには、HYERLINK関数の回りにT関数を配置して、HYPERLINK関数の値がT関数によって評価されるようにします。結果の値は、ADFコンポーネントが参照するExcelのセルに挿入されます。HYPERLINK Excel関数を起動するEL式を記述する際は、次の構文を使用します。

=T("=HYPERLINK(""link_location"",""friendly_name"")")

例9-1のEL式は、エンド・ユーザーがコンポーネントをクリックすると、HYPERLINK関数を使用してhttp://www.oracle.com/technetwork/developer-tools/adf/overview/index-085534.htmlに移動します。

HYPERLINK関数を使用してEL式を記述する場合、エラー・メッセージが表示されないようにするため、適用するカスタムのスタイルの「セルのフォーマット」ダイアログの「保護」タブの「ロック済」チェック・ボックスを選択する必要があります。

注意:

EL式を計算式に使用している場合、EL式の評価後に、結果のExcel式が255文字を超えないことを確認します。これはエディタでコンポーネントのプロパティに条件値を設定するのに使用される式に適用されます。

例9-1 HYPERLINK関数

=T("=HYPERLINK(""http://www.oracle.com/technetwork/developer-tools/adf/overview/index-085534.html"", ""#{res['excel.workbook.powerby']}"")")

9.6.1 EL式を使用してハイパーリンクを表示する際のセルの構成方法

ExcelのT関数を使用するEL式を記述して、ExcelのHYERLINK関数の出力を評価します。次の作業は、ADF出力テキスト・コンポーネントが、Oracle ADFデスクトップ統合ホーム・ページを開くハイパーリンクを表示するように構成される様子を示します。

始める前に:

動的なハイパーリンクについて理解しておくと役立ちます。「Excel式を生成するためのEL式の使用」を参照してください。

他のADFデスクトップ統合の機能を使用して追加できる機能についても理解しておくと役立ちます。「統合Excelワークブックへの対話性の追加の追加機能」を参照してください。

セルを構成し、EL式を使用してハイパーリンクを表示するには:

  1. 統合Excelワークブックを開きます。
  2. ADF出力テキスト・コンポーネントをExcelワークシートに挿入します。
  3. ADF出力テキスト・コンポーネントのValueプロパティにEL式を記述します。

    記述するEL式は、Excel HYPERLINK関数を起動して、出力を評価するためにExcel T関数を使用します。例9-1では、Valueプロパティに次のEL式を入力しました:

    =T("=HYPERLINK(""http://www.oracle.com/technetwork/developer-tools/adf/overview/index-085534.html"", ""#{res['excel.workbook.powerby']}"")")
    

    注意:

    Excelでは、式を正しく評価できるように、EL式に二重の二重引用符(""#{res['excel.workbook.powerby']}""など)を記述する必要があります。

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

9.6.2 実行時の処理: EL式を使用したセルによるハイパーリンクの表示

ADFデスクトップ統合は、記述するEL式を実行時に評価します。次の例では、ADFデスクトップ統合は次のことを実行します。

  • リソース・ファイルからexcel.workbook.powerbyの値を取得します。

  • ユーザーがクリックできる、ハイパーリンクの付いたセルに結果を挿入します。

図9-27は、「EL式を使用してハイパーリンクを表示する際のセルの構成方法」で構成した例の実行時の表示を示しています。ADF出力テキスト・コンポーネントをホストするセルをエンド・ユーザーがクリックすると、Oracle ADFデスクトップ統合ホーム・ページがWebブラウザに開きます。

図9-27 ハイパーリンクを表示するよう構成されたADF出力テキスト・コンポーネント

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

9.7 統合Excelワークブックでの計算済セルの使用

統合Excelワークブックで値の計算を実行するExcel式を記述できます。

統合Excelワークブックで値を計算するExcel式を記述する前に、次の点に注意してください。

  • 式は、Oracle ADFバインディングを参照するセルと参照しないセルに入力できます

  • 統合Excelワークブックのエンド・ユーザーは実行時に式を入力できます。

  • 統合Excelワークブックの開発者は、設計時に式を入力できます。

  • 起動時には、ADF表コンポーネント・アクションUploadRowUpSyncが、式の計算結果をFusion Webアプリケーションに送信しますが、式自体は送信されません

  • Oracle ADFバインディングを参照するセルが次の処理によって変更された場合、Excelではこれらのセルの式が再計算されます。

    • ADF表コンポーネントRowDownSyncアクションとDownloadアクションの起動

    • Oracle ADFコンポーネントのレンダリング

  • ADF表コンポーネントとADF読取り専用コンポーネントは、行がFusion Webアプリケーションからダウンロードされたデータを受け入れるために拡張または収縮すると同時に、行を挿入または削除します。式はExcel独自のルールに従って複製されます。

  • ADF表コンポーネントまたはADF読取り専用表コンポーネントを参照するセルの上または下に式を入力できます。これらのコンポーネントの下に入力した式は、表示される行数を受け入れるためにコンポーネントが収縮する際、コンポーネントを基準にしてその位置を保持します。

Excel関数の詳細は、Excelのオンライン・ヘルプ・ドキュメントの関数の参照の項を参照してください。

9.7.1 表タイプ・コンポーネント列の合計の計算方法

次の作業は、Excel関数のAVERAGEOFFSETを使用して、Salaryとラベル付けされた列の平均を実行時に計算する様子を示します。ADF表コンポーネントまたはADF読取り専用表コンポーネントがダウンロードする行数に基づいて、拡張または収縮するセルの範囲を参照する場合に、記述するExcel式でOFFSET関数を使用します。AVERAGE関数では、Excelセルの範囲の平均値を計算します。

始める前に:

統合Excelワークブックでの計算されたセルの使用方法を理解しておくと役立ちます。「統合Excelワークブックでの計算済セルの使用」を参照してください。

他のADFデスクトップ統合の機能を使用して追加できる機能についても理解しておくと役立ちます。「統合Excelワークブックへの対話性の追加の追加機能」を参照してください。

ADF表コンポーネントのRowActions.AutoConvertNewRowsEnabledプロパティがFalseに設定されていることを確認します。このプロパティの詳細は、「ADF表コンポーネントのプロパティ」を参照してください。

ADF表コンポーネントで列の合計を計算するには:

  1. 設計モードで、Excel式を記述するセルを選択します。たとえば、J2などです。
  2. 実行時にセル範囲で計算を実行するExcel式を記述します。例:

    =AVERAGE(OFFSET(J2,1,0):OFFSET(J4,-1,0))

    ここで、AVERAGEは、J2およびJ4で現在参照されているセルの範囲の平均値を計算します。

    図9-28は、統合ExcelワークブックのExcel式の設計時の表示を示します。

    図9-28 統合ExcelワークブックのExcel式の設計時の表示

    この図は周囲のテキストで説明しています
  3. 変更を保存して実行時モードに切り替え、入力したExcel式が正しく評価されるかテストします。

9.7.2 実行時の処理: Excelによる表タイプ・コンポーネント列の合計計算

図9-29は、図9-28のExcel式が評価されるときの、統合Excelワークブックの実行時の表示です。このExcel式は、設計モードで指定したセルの範囲にある値の平均を計算します。

図9-29 統合ExcelワークブックのExcel式の実行時の表示

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

9.8 ADF表コンポーネントの自動行リフレッシュの構成

ADF表コンポーネントは、エンド・ユーザーが表の行の値を変更するたびにカスタム・ビジネス・ロジックが自動的に起動されるように構成できます。

ADF表コンポーネントに、現在の給与(読取り専用列)、昇給率、昇給額、提示された給与を含む各種の列が含まれているとします。エンド・ユーザーが後ろの3列のいずれかの値を編集した場合に、それ以外の2つの書込み列の値が自動的かつ即時に再計算されるようにします。その後、ADF表コンポーネントのUploadアクションの起動中に、変更された行ごとに、変更および再計算されたすべての値がアップロードされます。たとえば、エンド・ユーザーが昇給額を変更した場合、昇給率が(昇給額/現在の給与)に設定され、提示される給与が(現在の給与+昇給額)に設定されます。エンド・ユーザーが他の編集可能列に値を入力した場合にも、同様の変更が行われます。

このような機能を実装するには、カスタム・メソッドを記述して、ADFデスクトップ統合で行リフレッシュがトリガーされたときに起動するビジネス・ロジックを指定する必要があります。また、ADF表コンポーネントのプロパティ・グループRowActionsAutoRefreshRowEnabledおよびAutoRefreshRowActionIDプロパティを構成する必要もあります。最後に、ADF表コンポーネントで、行の値を編集するエンド・ユーザーが自動行リフレッシュをトリガーする列を指定します。これを行うには、その列のTriggersRowRefreshプロパティをTrueに設定します。

自動行リフレッシュの実装がパフォーマンスに与える可能性のある影響に注意してください。「ADF表コンポーネントの自動行リフレッシュに関する必知事項」を参照してください。

9.8.1 自動行リフレッシュで使用するカスタム・メソッドの記述方法

ADFデスクトップ統合によって、自動行リフレッシュに関連する各行について記述したカスタム・メソッドが起動されます。

メソッドは任意の名前にできますが、次の例に示すように、行データのリフレッシュを実行するには、属性(ADF表コンポーネントの列のIDプロパティ)を識別するjava.util.ArrayListパラメータをメソッド・シグネチャに含める必要があります。

public void refreshRow (ArrayList attrIds)

カスタム・メソッドは次のように記述してください。

  • NULL値に対する処理を決定します。

  • 同じ行の他の属性を、ビジネス目標を達成するように更新します。

  • 例外を適切に処理します。

    • メソッド内で例外をスローできます。スローする例外と関連付けたメッセージはエンド・ユーザーにレポートされるため、エンド・ユーザーに理解しやすいメッセージを記述してください。

    • カスタム・メソッド内で予期しない例外を捕捉して処理します。

カスタム・メソッド内に、イテレータのステータスを変更するコードや、ADFモデル・レイヤーの変更をコミットするコードを記述しないでください。

次の変更はADFデスクトップ統合によって自動的に処理されるため、カスタム・メソッド内にコードを記述する必要はありません。

  • ターゲット行にイテレータが配置されます。

  • ADF表コンポーネントの属性値がFusion Webアプリケーションに転送されます。

  • サーバー・サイドの変更が自動的に元に戻ります。

カスタム・メソッドを完成させたら、統合Excelワークシートと関連付けられたページ定義ファイル内にメソッド・アクション・バインディングとして公開してください。ADFデスクトップ統合の作業ウィンドウのバインディング・パレットに、そのメソッド・アクション・バインディングが表示されることを確認してください。そのために、「Excelワークブックへのページ定義ファイルのリロード方法」の説明に従って、ページ定義ファイルを再ロードする必要がある場合があります。

9.8.2 ADF表コンポーネントの自動行リフレッシュの構成方法

ADF表コンポーネントを構成して、データの自動行リフレッシュを有効にし、リフレッシュの発生時に起動するメソッド・アクション、およびリフレッシュをトリガーする列を指定します。

始める前に:

エンド・ユーザーが自動行リフレッシュをトリガーしたときに起動するビジネス・ロジックを実行するようなカスタム・メソッドを記述します。このカスタム・メソッドおよび自動行リフレッシュの詳細は、「自動行リフレッシュで使用するカスタム・メソッドの記述方法」を参照してください。

他のADFデスクトップ統合の機能を使用して追加できる機能についても理解しておくと役立ちます。「統合Excelワークブックへの対話性の追加の追加機能」を参照してください。

ADF表コンポーネントの自動行リフレッシュを構成するには:
  1. 統合Excelワークブックを開きます。
  2. ADF表コンポーネントを参照するExcelワークシートのセルを選択し、「Oracle ADF」タブの「プロパティの編集」ボタンをクリックします。
  3. 表示される「コンポーネントの編集: ADF表」ダイアログで、次のRowActionsプロパティの値を設定します。

    表9-7 自動行リフレッシュを有効にするためのRowActionプロパティ

    設定するプロパティ 目的

    AutoRefreshRowActionID

    エンド・ユーザーが自動行リフレッシュをトリガーしたときに実行するビジネス・ロジックを含むカスタム・メソッドを起動するメソッド・アクション・バインディングを指定します。自動行リフレッシュを実行してサーバー・サイドの検証をトリガーする場合や、一時属性の値をリフレッシュする場合、メソッド・アクション・バインディングを指定する必要はありません。

    カスタム・メソッドの詳細は、「自動行リフレッシュで使用するカスタム・メソッドの記述方法」を参照してください。

    AutoRefreshRowEnabled

    Trueの場合、ADFデスクトップ統合は、この表の列のTriggersRowRefreshプロパティを評価します。

  4. 「コンポーネントの編集: ADF表」ダイアログで、Columnsプロパティの参照(...)アイコンをクリックします。
    「列の編集」ダイアログが表示され、ADF表コンポーネントのすべての列がリストされます。
  5. エンド・ユーザーが値を編集したときに自動行リフレッシュをトリガーする行を含む各列について、TriggersRowRefreshプロパティをTrueに設定するか、Trueに評価されるEL式に設定します。

    図9-30は、TriggersRowRefreshプロパティを設定したダイアログを示しています。

    図9-30 自動行リフレッシュを構成するためのTriggersRowRefreshプロパティ

    図9-30の説明が続きます
    「図9-30 自動行リフレッシュを構成するためのTriggersRowRefreshプロパティ」の説明
  6. 「OK」をクリックします。

9.8.3 実行時に行われる処理: ADF表コンポーネントでの自動行リフレッシュ

列のTriggersRowRefreshプロパティをtrueに設定してこの動作が有効になるように構成した列で、ADF表コンポーネント・セルに対する自動行リフレッシュがADFデスクトップ統合により実行されます。

ADFデスクトップ統合は、ユーザー編集に関連するADF表コンポーネントの各列のTriggersRowRefreshプロパティを調べて、プロパティがTrueに設定されている列が見つからない場合には自動行リフレッシュ操作を終了します。それ以外の場合、TriggersRowRefreshプロパティがTrueに設定されている列のIDプロパティの値を、カスタム・メソッドのArrayListパラメータに追加します。

推定処理時間が長い場合は、進捗バーが表示されます。

ADFデスクトップ統合では、変更の処理前にセーブポイントが作成されます。次に、リフレッシュが必要な各行について次の変更が実行されます。

  1. 保留中の更新行の場合はツリー・バインディング・イテレータが正しい行に配置され、保留中の挿入行の場合は一時行が作成されます。

  2. その行のすべての属性がワークシートからADFモデル・レイヤーのイテレータ行に転送されます。例外(ある場合)は記録されます。

  3. ADF表コンポーネントのRowActions.AutoRefreshRowActionIDプロパティにメソッド・アクション・バインディングとして指定したカスタム・メソッドが起動されます。

  4. 行データがリフレッシュされ、例外がレポートされます(ある場合)。

    1. 手順2および3で例外が発生しなかった場合、リフレッシュされた行の「ステータス」列とエラー詳細がクリアされます。

    2. TriggersRowRefreshプロパティがFalseに設定された列について、手順2および3で例外oracle.jbo.attrValExceptionがレポートされた場合は、次のようになります。

      1. その行の「ステータス」列が無効なエントリで更新されます。ステータス・ビューアに詳細が表示されます。

      2. エラーがレポートされていない列の行データのみがリフレッシュされます。

    3. それ以外の場合、次のようになります。

      1. その行の「ステータス」列が無効なエントリで更新され、ステータス・ビューアに詳細が表示されます。

      2. 行はリフレッシュされません。

  5. ADFデスクトップ統合によって、自動行リフレッシュの開始前に作成されたセーブポイントがリストアされます。自動行リフレッシュ操作の結果(成功または失敗)に関係なく、セーブポイントがリストアされます。エンド・ユーザーは、ADF表コンポーネントのUploadアクションを起動して、自動行リフレッシュ後にADF表コンポーネントで表示されている変更をサーバー・サイドにコミットする必要があります。

9.8.4 ADF表コンポーネントの自動行リフレッシュに関する必知事項

ADF表コンポーネントの自動行リフレッシュを有効にする場合、次の点に注意してください。

  • 自動行リフレッシュではリクエストがFusion Webアプリケーションに送信され、カスタム・メソッド内のビジネス・ロジックが実行されるため、ADF表コンポーネントのデータ入力パフォーマンスに影響を与える可能性があります。データ入力パフォーマンスに対する影響の度合いは、ビジネス・ロジックの計算上の複雑さや、他の要因(ネットワーク待機時間など)によって異なります。たとえば、ネットワーク待機時間が大きい場合、エンド・ユーザーがデータを入力してから行リフレッシュが完了するまでに大幅な遅延が発生する可能性があります。

  • ADFデスクトップ統合は、行のすべての属性をクライアントからサーバーに送信し、続いてサーバーからクライアントに送信します。これには、変更された属性も変更されていない属性も含まれます。

  • 1つのADF表コンポーネントで多数のエンド・ユーザー動作があると、複数のセルの内容が同時に変更されることがあります。エンド・ユーザーが複数セル編集を実行すると、ADFデスクトップ統合は、TriggersRowRefreshプロパティがTrueに設定されているADF表コンポーネント内の列のセットが含まれる変更済範囲のセルを調べます。TriggersRowRefreshプロパティがTrueに設定されている列の変更済セルが含まれる各表行について、自動行リフレッシュが実行されます。

  • 自動行リフレッシュでエラーがレポートされても、ADF表コンポーネントのUploadアクションが妨げられることはありません。Uploadアクションで使用される値は、自動行リフレッシュ完了後の列の値(エラーの原因となった値も含む)です。このため、必要な制約はUploadアクションの起動中に適用してください。

9.9 統合Excelワークブックでのマクロの使用

統合ExcelワークブックのExcelイベントに基づいて、マクロを定義して実行できます。ADFデスクトップ統合は、Excelイベントに応答します。Excelイベントの例としては、Excelのワークシートが変更された場合に発生する変更イベントなどがあります。

Excelイベントは、エンド・ユーザーまたはマクロがアクションを実行したとき(新しい行の挿入など)に発生する可能性があります。ADFデスクトップ統合は、Excelイベントに応答します。ADFデスクトップ統合がExcelイベントに応答してコードをトリガしたとき、これ以降のExcelイベントはすべて抑制されます。

たとえば、統合Excelワークブックで、変更イベントが特定のセルで発生したときにワークブックがトリガするマクロを作成するとします。エンド・ユーザーがセルを変更すると、Excelイベントが発生し、マクロが実行されます。ただし、ADFデスクトップ統合がセルを変更した場合は、Excelイベントは発生せず、マクロは実行されません。

Excelイベントの詳細は、Microsoft社のドキュメントを参照してください。