业务对象结构

ALE 模块的 SAP 的 WebSphere 业务对象由一个顶级父包装程序对象和两个子对象(控制记录对象和数据记录对象)组成。本节描述以下内容:

举例说明业务对象结构

图 52 举例说明了 ALE 模块的 WebSphere 业务对象的结构。

图 52. SAP 的 WebSphere 业务对象和 IDoc 的关系


业务对象命名约定

本节描述以下内容:

标准命名约定

ALE 模块要求其业务对象遵循表 24 中描述的命名约定。SAPODA 生成除控制记录业务对象以外的所有业务对象,它依照以下约定从 IDoc 定义中获得业务对象和属性名。

表 24. IBM WebSphere SAP 业务对象命名约定
IBM WebSphere 业务对象或属性 名称 类型
父包装程序业务对象 BOprefix_BasicIDocType
注:
本章中的例子使用 SAP_sap_ 作为业务对象前缀。您在创建业务对象定义时,可以指定自己的有意义前缀。
不适用
控制记录业务对象 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 类型来生成业务对象定义,定制 IDoc 类型是从基本 IDoc 类型和扩展类型的组合中创建的。SAPODA 以下列格式为它生成的父包装程序业务对象命名:

sap_IDocType

重要提示:
当将 IDoc 扩展的业务对象定义装入 InterChange Server 资源库时,如果基本 IDoc 类型的业务对象定义在资源库中已存在且其名称与基本 IDoc 类型和扩展匹配,则您可能会遇到冲突。您必须手工解决这些冲突。

父包装程序业务对象

父包装程序业务对象的名称是前缀为用户定义前缀再后跟下划线(_)(如 sap_.)的基本 IDoc 类型。父包装程序业务对象包含四个属性:Dummy_key Control_recordData_recordTransactionId

IDoc 顶级对象 Dummy_key 属性用来将键字段从“控制”和“数据”记录映射至顶级对象中的 Dummy_key。连接器按下列方式处理 Dummy_key 映射:

  1. Dummy_key 属性的属性级别 ASI 被配置为属性路径(值从该属性中设置)。换句话说,属性级别 ASI 被设置为属性(该属性映射至顶级对象)的业务对象树中路径。值对的定界符为 ;(分号)。从子代到键属性的路径的定界符是 :(冒号)。应该为外键(FK)指定绝对路径。

    例如,DummyKey;FK=Data_record:sap_orders05_e2edk01005:IDOC_document_number"

  2. 如果连接器在此路径中检测到多基数对象,则它会使用此容器中的第一个子实例。只要多基数对象出现在业务对象树中,它们就满足这种情况。
  3. 如果 ASI 不正确或者如果映射的属性值是空的,则连接器将使事件失败并将它放置在 SAPALE_Error_Queue 中。当 ASI 配置为将对象类型值设置为 Dummy_key 时也是这种情况。注意,Dummy_key 属性只允许简单类型属性的值。

Control_recordData_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
 ]]
 

语法说明

BasicIDocType
指定基本 IDoc 类型

Ext
指定扩展类型

Pn
指定接受者的伙伴号

Pt
指定接受者的伙伴类型

Pf
指定接受者的伙伴功能

示例

AppSpecificInfo = ALEREQ01,Pn=ALESYS2,Pt=LS,Pf=EL
 

控制记录业务对象

ALE 模块对所有 IDoc 都使用通用控制记录业务对象定义。它包含控制记录的 3.x 版本(SAP 结构 EDI_DC)和 4.x 版本(SAP 结构 EDI_DC40)中存在的属性的超集。控制记录业务对象定义是与 ALE 模块一起提供的,必须将它装入业务对象资源库中。使用业务对象设计器将该业务对象装入资源库。

注:
或者,如果 IBM WebSphere InterChange Server 是集成代理程序,则您可以使用 repos_copy 命令。

表 25 列示控制记录业务对象的简单属性特性。

表 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 没有为此属性设置值。

重要提示:
当控制记录业务对象中属性的值设置为 CxIgnoreCxBlank 时,连接器对 IDoc 控制记录将其值设置为空格。

数据记录业务对象

IDoc 定义文件具有关于 IDoc 结构、IDoc 段层次结构和一些组成段的字段的信息。SAPODA 使用 IDoc 作为输入来生成数据记录业务对象及其子业务对象。子代的数目取决于 SAP 应用程序中基本 IDoc 类型的 IDoc 段定义。

顶级数据记录业务对象对应于基本 IDoc 类型。此顶级业务对象包含一个属性,该属性表示一个子业务对象或一组子业务对象(每个 IDoc 段一个)。子业务对象的结构和层次结构与基本 IDoc 类型中 IDoc 段的结构和层次结构匹配。

使用 SAPODA 从系统创建 IDoc 时,将通过在 SAP 系统内部进行调用来创建数据记录对象及其子业务对象。本节将使用 IDoc 定义文件中的字段来帮助说明如何设置业务对象的不同属性。从系统生成 IDoc 将使用在 SAP 系统内部进行的调用中的相应字段。

本节描述:

属性:数据记录业务对象

表 26 描述数据记录业务对象中每个简单属性的特性。SAPODA 生成下面描述的属性。

表 26. 简单属性:数据记录业务对象
属性名 描述
Name Name 属性的值是 IDoc 定义中 NAMETEXT 字段的修改值。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 没有为此属性设置值。

重要提示:
数据记录业务对象中的简单属性可以具有两个特殊值:CxIgnoreCxBlank。设置为 CxIgnoreCxBlank 的简单属性由段数据字符串中的空格表示。SAP 通过将一个空格字符放置在应用程序字段中来处理这些属性。

表 27 描述表示一个子业务对象或一组子业务对象的数据记录业务对象中每个属性的特性。SAPODA 生成下面描述的属性。

表 27. 表示子业务对象的属性
属性名 描述
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 及其段的名称:

简单属性中特定于应用程序的信息

连接器使用简单属性的 AppSpecificInfo 属性的值来获取 SAP 中的字段名及其在数据字符串中的位置(偏移)。

偏移值是数据字符串中属性值的第一个字符的位置。将通过从给定属性的 BYTE_FIRST 值中减去 IDoc 定义中第一个字段的 BYTE_FIRST 值中的值来计算偏移值。此值与 MaxLength 属性一起用来构建 IDoc 段的数据字符串。

简单属性的 AppSpecificInfo 属性的语法如下:

OffsetNumber+IDocFieldName
 

例如,偏移为 40、名为 SIGN 的段字段具有以下 AppSpecificInfo 值:

40+SIGN
 

表示子代的属性中特定于应用程序的信息

连接器使用表示一个子业务对象或一组子业务对象的属性的 AppSpecificInfo 属性值,来获取关于层次结构级别以及允许一个段出现的最小和最大次数的信息。SAPODA 通过从 IDoc 定义中的 LEVELLOOPMINLOOPMAX 字段获取信息来为这些属性设置 AppSpecificInfo 属性。

举例说明业务对象和 IDoc 之间的关系

图 53 举例说明了 WebSphere 数据记录业务对象和 SAP 应用程序中的 IDoc 定义之间的关系。

图 53. 数据记录业务对象和 IDoc 定义字段之间的关系


Copyright IBM Corp. 1997, 2004