コネクター・ビジネス・オブジェクトの構造

OneWorld オブジェクトのそれぞれに、対応するビジネス・オブジェクトがあります。

JD Edwards OneWorld アダプターのビジネス・オブジェクトには、Java API をサポートするものと、OneWorld の XMLList API をサポートするものの 2 つのタイプがあります。

ビジネス関数ビジネス・オブジェクト

Java API を使用して処理するビジネス・オブジェクトは、ビジネス・オブジェクト ASI に、このビジネス・オブジェクトと XML リスト・ビジネス・オブジェクトを識別する type=BFN タグを保持しています。Java API で使用するビジネス・オブジェクトの中には、2 種類のビジネス・オブジェクトがあります。1 つは Interface クラスにマップされているビジネス・オブジェクトであり、もう 1 つはビジネス関数クラスにマップされているビジネス・オブジェクトです。Interface クラスにマップされているビジネス・オブジェクトには、以下のような ASI があります。

type=BFN;class_name=com.JD Edwards.interop.AddressBook.JDEAddressBook

Java API を使用して処理するビジネス・オブジェクトは、ビジネス・オブジェクト ASI に、このビジネス・オブジェクトと XML リスト・ビジネス・オブジェクトを識別する type=BFN タグを保持しています。Java API で使用するビジネス・オブジェクトの中には、2 種類のビジネス・オブジェクトがあります。1 つは Interface クラスにマップされているビジネス・オブジェクトであり、もう 1 つはビジネス関数クラスにマップされているビジネス・オブジェクトです。Interface クラスにマップされているビジネス・オブジェクトには、以下のような ASI があります。

type=BFN;class_name=com.JD Edwards.interop.AddressBook.JDEAddressBook

クラス JDEAddressBook 内と、GenJava によって生成された .jar ファイル内に存在するすべてのビジネス関数は、メイン・ビジネス・オブジェクトの子ビジネス・オブジェクトとして表されます。トップレベル・ビジネス・オブジェクトのすべての子オブジェクトは、1 つのユーザー名およびパスワードを通じてアクセス可能なビジネス関数にマップされている必要があります。特定のビジネス関数が、異なるユーザー名またはパスワードによってアクセスされる場合、その関数は、そのユーザー名またはパスワードにアクセス可能な別個のビジネス・オブジェクト階層に属していなければなりません。ビジネス・オブジェクトの特殊なアクセス権の定義方法の詳細については、ビジネス関数を参照してください。

GenJava から生成された .jar ファイル内に記述されている各データ構造クラスは、対応するビジネス・オブジェクトにマップされます。例えば、JDEAddressBook では、データ構造の名前は以下のようになります。

D0100031
 D0100019
 D0100032
 D0100002
 D0100033

そして、B0100031B0100019 などに対応して作成されたビジネス関数および子ビジネス・オブジェクトにマップされます。

上記のビジネス・オブジェクトの ASI には、name= のタグが含まれます。値はデータ構造の名前です。また 、bfn_name= のタグも含まれます。これらのビジネス・オブジェクトに対応するビジネス関数の名前を指定します。

属性の名前は、ビジネス・オブジェクトによって示されるメソッドの名前にマップします。例えば、データ構造が D0100033 の場合、AddressBook ビジネス・オブジェクト内の属性の名前は GetEffectiveAddress となります。この属性レベルの ASI は、ASI タグの bfn_name= を使用してメソッドの名前を示します。

属性

Data Structure クラスに記述されている各属性ごとに、ビジネス関数のビジネス・オブジェクト内で、対応するビジネス・オブジェクト属性が生成されます。属性の ASI には、OneWorld でのその属性のタイプと名前に関する情報が保持されています。例えば、属性タイプが JDEDate の場合、ASI では name=EffectiveDate;type=JDEDate と記述されています。OneWorld では、単純タイプの属性のほかにも、JDEDate および JDEMathNumeric という 2 種類のプロプラエタリー・データ・タイプをサポートします。

JDEDate

この OneWorld Java クラスでは、以下のメソッドが使用可能です。

OneWorld の日付フィールドにマップされる属性の値は、MM/DD/YYYY という形式で指定します。アダプターはこのストリング値を構文解析し、JDEDate オブジェクトで OneWorld API を呼び出して、日、月、および年の値を設定します。OneWorld からのデータをビジネス・オブジェクトに設定する必要がある場合、アダプターは get メソッドを使用して属性に値を設定します。

JDEMathNumeric

以下のメソッドが JDEMathNumeric クラスに記述されています。

ビジネス・オブジェクト属性のタイプ

以下の表に、OneWorld でサポートされるデータ型と、それに対応する WebSphere Business Integration ビジネス・オブジェクトを示します。

表 4. ビジネス・オブジェクト属性のタイプ
OneWorld タイプ ビジネス・オブジェクト属性のタイプ ASI
JDEDate Date type=JDEDate
JDEMathNumeric Integer type=JDEMathNumeric
int Integer type=int
boolean Boolean type=boolean
char String type=char
String String type=String
short Integer type_short
float Float type=float
double Double type=double
byte String type=byte
long Integer type=long

ビジネス関数

OneWorld コネクターは、1 回のトランザクションの 1 回の doVerbFor() 呼び出しで、ビジネス関数をすべて呼び出します。そのうちの 1 つが失敗した場合、すべての関数がロールバックされます。1 回のビジネス・オブジェクト実行におけるすべてのビジネス関数は、単一のユーザーからのアクセス権が認められている必要があります。ユーザーは、アダプター用に作成され、接続プールとして維持されているユーザーでも、特定のユーザーでもかまいません。タイプが ACCESS_LEVEL である単一カーディナリティーの子ビジネス・オブジェクトを使用して、ビジネス・オブジェクトのユーザーを指定することができます。

ビジネス関数呼び出しを適切に表現するため、ビジネス関数は、データ構造変数を表す属性を含む子ビジネス・オブジェクトとして作成されます。

アダプターは独立して実行されるビジネス関数にマップされるビジネス・オブジェクトをサポートします。このようなビジネス・ オブジェクトのすべてについて、ASI には、ビジネス関数の実行に必要な情報 (データ構造のビジネス関数名など) が格納されています。上記のように、ビジネス関数ビジネス・オブジェクト ASI は以下のように表します。

bfn_name=getEffectiveAddress
 type=BFN
 name=com.JD Edwards.interop.D0100031

XML ビジネス・オブジェクト関数

XML ビジネス・オブジェクトは、OneWorld のテーブルにマップされます。ビジネス・オブジェクトの属性は、テーブルの列にマップされます。

コンポーネントに同じ名前の列が複数ある場合、ODA は、属性名に「_」を付加し、数値を続けることによって、固有の属性名を生成します。例えば、フィールド AddressNumber が複数回出現する場合、生成された属性名は、AddressNumber、AddressNumber_1、AddressNumber_2 のようになります。属性の最大長は、getTemplate() API 呼び出しからの戻り値に基づいて設定されます。

カスタム・ビジネス関数

イベント通知をアダプターに実装するには、以下のカスタム・ビジネス関数が必要です。

イベント・ビジネス・オブジェクトの構造

次の表に、コネクターがサポートするイベント通知機能の詳細を示します。

表 5. イベント表の構造
カラム 説明
OBJ_KEY

イベントが作成されたビジネス・オブジェクト行を示す固有 ID。キーを作成するビジネス・オブジェクト内に複数の属性が存在する場合、値は ";" によって区切られる名前と値のペアになります。

ビジネス・オブジェクトがビジネス関数タイプの場合、オブジェクト・キーは DS0013keyattr1=123; DS0013keyattr2=124 のようになっている必要があります。retrieve 動詞の動詞 ASI が 複数のビジネス関数を指定する場合、複数のキー・フィールドの設定が必要な場合があります。例えば D0013.attr1=123;D0012.attr1=345 のように、アダプターが属性名とともにデータ構造名を使用しているため、このような表記がサポートされています。

OBJ_NAME イベントが検出された OneWorld ビジネス・オブジェクト。
OBJ_VERB イベントの動詞。
EVT_PRIORITY イベント優先順位。
EVT_STATUS イベント状況。最初は READY_FOR_POLL に設定されています。
EVT_DESC イベントに関連したコメント。
EVENT_ID イベント行の固有 ID。
ADAPTER_ID 複数コネクター構成において接続を識別します。
EVT_TIME イベント作成のタイム・スタンプ。
ROW_ID OneWorld によって生成されるアーカイブ・レコード ID。
PROC_TIME イベント処理のタイム・スタンプ

ビジネス関数のアプリケーション固有情報

ビジネス関数のアプリケーション固有情報は、ビジネ ス・オブジェクトの処理方法に関するアプリケーション依存の指示をコネクタ ーに提供します。ビジネス・オブジェクト定義を拡張または変更する場合、定義内のアプリケーション固有の情報を、コネクターが想定している構文に一致していることを確認する必要があります。

アプリケーション固有の情報は、ビジネス・オブジェクト全体に対しても、各ビジネス・オブジェクト属性に対しても指定することができます。

ビジネス・オブジェクト・レベル ASI

オブジェクト・レベル ASI は、ビジネス・オブジェクトおよびそのビジネス・オブジェクトに含まれるオブジェクトの性質に関する基礎情報を提供します。ビジネス・オブジェクト ASI は名前と値のペアです。インターフェース・オブジェクトを表すビジネス・オブジェクトは、以下の ASI 名を認識します。

ビジネス・オブジェクトは、独立して実行されるビジネス関数にマップされます。ビジネス関数を表すビジネス・オブジェクトの場合、アダプターは以下の名前を認識します。

動詞 ASI

インターフェース・クラスにマップされるビジネス・オブジェクトの場合、動詞 ASI には、OneWorld BO Handler が呼び出すビジネス関数にマップされる一連の属性名が含まれています。アダプターは、動詞 ASI によって指定された順序でビジネス関数を呼び出します。

ビジネス関数にマップされるビジネス・オブジェクトの場合、動詞 ASI はブランクです。

属性レベルの ASI

ビジネス関数にマップされるビジネス・オブジェクトには、データ構造クラスの get<Attr>/set<Attr> メソッドの組み合わせにマップされる属性があります。コネクターは、関数呼び出し時に、このデータ構造オブジェクトを入力パラメーターとみなします。このようなすべての属性について、ASI は属性のタイプを type=<type> として保管し、属性の実際の名前を name=<name> として保管します。アダプターが get/set の組み合わせに対して生成する属性は 1 つのみです。例えば、属性名が ID の場合、メソッドは getID() および setID() となります。そしてビジネス・オブジェクトには ID という名前の 1 つの属性があり、ASI は getter=getID();setter=setID()type=intname=ID となります。

表 6 に、メソッド以外の属性の ASI を示します。

表 6. メソッド以外の属性の属性レベル ASI
属性 説明
Name ビジネス・オブジェクト・フィールド名を指定します。
Type ビジネス・オブジェクト・フィールド・タイプを指定します。
MaxLength デフォルトでは 255 文字です。
IsKey false に設定します。
IsForeignKey false に設定します。
IsRequired false に設定します。フィールドが必須の場合、true に設定します。
AppSpecificInfo この属性は次のようにフォーマット設定されます。
name=; type=; use_attribute_value=busobj.attrname(optional); getter=; setter=;
DefaultValue なし

表 7 に、メソッド以外の属性の ASI を示します。

表 7. メソッド属性の属性レベルの ASI
属性 説明
Name ビジネス・オブジェクト・フィールド名を指定します。
Type ビジネス・オブジェクト・フィールド・タイプを指定します。
Relationship 子がコンテナー属性の場合、このフィールドは Container に設定します。
IsKey false に設定します。
IsForeignKey false に設定します。
IsRequired false に設定します。
AppSpecificInfo なし
Cardinality 1

XML ビジネス・オブジェクト関数のアプリケーション固有情報

XML ビジネス・オブジェクト関数のアプリケーション固有情報は、XML ビジネ ス・オブジェクト関数の処理方法に関するアプリケーション依存の指示をコネクタ ーに提供します。XML ビジネス・オブジェクト定義を拡張または変更する場合は、定義内のアプリケーション固有情報が、コネクターが予期する構文と一致していることを 確認する必要があります。

アプリケーション固有の情報は、ビジネス・オブジェクト全体に対しても、各ビジネス・オブジェクト属性に対しても指定することができます。

ビジネス・オブジェクト・レベル ASI

ビジネス・オブジェクト ASI は type=XMLList です。テーブル・タイプが TABLE_CONVERSION でない場合は、次の ASI が存在している必要があります。

動詞 ASI

このプロパティーは、XML ビジネス・オブジェクトには使用されません。

属性レベルの ASI

ビジネス・オブジェクトの属性は、テーブルの特定の列にマップされます。

以下の属性に対して、以下の ASI が設定されています。

ビジネス・オブジェクト・ハンドラー

汎用 OneWorld ビジネス・オブジェクト・ハンドラーは、OneWorld コンポーネントを介して公開されるコンポーネントに対して一連のビジネス関数を呼び出す可能性のあるプロセスを処理します。このハンドラーは、OneWorld の XML リスト機能を使用して、OneWorld のテーブルからデータを取り出すこともできます。新規ビジネス・オブジェクトがビジネス・オブジェクト・ハンドラーに渡されると、ビジネス・オブジェクトの ASI が読み込まれ、アダプターがビジネス・オブジェクト関数を呼び出す必要があるか、あるいは XML リスト用の XML 文書を作成する必要があるかが判別されます。ASI タグ type は、呼び出しのタイプを指定します。type=BFN の場合、アダプターは呼び出しをビジネス・オブジェクト関数呼び出し側に渡し、この呼び出し側が OneWorld Java オブジェクトのインスタンスを生成し、ビジネス関数を呼び出します。ASI が type=XMLList に指定されている場合、アダプターは CreateList API 用の XML 文書を生成します。

Copyright IBM Corp. 2004, 2005