F ADFデスクトップ統合モデルAPIの使用

使用可能な実際の行がない場合に、カスタムJavaコードのADFデスクトップ統合モデルAPIを使用して、アップロード・プロセスでクライアントから送信される属性値にアクセスします。

このAPIは、ツリー・バインディングに使用可能な行がない場合でもADF表データをアップロードできるようにするユースケースに対応しています。

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

一時行オブジェクトの概要

アップロード時に、ADFデスクトップ統合は一時行オブジェクトを作成し、ワークシート行からアップロードされた値を格納します。ADFデスクトップ統合モデルAPIを使用すると、カスタムのJavaコードを記述して一時行オブジェクトにアクセスし、その値を収集できます。

各ADF表コンポーネントは、ページ定義内で定義されているツリー・バインディングにバインドされます。各ツリー・バインディングには、1つ以上のノードが定義されています。親子関係の場合、ツリー・バインディングには2つのノードがあり、一方は親表用、もう一方は子表用です。実行時に、ADF表コンポーネントは各ワークシート行に親と子の両方の属性を表示します。アップロード時に、ADFデスクトップ統合は親ノードと子ノードの両方に属性値を設定します。

特定の状況では、Table.Uploadリクエストの処理中に使用できる実際のデータ行が特定のツリー・ノードにないことがあります。ツリー・ノードにデータがない場合について、一般的な2つのシナリオを次に示します。

  • ツリー・ノードのイテレータ結果セットに、使用できるデータ行がありません。この原因は、ゼロ行を戻す問合せの可能性があります。

  • 親子関係で外部キーが親表に移入されていない場合は、親と子のツリー・ノード間のリンクに実際の行が含まれていない可能性があります。

状況によっては、サーバー上に使用可能な実際の行がない場合でも、エンド・ユーザーがワークシートに値を入力してサーバーにアップロードできるようにすることがあります。

アップロード時にカスタムのJavaコードをコールするには、pageDefアクション・バインディングを介してカスタムのJavaコードを公開し、ADF表コンポーネントのUpdateRowActionIDまたはInsertAfterRowActionIDを構成してpageDefアクション・バインディングを指すようにする必要があります。

ADFデスクトップ統合モデルAPIの概要

データをアップロードする際にADF表コンポーネントのツリー・ノードに実際の行がない場合、ADFデスクトップ統合のリモート・サーブレットにより、属性値を格納する一時行オブジェクトが作成されます。

一時行オブジェクトおよびその属性値にアクセスするには、ADFデスクトップ統合モデルAPIライブラリを使用するカスタムのJavaコードを記述する必要があります。

注意:

EJBまたはTopLinkのデータ・コントロールでは、ADFデスクトップ統合モデルAPIはサポートされていません。

APIで使用可能なクラスおよびメソッドの詳細は、Oracle ADFデスクトップ統合Java APIリファレンスを参照してください。

JDeveloperプロジェクトへのADFデスクトップ統合モデルAPIライブラリの追加方法

通常、ADFデスクトップ統合モデルAPIライブラリはアプリケーションのデータ・モデル・プロジェクトに追加します。このライブラリは独立ライブラリで、いずれの機能にも含まれません。これは「プロジェクト・プロパティ」ダイアログ・ボックスを介して追加できます。

ADFデスクトップ統合モデルAPIライブラリをプロジェクトに追加するには:

  1. 「アプリケーション」ウィンドウでデータ・モデル・プロジェクトを右クリックして、「プロジェクト・プロパティ」を選択します。
  2. 「プロジェクト・プロパティ」ダイアログで、「ライブラリとクラスパス」を選択して、使用可能なライブラリのリストを表示します。
  3. 「ライブラリの追加」をクリックし、「ライブラリの追加」ダイアログで「ADFデスクトップ統合モデルAPI」ライブラリを選択します。

    図F-1 「ライブラリの追加」ダイアログ

    この図は周囲のテキストで説明しています
  4. 「OK」をクリックします。ライブラリ名が「クラスパス・エントリ」リストに追加されます。
  5. 「OK」をクリックして、「プロジェクト・プロパティ」ダイアログ・ボックスを閉じます。