特定于应用程序的业务对象信息

业务对象定义中特定于应用程序的信息(ASI)对 BAPI 模块提供关于如何处理业务对象的应用程序相关指示信息。这些指示信息是在下列级别指定的:

业务对象级别 ASI

应当为每种类型的对象设置业务对象级别 ASI,如表 14 中所述。

表 14. 业务对象级别 ASI
对象类型 特定于应用程序的信息
表示单个 BAPI 调用的对象 type=bapi
表示 BAPI 事务的对象 type=bapi_txn
表示 BAPI ResultSet 的对象 type=bapi_resultset

查询描述级别 ASI

应当为每种类型的对象设置查询描述级别 ASI,如表 15 中所述。注意,BAPI ResultSet 业务对象没有查询描述 ASI。

表 15. 查询描述级别 ASI
对象类型 查询描述 ASI
表示单个 BAPI 调用的对象 verb ASI=NameOfBAPI
表示 BAPI 事务的对象 verb ASI=NameOfBAPI1;NameOfBAPI2;NameOfBAPI3
表示定制业务对象处理程序的对象 CBOH=bapi.client.customBOHandlerName

表示单个 BAPI 调用的对象的向后兼容性

注意,连接器支持较早发行版中的业务对象的查询描述 ASI 格式,在这些发行版中,AppSpecific 属性的值将捕获特定于 BAPI 的业务对象处理程序的类名(verb ASI= bapi.client.BOHandlerName,其中 bapi.client 是特定于 BAPI 的业务对象处理程序名的 WebSphere Business Integration 限定符,BOHandlerName 是类的名称)。您必须在业务对象处理程序名称前面包括值 client,来标识业务对象处理程序充当客户机。注意,虽然连接器支持这些较早的格式,但是 SAPODA 不会自动生成它们,因此,必须在查询描述 ASI 中按名称显式指定它们。

例如,如果您要支持较早发行版中的 SALES_ORDER_CREATEFROMDAT2 BAPI,则特定于应用程序的信息为如下所示:

AppSpecificInfo = bapi.client.sales_order_createfrom dat2
 

表示定制业务对象处理程序的对象的查询描述 ASI

对于定制业务对象处理程序,应显式设置查询描述 ASI(因为它不是由 SAPODA 生成的)并且用包名来完全限定它,其中 bapi.client 表示包名。

属性的 AppSpecificInfo

连接器使用一个属性的特定于应用程序信息的值来确定要使用哪些导入参数、导出参数和表参数。此属性的值包含前缀 I(表示导入参数)或 E(表示导出参数)。该前缀指示属性值是用来将数据传递至 SAP 应用程序还是从 SAP 应用程序中传递出来。

因为结构参数可以是导入或导出,所以它们在参数值前面使用 IE。因为表参数可以将数据传递至 BAPI 并从 BAPI 返回数据,所以它们可以同时具有 IE 参数值。

重要提示:
当使用 IE 指定参数值时,应始终使用冒号(:)分隔符。如果仅指定导入值,则该值后面必须有冒号。如果仅指定导出值,则该值前面必须有冒号。如果同时指定两个值,则冒号在导入值的后面并在导出值的前面。

图 49 举例说明了业务对象和名为 BAPI_EXAMPLE 的示例 EAPI 之间的对应项。在此示例中,简单属性(Attribute_1、Attribute_2 和 Attribute_3)仅指定导入参数或导出参数。表示子业务对象(Child_1)的属性对应于导出结构参数。表示一组子业务对象(Child_2)的属性对应于表参数。

每个子业务对象都具有一个与相应结构或表的字段对应的简单属性(分别为 Attribute_11 和 aAttribute_14)。您可以通过查看 BAPI 的详细信息来找到这些字段。

图 49. 业务对象和示例 BAPI 之间的对应项


表 16 标识特定种类属性的 ASI 的格式。

表 16. 特定种类的属性的 ASI 格式
AppSpecificInfo 格式 属性类型
IParameterName:EParameterName 简单
ITableName:ETableName 表示映射至表参数的子业务对象
IStructureName:EStructureName 表示映射至结构参数的子业务对象
IFieldName:EFieldName 表示映射至表参数或结构参数中字段的子业务对象的属性

SAPODA 自动为业务对象定义生成特定于应用程序的适当信息。建议不要更改生成的特定于应用程序的信息的参数名。

BAPI ResultSet 的属性级别 ASI

BAPI ResultSet 的业务对象结构中说明的那样,BAPI ResultSet 是一个包含对象类型的以下两个属性的包装程序对象:BAPI_QueryBAPI_ResultBAPI_Query 表示“获取列表 BAPI”,而 BAPI_Result 表示“获取详细信息 BAPI”。表 17 中描述了这两个属性的属性级别 ASI。

表 17. ResultSet 的属性级别 ASI
ResultSet 属性 特定于应用程序的信息
BAPI_Query bapi=name_Of_GetListBAPI
BAPI_Result key=key_fieldbapi=name_Of_GetDetailBAPI

BAPI_Result 对象的 Key 属性是使用属性级别 ASI key=name_Of_KeyAttribute 来标识的。业务对象处理程序使用此信息来进行性能优化。

BAPI Result 对象的 Foreign Key 属性将捕获 BAPI_Result 与 BAPI_Query 对象之间的关系。它是使用以下属性级别 ASI 来标识的:FK=BAPI_Query:BAPI_Query 的包含“键属性:键属性名称”的子对象名称

例如,FK=Query:sap_addressdata:Customer_number。BAPI 业务对象处理程序使用此信息来将 BAPI 查询对象中的键值设置到 BAPI Result 对象键属性中,然后检索“详细信息结果”以找到每个键。

Copyright IBM Corp. 1997, 2004