业务对象定义中特定于应用程序的信息对连接器提供关于如何处理业务对象的应用程序相关指示信息。此信息包括:
如果您扩展或修改特定于应用程序的业务对象,则确保业务对象定义中特定于应用程序的信息与连接器期望的语法匹配。
以下各节更详细地讨论了此功能。
顶级业务对象的查询描述指定 vDynRetBOH 业务对象处理程序的类。此特定于应用程序的信息应始终是以下内容:
sap.bapi.vDynRetBOH
属性的特定于应用程序的信息指定以下信息:
特定于应用程序的信息格式由 4 个名称-值参数组成,每个参数包括参数名及其值。将用冒号(:)定界设置的每个参数。
特定于应用程序的属性信息的格式如下所示。方括号([
])括起可选参数。垂直条(|)分隔一组选项的成员。保留冒号作为定界符。
TN=TableName:CN=ColumnName:[FK=[..]fk_attributeName]:[OP=GT|GE|EQ|NE|LE|LT|LIKE]
图 60 描述每个名称-值参数。
参数 | 描述 |
---|---|
TN=TableName | 数据库表的名称 |
CN=ColumnName | 数据库表列(字段)的名称 |
FK=[..]fk_attribute Name | 此属性的值取决于外键关系是存储在父业务对象中还是存储在当前业务对象中:
如果属性不是外键,则不要在特定于应用程序的信息中包括此参数。 |
OP=GT|GE|EQ|NE|LE|LT| LIKE | 操作数选项为:
建议您指定 EQ 以使性能达到最高。如果未指定操作数,则连接器使用 EQ。 |
每个简单属性的必需参数是表名和列名。操作数缺省为 EQ(等于)。以下示例举例说明了基本格式:
TN=KNA1:CN=KUNNR
允许业务对象内的简单属性不具有对特定于应用程序的信息字段指定的值(即 0 长度)。连接器忽略这样属性。这是最方便的方法,确保连接器不处理用来分隔相邻组的子业务对象的占位符属性。
如果业务对象的任何属性中没有任何特定于应用程序的信息来为连接器构建或执行查询提供足够的信息,则连接器返回故障。
图 63 提供了一个具有两个外键的 WebSphere 业务对象示例,这两个外键引用业务对象内的属性。在这种情况下,业务对象在两个表中表示数据,一个表包含地址数据,另一个表包含州/省和国家或地区缩写的查找数据。为了处理此数据,连接器执行两次读表操作。
表 37 在示例 SAP_Address
中描述了每个属性的表名、列名、键和外键记录:
属性 | 表名 | 列名 | 键 | 外键 | 缺省值 |
---|---|---|---|---|---|
address_id | ADRC | ADDRNUMBER | true |
|
|
city | ADRC | CITY1 | false |
|
|
state | ADRC | REGION | false |
|
|
country | ADRC | LAND1 | false |
|
|
language | T005U | SPRAS | true |
| E |
fk_country | T005U | LAND1 | false | FK=country |
|
fk_state | T005U | BLAND | false | FK=state |
|
state_description | T005U | BEZEI | false |
|
|
如果给出表 37 中的信息,则 fk_state 属性的特定于应用程序的信息是:
TN=T005U:CN=BLAND:FK=state
fk_country 属性的特定于应用程序的信息是:
TN=T005U:CN=LAND1:FK=country
以下 SELECT 语句举例说明了 WHERE 子句,连接器构建该子句以从由 SAP_Address 表示的表中检索数据:
SELECT * FROM ADRC WHERE ADDRNUMBER = address_idValue SELECT * FROM T005U WHERE SPRAS = 'E' AND LAND1 = countryValue AND BLAND = stateValue