ALE Module 用の SAP の WebSphere ビジネス・オブジェクトは、トップレベルの親ラッパー・オブジェクトと、制御レコード・オブジェクトとデータ・レコード・オブジェクトという 2 つの子オブジェクトから構成されます。このセクションでは、以下について説明します。
図 52 では、ALE Module 用の WebSphere ビジネス・オブジェクトの構造を 説明しています。
このセクションでは、以下について説明します。
ALE Module では、ビジネス・オブジェクトは、表 23 に示す命名規則に従っ ている必要があります。制御レコード・ビジネス・オブジェクト以外のすべてを生成する SAPODA は、これらの規則に従って、IDoc 定義からビジネス・オブジェクト名と属性名を導出します。
WebSphere Business Integration システムのコンポーネント名では、英数字とアンダースコアー文字 (_) のみをサポートします。したがって、生成されたビジネス・オブジェクト定義で コンポーネントを命名する際、SAPODA によって、IDoc セグメントのフィ ールド記述またはフィールド名内の特殊文字は、アンダースコアー文字に置き 換えられます。例えば、SAPODA は次に示す SAP 記述内のスペース、括弧、およびピリオドを、対応する属性名ではアンダースコアーに変更します。
Partner function (e.g. sold-to party, ship-to party)
SAPODA は生成されたビジネス・オブジェクト定義内で上記の記述を以下のように表します。
Partner_function__e_g__sold_to_party__ship_to_party__
SAPODA は、ビジネス・オブジェクト定義内のすべての属性名が固有であることを保証します。1 つの IDoc に同じフ ィールド記述を持つ複数のフィールドが存在する場合、SAPODA は生成した属 性名にカウンター・サフィックスを追加します。
属性を命名する際に、変更された属性名が次の条件に該当すると、SAPODA はストリングを属性名の前に付加します。
SAPODA が IDoc 拡張に基づいてビジネス・オブジェクト定義を生成する場合 は、ビジネス・オブジェクトの命名規則に示した命 名規則とはやや異なる命名規則が使用されます。この場合、表 24 に示すように 、拡張名が含まれます。
IBM WebSphere のビジネス・オブジェクトまたは属性 | 名前 | タイプ |
---|---|---|
親ラッパー・ビジネス・オブジェクト | BOprefix_BasicIDocType_ExtensionName | なし |
制御レコード・ビジネス・オブジェクト | Control_record | sap_idoccontrol |
データ・レコード・ビジネス・オブジェクト | Data_record | BOprefix_BasicIDocType_cwdata |
データ・レコード子ビジネス・オブジェクト | BOprefix_BasicIDocType_ ExtensionName_IDocSegmentName | BOprefix_BasicIDocType_ ExtensionName_IDocSegmentName |
データ・レコード属性 | IDocFieldText または IDocFieldName | String |
拡張を指定する AppSpecificInfo プロパティーの構文については、親ラッパー・ビジネス・オブジェクトを参照してください。
親ラッパー・ビジネス・オブジェクトの名前は、基本 IDoc タイプの前に、ユーザー定義のプレフィックスとアンダースコアー (_)、例えば sap_ を付けたものです。親ラッパー・ビジネス・オブジェクトには、Dummy_key、Control_record、Data_record、および TransactionId の 4 つの属性が含まれます。
IDoc のトップレベル・オブジェクトの Dummy_key 属性は、制御レコードおよびデータ・レコードのキー・フィールドをトップレベルのオブジェクトの Dummy_key にマップする目的で使用します。コネクターは、Dummy_key のマッピングを次のように処理します。
例えば、DummyKey;FK=Data_record:sap_orders05_e2edk01005:IDOC_document_number" となります。
Control_record 属性および Data_record 属性は、単一カーディナリティーの子ビジネス・オブジェクトを表します。
Control_record 属性のタイプは sap_idoccontrol です。このビジネス・オブジェクト定義は ALE Module とともに提供されます。
Data_record 属性のタイプは BOprefix_BasicIDocType_cwdata です。このビジネス・オブジェクト定義には、SAP アプリケーションの基本 IDoc タイプの IDoc セグメント定義に応じて、1 つ以上の子ビジネス・オブジェクトが含まれます。
TransactionId 属性の値に応じて、サービス呼び出し要求を処理する際にコネクターが TID を管理するかどうかが決まります。要求処理の際に TID 管理を行いたくない場合は、TransactionID 属性の値を設定しないでください。
親ラッパー・ビジネス・オブジェクトのアプリケーション固有情報は、以下の項目を表します。
親ラッパー・オブジェクトの AppSpecificInfo プロパティーの構文は次のとおりです。
BasicIDocType [,Ext=ExtensionName [,Pn=PartnerNumberOfRecipient [,Pt= PartnerTypeOfRecipient[,Pf=PartnerFunctionOfRecipient ]]
AppSpecificInfo = ALEREQ01,Pn=ALESYS2,Pt=LS,Pf=EL
ALE Module では、すべての IDoc に対して汎用の制御レコード・ビジネス・オブジェクト定義が使用されます。これには、制御レコードの 3.x バージョン (SAP 構造体 EDI_DC) および 4.x バージョン (SAP 構造体 EDI_DC40) で使用される属性のスーパーセットが含まれています。制御レコード・ビジネス・オブジェクト定義は、ALE Module とともに提供されます。また、ビジネス・オブジェクト・リポジトリーにロードする必要があります。Business Object Designer Express を使用して、ビジネス・オブジェクトをリポジトリーにロードします。
表 25 に、制御レコード・ビジネス・オブジェクトの単純属性 プロパティーのリストを示します。
プロパティー名 | 説明 |
---|---|
Name | Name プロパティーの値は、IDoc 定義の TEXT フィールドの値を変更したものです。 SAPODA は、ビジネス・オブジェクトの命名規則で 説明したとおり、名前に英数字とアンダースコアー文字 (_) のみが含ま れるようにするために、特殊文字 (ピリオド、スラッシュ、スペースなど) を アンダースコアーに置き換えます。 |
Type | データのタイプを指定します。SAPODA はこの値を String に設定します。 |
MaxLength | SAPODA は MaxLength の値を IDoc 定義内の LENGTH フィールドから導出します。 |
IsKey | SAPODA は、ビジネス・オブジェクトの最初の属性について、このプロパティーを true に設定します。 |
IsForeignKey | SAPODA はこの値を false に設定します。 |
IsRequired | IsRequired プロパティーは、属性が値を含んでいる必要があるかどうかを指定します。SAPODA は、制御レコード・オブジェクト内の Name_of_table_structure 属性の場合のみ、このプロパティーを true に設定します。 |
AppSpecificInfo | SAPODA は、この値を IDoc 定義の NAME フィールドから導出します。 |
DefaultValue | 実行時値がない場合にこの属性に割り当てる値を指定します。SAPODA は、このプロパティーの値を設定しません。 |
IDoc 定義ファイルには、IDoc の構造、IDoc セグメント階層、およびセグメントを構成するフィールドに関する情報が含まれています。SAPODA は、データ・レコード・ビジネス・オブジェクトとその子ビジネス・オブジェクトを生成するための入力として IDoc を使用します。子の数は、SAP アプリケーションの基本 IDoc タイプの IDoc セグメント定義に依存します。
データ・レコード・ビジネス・オブジェクトのトップレベルは、基本 IDoc タイプに対応します。このトップレベル・ビジネス・オブジェクトには、子ビジネス・オブジェクトまたは子ビジネス・オブジェクトの配列 (各要素が各 IDoc セグメントに対応) を表す属性が含まれています。子ビジネス・オブジェクトの構造と階層は、基本 IDoc タイプの IDoc セグメントの構造と階層に一致します。
SAPODA を用いてシステムから IDoc を生成すると、SAP システム自体に呼び出しを行なうことによって、データ・レコード・オブジェクトおよびその子ビジネス・オブジェクトが作成されます。ビジネス・オブジェクトのさまざまなプロパティーの設定方法を示す上で役立つように、IDoc 定義ファイルからのフィールドがこのセクションで使用されます。システムからの IDoc の生成には、SAP システムに対して行なわれた呼び出しからの該当フィールドが使用されます。
このセクションで説明する内容は次のとおりです。
表 26 は、データ・レコード・ビジネス・オブジェクトの各単純属性のプロパティーを説明したものです。SAPODA は、以下のプロパティーを生成します。
プロパティー名 | 説明 |
---|---|
Name | Name プロパティーの値は IDoc 定義の中の NAME または TEXT フィールドの修正された値です。 SAPODA は、ビジネス・オブジェクトの命名規則で説 明したとおり、名前に英数字とアンダースコアー文字 (_) のみが含ま れるようにするために、特殊文字 (ピリオド、スラッシュ、スペースなど) を アンダースコアーに置き換えます。 |
Type | データのタイプを指定します。SAPODA はこの値を String に設定します。 |
MaxLength | SAPODA は MaxLength の値を IDoc 定義内の LENGTH フィールドから導出します。 |
IsKey | SAPODA は、各ビジネス・オブジェクトの最初の属性について、このプロパティーを true に設定します。その他すべての属性については、SAPODA はこの値を false に設定します。 |
IsForeignKey | SAPODA はこの値を false に設定します。 |
IsRequired | 属性が値を含んでいる必要があるかどうかを指定します。SAPODA はこの値を false に設定します。 |
AppSpecificInfo | SAPODA は AppSpecificInfo プロパティー の値を、IDoc 定義内の Name フィールドの値の前にオフセット 値と + 文字を付加して設定します。例えば、40 の オフセットを持つ SIGN という名前のセグメント・フィールドの 場合、AppSpecificInfo に対して 40+SIGN という 値を設定します。詳細については、単純属性のアプリケーション固有情報を参照してください。 |
DefaultValue | 実行時値がない場合にこの属性に割り当てる値を指定します。SAPODA は、このプロパティーの値を設定しません。 |
表 27 は、子ビジネス・オブジェクトまたは子ビジネス・オブ ジェクトの配列を表す、データ・レコード・ビジネス・オブジェクトの各属性のプロ パティーを説明したものです。SAPODA は、以下のプロパティーを生成します。
プロパティー名 | 説明 |
---|---|
Name | SAPODA はこの値を BOprefix_BasicIDocTypeIdocSegmentName に設定します。例えば、SAP_E2ALER1001 のようになります。 |
Type | SAPODA はこの値を以下のように設定します。BOprefix_BasicIDocTypeIdocSegmentName |
ContainedObjectVersion | SAPODA はこの値を 1.0.0 に設定します。 |
Relationship | SAPODA はこの値を containment に設定します。 |
IsKey | SAPODA はこの値を false に設定します。 |
IsForeignKey | SAPODA はこの値を false に設定します。 |
IsRequired | IsRequired プロパティーでは、子ビジネス・オブジェクトが必ず存在しなければならないかどうかを指定します。SAPODA は、IDoc 定義の対応するセグメントの STATUS フィールドの値が OPTIONAL である場合には、この値を false に設定します。SAPODA は、IDoc 定義の STATUS フィールドの値が MANDATORY である場合には、このプロパティーを true に設定します。 |
AppSpecificInfo | AppSpecificInfo プロパティーには、階層レベルや、許容されるセグメントの最小数および最大数についての情報が格納されます。 詳細については、子を表す属性のアプリケーション固有情報を参照してください。 |
Cardinality | IDoc 定義内の LOOPMAX フィールドの値が 1 である場合、SAPODA はこの値を 1 に設定します。LOOPMAX の値が 1 より大きい場合、SAPODA はこの値を n に設定します。 |
このセクションでは、コネクターが AppSpecificInfo プロパティーの値を使用する方法を、次の 3 つの場合について説明します。
コネクターは、AppSpecificInfo プロパティーの値をデータ・レコードおよびそのそれぞれの子のビジネス・オブジェクト・レベルで使用し、関係付けられている IDoc およびそのセグメントの名前を取得します。
IDocType_CWDATA
例えば、ALERQ01 という名前の IDoc である場合、SAPODA は AppSpecificInfo プロパティーの値を ALERQ01_CWDATA として作成します。
コネクターは、単純属性の AppSpecificInfo プロパティーの値を使用して、SAP でのフィールド名と、データ・ストリングでのその位置 (オフセット) を取得します。
オフセット値は、データ・ストリングにおける、属性値の先頭の文字の位置です。オフセット値は、IDoc 定義の最初のフィールドの BYTE_FIRST 値の値を、特定の属性の BYTE_FIRST 値から差し引くことで算出されます。この値は、MaxLength プロパティーとともに、IDoc セグメントのデータ・ストリングを作成するために使用されます。
単純属性の AppSpecificInfo プロパティーの構文は以下のようになります。
OffsetNumber+IDocFieldName
例えば、40 のオフセットを持つ SIGN という名前のセグメント・フィールドは AppSpecificInfo に対して以下の値を持ちます。
40+SIGN
コネクターは、子ビジネス・オブジェクトまたは子ビジネス・オブジェクトの配列を表す属性の AppSpecificInfo プロパティーの値を使用して、階層レベルや、許容されるセグメントの最小数および最大数についての情報を取得します。SAPODA は、IDoc 定義内の LEVEL、LOOPMIN および LOOPMAX フィールドから情報を取得することによって、これらの属性に対して AppSpecificInfo プロパティーを設定します。
図 53 に、WebSphere データ・レコード・ビジネス・オブジェクトと、SAP アプリケーションの IDoc 定義との関係を示します。