ALE 模块的 SAP 的 WebSphere 业务对象由一个顶级父包装程序对象和两个子对象(控制记录对象和数据记录对象)组成。本节描述以下内容:
图 52 举例说明了 ALE 模块的 WebSphere 业务对象的结构。
图 52. SAP 的 WebSphere 业务对象和 IDoc 的关系
本节描述以下内容:
ALE 模块要求其业务对象遵循表 24 中描述的命名约定。SAPODA
生成除控制记录业务对象以外的所有业务对象,它依照以下约定从 IDoc
定义中获得业务对象和属性名。
表 24. IBM WebSphere SAP 业务对象命名约定
IBM WebSphere 业务对象或属性 | 名称 | 类型 |
---|---|---|
父包装程序业务对象 | BOprefix_BasicIDocType
| 不适用 |
控制记录业务对象 | Control_record | sap_idoccontrol |
数据记录业务对象 | Data_record | BOprefix_BasicIDocType_cwdata |
数据记录子业务对象 | BOprefix_BasicIDocType_ IDocSegmentName | BOprefix_BasicIDocType_ IDocSegmentName |
数据记录属性 | IDocFieldName 或 IDoc 字段描述 |
当生成业务对象时,用户可以选择 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 保证业务对象定义中的所有属性名都是唯一的。如果 IDoc 有多个字段具有相同字段描述,则 SAPODA 将一个计数器后缀添加至生成的属性名。
当命名属性时,如果更改的属性名符合以下条件,则 SAPODA 将在属性名前面加上一个字符串:
您可以根据定制 IDoc 类型来生成业务对象定义,定制 IDoc 类型是从基本 IDoc 类型和扩展类型的组合中创建的。SAPODA 以下列格式为它生成的父包装程序业务对象命名:
sap_IDocType
父包装程序业务对象的名称是前缀为用户定义前缀再后跟下划线(_)(如 sap_.)的基本 IDoc 类型。父包装程序业务对象包含四个属性:Dummy_key 、Control_record、Data_record 和 TransactionId。
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 模块一起提供的。
Data_record 属性的类型是 BOprefix_BasicIDocType_cwdata。此业务对象定义包含一个或多个子业务对象,这取决于 SAP 应用程序中基本 IDoc 类型的 IDoc 段定义。
TransactionId 属性中的值确定连接器在处理服务调用请求时是否管理 TID。如果您不想对请求处理进行 TID 管理,则不要为 TransactionID 属性设置值。
父包装程序业务对象的特定于应用程序的信息指示以下内容:
父包装程序对象的 AppSpecificInfo 属性具有以下语法:
BasicIDocType [,Pn=PartnerNumberOfRecipient [,Pt= PartnerTypeOfRecipient[,Pf=PartnerFunctionOfRecipient ]]
AppSpecificInfo = ALEREQ01,Pn=ALESYS2,Pt=LS,Pf=EL
ALE 模块对所有 IDoc 都使用通用控制记录业务对象定义。它包含控制记录的 3.x 版本(SAP 结构 EDI_DC)和 4.x 版本(SAP 结构 EDI_DC40)中存在的属性的超集。控制记录业务对象定义是与 ALE 模块一起提供的,必须将它装入业务对象资源库中。使用业务对象设计器将该业务对象装入资源库。
表 25 列示控制记录业务对象的简单属性特性。
属性名 | 描述 |
---|---|
Name | Name 属性的值是 IDoc 定义中 TEXT 字段的修改值。SAPODA 用下划线替换特殊字符(如句点、斜杠和空格),以便名称仅包含字母数字字符和下划线字符(_),如业务对象命名约定中所述。 |
Type | 指定数据的类型。SAPODA 将其值设置为 String。 |
MaxLength | SAPODA 从 IDoc 定义中的 LENGTH 字段获取 MaxLength 的值。 |
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 从 IDoc 定义中的 LENGTH 字段获取 MaxLength 的值。 |
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 属性指定子业务对象是否必须存在。如果 IDoc 定义中相应段的 STATUS 字段的值为 OPTIONAL,则 SAPODA 将该属性的值设置为 false。如果 IDoc 定义中 STATUS 字段具有值 MANDATORY,则 SAPODA 将此属性设置为 true 。 |
AppSpecificInfo | AppSpecificInfo 属性包含关于层次结构级别以及允许一个段出现的最小和最大次数的信息。有关更多信息,请参阅表示子代的属性中特定于应用程序的信息。 |
Cardinality | 如果 IDoc 定义中的 LOOPMAX 字段的值是 1,则 SAPODA 将该属性的值设置为 1。如果 LOOPMAX 的值大于 1,则 SAPODA 将该属性的值设置为 n。 |
本节描述连接器如何使用 AppSpecificInfo 属性的值:
连接器使用数据记录及其每个子代的业务对象级别的 AppSpecificInfo 属性值,来获取相关 Idoc 及其段的名称:
IDocType_CWDATA
例如,如果给出名为 ALERQ01 的 IDoc,则 SAPODA 将 AppSpecificInfo 属性的值创建为 ALERQ01_CWDATA。
连接器使用简单属性的 AppSpecificInfo 属性的值来获取 SAP 中的字段名及其在数据字符串中的位置(偏移)。
偏移值是数据字符串中属性值的第一个字符的位置。将通过从给定属性的 BYTE_FIRST 值中减去 IDoc 定义中第一个字段的 BYTE_FIRST 值中的值来计算偏移值。此值与 MaxLength 属性一起用来构建 IDoc 段的数据字符串。
简单属性的 AppSpecificInfo 属性的语法如下:
OffsetNumber+IDocFieldName
例如,偏移为 40、名为 SIGN 的段字段具有以下 AppSpecificInfo 值:
40+SIGN
连接器使用表示一个子业务对象或一组子业务对象的属性的 AppSpecificInfo 属性值,来获取关于层次结构级别以及允许一个段出现的最小和最大次数的信息。SAPODA 通过从 IDoc 定义中的 LEVEL、LOOPMIN 和 LOOPMAX 字段获取信息来为这些属性设置 AppSpecificInfo 属性。
图 53 举例说明了 WebSphere 数据记录业务对象和 SAP 应用程序中的 IDoc 定义之间的关系。