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

前
 
次
 

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

ツリー・バインディングに使用可能な行がない場合でもADF表データをアップロードできるようにする特定のユースケースがある場合があります。この付録では、使用可能な実際の行がない場合に、アップロード・プロセスでクライアントから送信される属性値にアクセスするために、カスタムJavaコードのADFデスクトップ統合モデルAPIライブラリを使用する方法について説明します。

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

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

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

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

状況によっては、サーバー上に使用可能な実際の行がない場合でも、エンド・ユーザーがワークシートに値を入力してサーバーにアップロードできるようにすることがあります。アップロード時に、ADFデスクトップ統合は一時行オブジェクトを作成し、ワークシート行からアップロードされた値を格納します。ADFデスクトップ統合モデルAPIを使用すると、カスタムのJavaコードを記述して一時行オブジェクトにアクセスし、その値を収集できます。

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

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

データをアップロードする際にADF表コンポーネントのツリー・ノードに実際の行がない場合、ADFデスクトップ統合のリモート・サーブレットにより、属性値を格納する一時行オブジェクトが作成されます。一時行オブジェクトおよびその属性値にアクセスするには、ADFデスクトップ統合モデルAPIライブラリを使用するカスタムのJavaコードを記述する必要があります。


注意:

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


APIで使用できるクラスおよびメソッドの詳細は、G.3項「ADFデスクトップ統合モデルAPIのクラスおよびメソッド」を参照してください。

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

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

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

  1. 「アプリケーション」ウィンドウでデータ・モデル・プロジェクトを右クリックして、「プロジェクト・プロパティ」を選択します。

  2. 「プロジェクト・プロパティ」ダイアログで、「ライブラリとクラスパス」を選択して、使用可能なライブラリのリストを表示します。

  3. 「ライブラリの追加」をクリックし、「ライブラリの追加」ダイアログで「ADFデスクトップ統合モデルAPI」ライブラリを選択します。

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

    モデルAPIライブラリが表示されている「ライブラリの追加」ダイアログ
  4. 「OK」をクリックします。ライブラリ名が「クラスパス・エントリ」リストに追加されます。

  5. 「OK」をクリックして「プロジェクト・プロパティ」ダイアログ・ボックスを閉じます。

G.3 ADFデスクトップ統合モデルAPIのクラスおよびメソッド

ADFデスクトップ統合モデルAPIライブラリには1つのpublicクラスがあり、一時行オブジェクトを取得するためのAPIが含まれています。

G.3.1 oracle.adf.desktopintegration.model.ModelHelperクラス

ModelHelperクラスはpublicクラスであり、モデルAPIを公開します。次の各項で、このクラスで使用できるメソッドについて説明します。

G.3.1.1 getAdfdiTempChildRowメソッド

このメソッドは、特定のマスター行に関連付けられている一時子行オブジェクト(ViewRowImplオブジェクト)を参照するために使用します。使用可能な実際のViewRowImplオブジェクトがない場合には、必要に応じてサーブレット・コードによって一時オブジェクトViewRowImplが作成され、属性値が格納されます。

このメソッドは、ワークシートから送られる、属性値を含む一時子オブジェクトViewRowImplを戻します。

メソッド構文

public static final ViewRowImpl getAdfdiTempChildRow(ViewRowImpl masterRow, java.lang.String childAccessor)

パラメータ

  • masterRow – マスター行オブジェクト

  • childAccessor – 子属性名

G.3.1.2 getAdfdiTempRowForViewメソッド

このメソッドは、特定のビューに関連付けられている一時子行オブジェクト(ViewRowImplオブジェクト)を参照するために使用します。使用可能な実際のViewRowImplオブジェクトがない場合には、必要に応じてサーブレット・コードによって一時オブジェクトViewRowImplが作成され、属性値が格納されます。

このメソッドは、ワークシートから送られる、属性値を含む一時子オブジェクトViewRowImplを戻します。

メソッド構文

public static final ViewRowImpl getAdfdiTempRowForView(ApplicationModuleImpl am,java.lang.String viewDefName)

パラメータ

  • am – アプリケーション・モジュール・インスタンス

  • viewDefName – ビュー定義名

G.3.1.3 getChildViewDefメソッド

このメソッドは、ビュー・リンクの宛先属性によって1つ以上の子識別子属性が指定される場合に、多相子ビュー定義を参照するために使用します。マスター行のソース属性は、ViewObjectImpl.findViewDefFromDiscrValues APIを介して正しい多相子ビュー定義を参照します。子識別子属性が定義されていない場合、または子ビューが多相でない場合は、デフォルトの子オブジェクトViewDefImplが戻されます。

このメソッドは、ワークシートから送られる、属性値を含む一時子オブジェクトViewRowImplを戻しますが、オブジェクトが見つからない場合はNULLを戻します。

メソッド構文

public static final ViewDefImpl getChildViewDef(ViewRowImpl masterRow,java.lang.String childAccessor)

パラメータ

  • masterRow – マスター行オブジェクト

  • childAccessor – 子属性名