コネクターは、ビジネス・オブジェクト処理の最初のステップとして、ビジネス・オブジェクトを、SAP アプリケーションで処理できるフラット (階層なし) 構造に変換します。フラットな構造の形式は、ビジネス・オブジェクトのすべてのタイプ (例えば呼び出しトランザクション・ベースまたは IDoc ベースのビジネス・オブジェクト) で共通です。フラット構造は、アプリケーション固有ビジネス・オブジェクトから再フォーマットされたデータです。2 つの形式のデータの相違は、フラット構造が、ビジネス・オブジェクトの親子関係を保持していないことのみです。そのため、コネクターでは一連のルールに従ってフラットな構造を作成します。
コネクターは、ビジネス・オブジェクトをフラット構造に変換するとき、構造をメモリー内に作成し、ビジネス・オブジェクトからのデータをこの構造に組み入れます。それにより、コネクターはビジネス・オブジェクトから、以下に示すデータを SAP アプリケーションに渡します。
表 42 に、ビジネス・オブジェクトの汎用フラット構造を示します。コネクターは、WebSphere ビジネス・オブジェクトからビジネス・オブジェクト・データを追加する際に、このフラットな構造を使用します。
フィールド名 | データ型 | 長さ | 説明 |
---|---|---|---|
ATTR_NAME | CHAR | 32 | 属性名 (例えば CustomerId) |
BLANK1 | CHAR | 1 | 区切り文字 |
ATTR_VALUE | CHAR | 200 | 属性値 (例えば 00000103) |
BLANK2 | CHAR | 1 | 区切り文字 |
ISKEY | CHAR | 1 | 1= true、0 = false、属性のみ |
BLANK3 | CHAR | 1 | 区切り文字 |
ISNEW | CHAR | 1 | 1 = BO、0 = 動詞または属性 |
BLANK4 | CHAR | 1 | 区切り文字 |
PEERS | CHAR | 6 | ビジネス・オブジェクト配列のピア数を示します。 |
BLANK5 | CHAR | 1 | 区切り文字 |
OBJ_NUMBER | CHAR | 6 | 未使用 |
BLANK6 | CHAR | 1 | 区切り文字 |
APPTEXT | CHAR | 120 | オブジェクト、動詞、または属性のアプリケーション固有情報 |
BLANK7 | CHAR | 1 | 区切り文字 |
データ変換が正しく実行されるためには、フラットな構造のビジネス・オブジェクト・データは一連のルールに厳格に従う必要があります。これらのルールは、この初期データ変換ステップで定義されます。
コネクターは、フラットな構造にビジネス・オブジェクト・データを取り込む際に、トップレベルのビジネス・オブジェクトを開始位置として、各ビジネス・オブジェクトを 2 回通してループします。
子ビジネス・オブジェクトを表す属性は親に含まれません。その代わりに、データを格納している各子ビジネス・オブジェクトは、完全なビジネス・オブジェクトとして作成されています。この結果、最初に縦方向、次に横方向の順に並べられた、属性の単一のリストができあがります。
図 72 に、SAP 用 WebSphere ビジネ ス・オ ブジェクトからフラット・データ構造へのデータ変換を示します。データの変換は、最初に縦方向、次に横方向というルールに常に従って行われます。この例では、トップレベルの親ビジネス・オブジェクト SAP_Order には、SAP_LineItem (1) および SAP_LineItem (2) という 2 つの子があり、これらはピアと見なされます。SAP_LineItem (1) には、SAP_ScheduleLines という 1 つの子ビジネス・オブジェクトがあります。
ビジネス・オブジェクト定義を設計するときには、ビジネス・オブジェクトの順序および属性を把握することが重要です。次の表に、WebSphere ビジネス・オブジェクトからフラット構造への変換の結果を示します。 表 43 に、フラット・ビジネス・オブジェクト SAP_Material (キー値は ItemID) に対応するフラット構造を示します。この例では、ビジネス・オブジェクトや属性に、アプリケーション固有情報はありません。 表 44 に、IDoc Sales Order に基づく階層型ビジネス・オブジェクトのフラッ ト構造を示します。
ATTR_NAME | ATTR_VALUE | ISKEY | ISNEW | PEERS | OBJ_ NUMBER | APPTEXT |
---|---|---|---|---|---|---|
BoName | SAP_Material | 0 | 1 | 1 | (ブランク) | (ブランク) |
BoVerb | Retrieve | 0 | 0 | 1 | (ブランク) | :/CWLD /DYNAMIC_RETRIEVE |
ItemID | 000000000000001179 | 1 | 0 | 1 | (ブランク) | (ブランク) |
ShortDesc | CxIgnore | 0 | 0 | 1 | (ブランク) | (ブランク) |
ObjectEventID | SAP_124 | 0 | 0 | 1 | (ブランク) | (ブランク) |
この例では、ビジネス・オブジェクトや属性に、アプリケーション固有情報はありません。
ATTR_NAME | ATTR_VALUE | ISKEY | ISNEW | PEERS | OBJ_ NUMBER | APPTEXT |
---|---|---|---|---|---|---|
BoName | SAP_Order | 0 | 1 | 1 | (ブランク) | YXRV4B01 |
BoVerb | Create | 0 | 0 | 1 | (ブランク) | [archive:methods] |
Currency | USD | 0 | 0 | 1 | (ブランク) | E1EDK01:CURCY |
OrderId | CxIgnore | 1 | 0 | 1 | (ブランク) | E1EDK01:BELNR |
ObjectEventId | SAP_124 | 0 | 0 | 1 | (ブランク) | E1EDK01: ObjectEventId |
BoName | SAP_LineItem | 0 | 1 | 2 | (ブランク) | Z1XRV40 |
BoVerb | Create | 0 | 0 | 2 | (ブランク) | (ブランク) |
Createdby | User1 | 1 | 2 | (ブランク) | Z1XRV40:ERNAM | |
ObjectEventId | SAP_125 | 0 | 0 | 2 | (ブランク) | Z1XRV40: ObjectEventId |
BoName | SAP_ScheduleLines | 0 | 1 | 1 | (ブランク) | E1EDK14 |
BoVerb | Create | 0 | 0 | 1 | (ブランク) | (ブランク) |
Qualifier | 001 | 1 | 0 | 1 | (ブランク) | Z1XRV40:QUALF |
OrganizationId | 1000 | 0 | 0 | 1 | (ブランク) | E1EDK14:ORGID |
ObjectEventId | SAP_126 | 0 | 0 | 1 | (ブランク) | E1EDK14: ObjectEventId |
BoName | SAP_LineItem | 0 | 1 | 2 | (ブランク) | Z1XRV40 |
BoVerb | Create | 0 | 0 | 2 | (ブランク) | (ブランク) |
Createdby | User1 | 1 | 0 | 2 | (ブランク) | Z1XRV40:ERNAM |
ObjectEventId | SAP_127 | 0 | 0 | 2 | (ブランク) | Z1XRV40: ObjectEventId |
最初の 2 つの行 BoName および BoVerb が各ビジネス・オブジェクトについてコネクターにより追加されています。BoName と BoVerb は、ビジネス・オブジェクト属性として使用できないキーワードです。