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
そして、B0100031、B0100019 などに対応して作成されたビジネス関数および子ビジネス・オブジェクトにマップされます。
上記のビジネス・オブジェクトの 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 種類のプロプラエタリー・データ・タイプをサポートします。
この OneWorld Java クラスでは、以下のメソッドが使用可能です。
OneWorld の日付フィールドにマップされる属性の値は、MM/DD/YYYY という形式で指定します。アダプターはこのストリング値を構文解析し、JDEDate オブジェクトで OneWorld API を呼び出して、日、月、および年の値を設定します。OneWorld からのデータをビジネス・オブジェクトに設定する必要がある場合、アダプターは get メソッドを使用して属性に値を設定します。
以下のメソッドが JDEMathNumeric クラスに記述されています。
以下の表に、OneWorld でサポートされるデータ型と、それに対応する WebSphere Business Integration ビジネス・オブジェクトを示します。
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 ビジネス・オブジェクトは、OneWorld のテーブルにマップされます。ビジネス・オブジェクトの属性は、テーブルの列にマップされます。
コンポーネントに同じ名前の列が複数ある場合、ODA は、属性名に「_」を付加し、数値を続けることによって、固有の属性名を生成します。例えば、フィールド AddressNumber が複数回出現する場合、生成された属性名は、AddressNumber、AddressNumber_1、AddressNumber_2 のようになります。属性の最大長は、getTemplate() API 呼び出しからの戻り値に基づいて設定されます。
イベント通知をアダプターに実装するには、以下のカスタム・ビジネス関数が必要です。
次の表に、コネクターがサポートするイベント通知機能の詳細を示します。
カラム | 説明 |
---|---|
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 には、OneWorld BO Handler が呼び出すビジネス関数にマップされる一連の属性名が含まれています。アダプターは、動詞 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=int、name=ID となります。
表 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 を示します。
属性 | 説明 |
---|---|
Name | ビジネス・オブジェクト・フィールド名を指定します。 |
Type | ビジネス・オブジェクト・フィールド・タイプを指定します。 |
Relationship | 子がコンテナー属性の場合、このフィールドは Container に設定します。 |
IsKey | false に設定します。 |
IsForeignKey | false に設定します。 |
IsRequired | false に設定します。 |
AppSpecificInfo | なし |
Cardinality | 1 |
XML ビジネス・オブジェクト関数のアプリケーション固有情報は、XML ビジネ ス・オブジェクト関数の処理方法に関するアプリケーション依存の指示をコネクタ ーに提供します。XML ビジネス・オブジェクト定義を拡張または変更する場合は、定義内のアプリケーション固有情報が、コネクターが予期する構文と一致していることを 確認する必要があります。
アプリケーション固有の情報は、ビジネス・オブジェクト全体に対しても、各ビジネス・オブジェクト属性に対しても指定することができます。
ビジネス・オブジェクト ASI は type=XMLList です。テーブル・タイプが TABLE_CONVERSION でない場合は、次の ASI が存在している必要があります。
テーブル・タイプは、次のいずれかになります。
このプロパティーは、XML ビジネス・オブジェクトには使用されません。
ビジネス・オブジェクトの属性は、テーブルの特定の列にマップされます。
以下の属性に対して、以下の ASI が設定されています。
汎用 OneWorld ビジネス・オブジェクト・ハンドラーは、OneWorld コンポーネントを介して公開されるコンポーネントに対して一連のビジネス関数を呼び出す可能性のあるプロセスを処理します。このハンドラーは、OneWorld の XML リスト機能を使用して、OneWorld のテーブルからデータを取り出すこともできます。新規ビジネス・オブジェクトがビジネス・オブジェクト・ハンドラーに渡されると、ビジネス・オブジェクトの ASI が読み込まれ、アダプターがビジネス・オブジェクト関数を呼び出す必要があるか、あるいは XML リスト用の XML 文書を作成する必要があるかが判別されます。ASI タグ type は、呼び出しのタイプを指定します。type=BFN の場合、アダプターは呼び出しをビジネス・オブジェクト関数呼び出し側に渡し、この呼び出し側が OneWorld Java オブジェクトのインスタンスを生成し、ビジネス関数を呼び出します。ASI が type=XMLList に指定されている場合、アダプターは CreateList API 用の XML 文書を生成します。