业务对象定义中特定于应用程序的信息(ASI)对 BAPI 模块提供关于如何处理业务对象的应用程序相关指示信息。这些指示信息是在下列级别指定的:
应当为每种类型的对象设置业务对象级别 ASI,如表 14 中所述。
对象类型 | 特定于应用程序的信息 |
---|---|
表示单个 BAPI 调用的对象 | type=bapi |
表示 BAPI 事务的对象 | type=bapi_txn |
表示 BAPI ResultSet 的对象 | type=bapi_resultset |
应当为每种类型的对象设置查询描述级别 ASI,如表 15 中所述。注意,BAPI ResultSet 业务对象没有查询描述 ASI。
对象类型 | 查询描述 ASI |
---|---|
表示单个 BAPI 调用的对象 | verb ASI=NameOfBAPI |
表示 BAPI 事务的对象 | verb ASI=NameOfBAPI1;NameOfBAPI2;NameOfBAPI3 |
表示定制业务对象处理程序的对象 | CBOH=bapi.client.customBOHandlerName |
注意,连接器支持较早发行版中的业务对象的查询描述 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(因为它不是由 SAPODA 生成的)并且用包名来完全限定它,其中 bapi.client 表示包名。
连接器使用一个属性的特定于应用程序信息的值来确定要使用哪些导入参数、导出参数和表参数。此属性的值包含前缀 I(表示导入参数)或 E(表示导出参数)。该前缀指示属性值是用来将数据传递至 SAP 应用程序还是从 SAP 应用程序中传递出来。
因为结构参数可以是导入或导出,所以它们在参数值前面使用 I 或 E。因为表参数可以将数据传递至 BAPI 并从 BAPI 返回数据,所以它们可以同时具有 I 和 E 参数值。
图 49 举例说明了业务对象和名为 BAPI_EXAMPLE 的示例 EAPI 之间的对应项。在此示例中,简单属性(Attribute_1、Attribute_2 和 Attribute_3)仅指定导入参数或导出参数。表示子业务对象(Child_1)的属性对应于导出结构参数。表示一组子业务对象(Child_2)的属性对应于表参数。
每个子业务对象都具有一个与相应结构或表的字段对应的简单属性(分别为 Attribute_11 和 aAttribute_14)。您可以通过查看 BAPI 的详细信息来找到这些字段。
表 16 标识特定种类属性的 ASI 的格式。
AppSpecificInfo 格式 | 属性类型 |
---|---|
IParameterName:EParameterName | 简单 |
ITableName:ETableName | 表示映射至表参数的子业务对象 |
IStructureName:EStructureName | 表示映射至结构参数的子业务对象 |
IFieldName:EFieldName | 表示映射至表参数或结构参数中字段的子业务对象的属性 |
SAPODA 自动为业务对象定义生成特定于应用程序的适当信息。建议不要更改生成的特定于应用程序的信息的参数名。
如BAPI ResultSet 的业务对象结构中说明的那样,BAPI ResultSet
是一个包含对象类型的以下两个属性的包装程序对象:BAPI_Query 和
BAPI_Result。BAPI_Query 表示“获取列表 BAPI”,而
BAPI_Result 表示“获取详细信息 BAPI”。表 17 中描述了这两个属性的属性级别 ASI。
ResultSet 属性 | 特定于应用程序的信息 |
---|---|
BAPI_Query | bapi=name_Of_GetListBAPI |
BAPI_Result | key=key_field;bapi=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 对象键属性中,然后检索“详细信息结果”以找到每个键。