• 検索結果がありません。

ABAP Extension module でのビジネス・オブジェクトの処理

ドキュメント内 SAP4X.PS (ページ 81-95)

この章では、ABAP Extension module のビジネス・オブジェクト処理について説明 します。コネクターがビジネス・オブジェクトを処理する方法の詳細を示します。

この章は、コネクターの Java コンポーネントおよび ABAP コンポーネントでのビ ジネス・オブジェクトの処理過程を示すことを目的としています。

この章の内容は以下のとおりです。

v 65ページの『ビジネス・オブジェクトのフラット構造への変換』

v 68ページの『ABAP Handler へのビジネス・オブジェクト発送』

v 69ページの『ABAP Handler によるビジネス・オブジェクト・データの処理』

v 75ページの『フラット構造のビジネス・オブジェクトへの変換』

IBM WebSphere Business Integration Adapter for mySAP.com の extension module の ビジネス・オブジェクト処理は、使用されている特定のネイティブ SAP API に関 係なく、すべてのビジネス・オブジェクトについて同じです。例えば、呼び出しト ランザクションまたは IDoc に基づいてビジネス・オブジェクトを開発する場合、

ビジネス・オブジェクト・データは同じ方法で処理されます。この処理は、ビジネ ス・オブジェクトがイベント通知の一部として実行された検索として SAP アプリ ケーションに送信される場合でも、ビジネス・オブジェクト要求として送信される 場合でも同じです。ビジネス・オブジェクトの動詞も処理を変更しません。

図12 に、アプリケーション固有ビジネス・オブジェクトからフラット (階層なし) 構造への変換および処理と、アプリケーション固有ビジネス・オブジェクトへの逆 方向の変換および処理を示します。SAP アプリケーションから渡されるビジネス・

オブジェクト・データは、このアプリケーションに渡されるデータと同じ構造を持 っている必要がありますが、値は異なっている可能性があります。

© Copyright IBM Corp. 1997, 2003

63

ビジネス・オブジェクト処理は、4 つのステップから構成されます。以下に示す 4 つのステップは、図12 の番号に対応しています。

1. コネクターはアプリケーション固有ビジネス・オブジェクトを、ビジネス・オブ ジェクト・データを含んだフラットな構造に変換し、そのデータを SAP アプリ ケーションに渡します。

2. コネクターの機能モジュール /CWLD/RFC_DO_VERB_NEXTGEN は、ビジネス・オブ ジェクト・データを動的に ABAP Handler に転送します。

3. ABAP Handler は、ビジネス・オブジェクト・データを処理し、ビジネス・オブ

ジェクト応答データを生成し、/CWLD/RFC_DO_VERB_NEXTGEN を介して新規ビジネ ス・オブジェクト・データをコネクターに戻します。

4. コネクターは新しいビジネス・オブジェクト・データを受け取り、このデータ と、アプリケーション固有ビジネス・オブジェクトのビジネス・オブジェクト定 義を使用して新しいビジネス・オブジェクトを作成し、統合ブローカーに渡しま す。

12. ビジネス・オブジェクトの処理

ビジネス・オブジェクトのフラット構造への変換

コネクターは、ビジネス・オブジェクト処理の最初のステップとして、ビジネス・

オブジェクトを、SAP アプリケーションで処理できるフラット (階層なし) 構造に 変換します。フラットな構造の形式は、ビジネス・オブジェクトのすべてのタイプ

(例えば呼び出しトランザクション・ベースまたは IDoc ベースのビジネス・オブジ

ェクト) で共通です。フラット構造は、アプリケーション固有ビジネス・オブジェ クトから再フォーマットされたデータです。2 つの形式のデータの相違は、フラッ ト構造が、ビジネス・オブジェクトの親子関係を保持していないことのみです。そ のため、コネクターでは一連のルールに従ってフラットな構造を作成します。

コネクターは、ビジネス・オブジェクトをフラット構造に変換するとき、構造をメ モリー内に作成し、ビジネス・オブジェクトからのデータをこの構造に組み入れま す。それにより、コネクターはビジネス・オブジェクトから、以下に示すデータを SAP アプリケーションに渡します。

v ビジネス・オブジェクト名

v ビジネス・オブジェクトのアプリケーション固有情報 v ビジネス・オブジェクトの動詞

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

v 属性名

v 属性プロパティー IsKey v 属性プロパティー AppText

v 属性値

表6 に、ビジネス・オブジェクトの汎用フラット構造を示します。コネクターは、

WebSphere ビジネス・オブジェクトからビジネス・オブジェクト・データを追加す

る際に、このフラットな構造を使用します。

6. SAPWebSphere ビジネス・オブジェクトの汎用フラット構造表現

フィールド名 データ型 長さ 説明

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 区切り文字

注: BLANKn フィールド名は、常に単一の文字 (CHAR) スペースを含みます。ま

た、値を取り込むことはできません。

5 ABAP Extension moduleでのビジネス・オブジェクトの処理

65

データ変換が正しく実行されるためには、フラットな構造のビジネス・オブジェク ト・データは一連のルールに厳格に従う必要があります。これらのルールは、この 初期データ変換ステップで定義されます。

v 各ビジネス・オブジェクト属性はフラットな構造に、1 行が 1 つの属性に対応す るように連続的に配置されます。

v 階層型のビジネス・オブジェクトは、最初に縦方向に変換され、次に横方向に変 換されます。

コネクターは、フラットな構造にビジネス・オブジェクト・データを取り込む際 に、トップレベルのビジネス・オブジェクトを開始位置として、各ビジネス・オブ ジェクトを 2 回通してループします。

1. 最初のパスでは、コネクターはすべての単純な属性を設定します。各属性は、フ ラットな構造の 1 行に相当します。

2. 2 回目のパスでは、それぞれの子ビジネス・オブジェクトについて、ステップ 1 と同じ処理を再帰的に実行します。

子ビジネス・オブジェクトを表す属性は親に含まれません。その代わりに、データ を格納している各子ビジネス・オブジェクトは、完全なビジネス・オブジェクトと して作成されています。この結果、最初に縦方向、次に横方向の順に並べられた、

属性の単一のリストができあがります。

67ページの図13 に、SAP 用 WebSphere ビジネス・オブジェクトからフラット・

データ構造へのデータ変換を示します。データの変換は、最初に縦方向、次に横方 向というルールに常に従って行われます。この例では、トップレベルの親ビジネ ス・オブジェクト SAP_Order には、SAP_LineItem (1) および SAP_LineItem (2) と いう 2 つの子があり、これらはピアと見なされます。SAP_LineItem (1) には、

SAP_ScheduleLines という 1 つの子ビジネス・オブジェクトがあります。

ビジネス・オブジェクト定義を設計するときには、ビジネス・オブジェクトの順序 および属性を把握することが重要です。次の表に、WebSphere ビジネス・オブジェ クトからフラット構造への変換の結果を示します。 表7 に、フラット・ビジネス・

オブジェクト SAP_Material (キー値は ItemID) に対応するフラット構造を示しま す。この例では、ビジネス・オブジェクトや属性に、アプリケーション固有情報は ありません。 68ページの表8 に、IDoc Sales Order に基づく階層型ビジネス・オ ブジェクトのフラット構造を示します。

7. フラットなビジネス・オブジェクト SAP_Material

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 (ブランク) (ブランク)

この例では、ビジネス・オブジェクトや属性に、アプリケーション固有情報はあり ません。

13. ビジネス・オブジェクトからフラットな構造への変換

5 ABAP Extension moduleでのビジネス・オブジェクトの処理

67

8. IDoc Sales Order に基づく階層型ビジネス・オブジェクト

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 は、ビジネス・オブジェクト属 性として使用できないキーワードです。

ABAP Handler へのビジネス・オブジェクト発送

ビジネス・オブジェクト・データは、フラットな構造に変換されると、アダプター の ABAP 機能モジュール /CWLD/RFC_DO_VERB_NEXTGEN が呼び出されることによ り、SAP メモリーに渡されます。/CWLD/RFC_DO_VERB_NEXTGEN は、ビジネス・オブ ジェクト・データを操作せず、後続の処理を行う適切な ABAP Handler に発送する のみです。/CWLD/RFC_DO_VERB_NEXTGEN は、ビジネス・オブジェクト・データを

ABAP Handler に渡すと、ビジネス・オブジェクト・データが戻されるまで待機し

ます。

注: すべてのビジネス・オブジェクト検索および要求は、

/CWLD/RFC_DO_VERB_NEXTGEN を通じて処理されることに注意してください。

/CWLD/RFC_DO_VERB_NEXTGEN は、ビジネス・オブジェクトの動詞のアプリケーショ ン固有情報を使用して、どの ABAP Handler がビジネス・オブジェクト・データを 処理するかを決定します。実行時には、/CWLD/RFC_DO_VERB_NEXTGEN は動詞のアプ リケーション固有情報を読み取り、指定された ABAP Handler にビジネス・オブジ ェクト・データを渡します。

ドキュメント内 SAP4X.PS (ページ 81-95)