ABAP 扩展模块的业务对象开发包括为您要支持的每个查询描述创建特定于应用程序的业务对象定义和相关的 ABAP 处理程序。
要开发特定于应用程序的业务对象,您必须创建支持您的业务需要的业务对象定义。IBM WebSphere Business Integration mySAP.com 适配器(SAP R/3 V3.x)包括一些工具,这些工具有助于在 SAP 应用程序中开发业务对象定义。尽管您可以使用业务对象设计器或文本编辑器来为 ABAP 扩展模块创建业务对象定义,但我们建议您最初使用适配器的业务对象开发工具。这些工具使用 SAP 应用程序的本机定义作为模板。
对于您可以开发的每个特定于应用程序的业务对象定义,您必须通过使用适配器提供的 ABAP 处理程序或通过开发定制 ABAP 处理程序来支持它。ABAP 处理程序是将数据输入和输出 SAP 应用程序数据库的机制。
以 ABAP 功能模块的形式实现适配器的 ABAP 处理程序。ABAP 处理程序是一个或多个功能模块,这些模块协同工作以完成来自业务对象路由器 Y_XR_RFC_DO_VERB_NEXTGEN 的业务对象检索或请求。ABAP 处理程序负责将业务对象数据传递至 SAP 应用程序和从 SAP 应用程序中传递出来。
要开发 ABAP 处理程序,您必须了解连接器如何将数据输入和输出 SAP 应用程序以及在此过程中该数据采用哪种格式。有关业务对象处理的进一步描述,请参阅ABAP 扩展模块概述。有关业务对象处理的详细描述,请参阅ABAP 扩展模块中的业务对象处理。
适配器提供的 ABAP 处理程序使用 SAP 本机 API,这些 API 使 ABAP 处理程序能够将数据传递至 SAP 应用程序和从 SAP 应用程序中传递出来。WebSphere Business Integration 系统已实现以下本机 API:
ABAP SQL 是 SAP 独有的 SQL 版本。它独立于数据库和平台,所以无论您编写哪一种 SQL 代码,您都可以在 SAP 支持的任何数据库和平台组合上运行它。ABAP SQL 的语法与其它版本的 SQL 类似并支持诸如更新、插入、修改、选择和删除之类的所有基本数据库表命令。有关 ABAP SQL、其用途、语法和功能的完整描述,请参阅 SAP 文档。
通过使用 ABAP SQL,ABAP 处理程序可以修改具有业务对象数据的 SAP 数据库表以执行创建、更新和删除操作,并同样可以在 ABAP select 语句中的 “where” 子句中将业务对象数据用作键。
“调用事务”是 SAP 提供的用于将数据输入 SAP 系统的功能。“调用事务”通过使用联机用户在事务中看到的相同屏幕来保证数据遵循 SAP 的数据模型。此过程通常称为屏幕搜集。要使用“调用事务”,指定以下类型的指令:
“开始”将在“调用事务”调用中以单值参数的形式传递。“导航”和“映射”指令以特定格式在一个表中一起进行传递;此格式可用于为任何 SAP 事务调用“调用事务”。在此格式中,这些指令称为 BDC 数据、BDC 表或 BDC 会话。
批处理数据通信(BDC)是一个指令集,SAP 可以遵循该指令集来执行事务而不需要用户介入。这些指令指示处理事务的屏幕的顺序和应该使用哪些屏幕上的数据来填充哪些字段。SAP 事务中对联机用户公开的所有元素都具有可以在 BDC 中使用的标识。这些元素如下:
要获取屏幕的 BDC 标识,将光标放在屏幕上的任何字段中。按 F1 获取帮助,然后按 F9 获取技术信息。程序名和屏幕号列示在“屏幕数据”之下。
要获取输入字段的 BDC 标识,将光标放置在屏幕上您要输入数据的每个字段中。按 F1 获取帮助,然后按 F9 获取技术信息。如果有一个名为“批处理输入的字段描述”的框,则使用“屏幕字段”字段中的信息。如果此框不存在,则从“字段数据”框用连字号将表名和字段名连接在一起。
要获取某个命令的 BDC 标识,在菜单中突出显示该命令,并按 F1 获取帮助。使用“功能”字段中的值。
每个 ABAP 处理程序都必须实现相同的功能模块接口。功能模块接口保证业务对象路由器 Y_XR_RFC_DO_VERB_NEXTGEN 可以将业务对象数据传递至 ABAP 处理程序和从 ABAP 处理程序中传递出来。该接口为:
*"*"Local interface: *" IMPORTING *" VALUE(PROC_FUNC_1) LIKE RS38L-NAME OPTIONAL *" VALUE(PROC_FUNC_2) LIKE RS38L-NAME OPTIONAL *" VALUE(OBJECT_NAME) LIKE YXR_LOG_H-OBJ_NAME OPTIONAL *" VALUE(OBJECT_VERB) LIKE YXR_CHANGE-OBJ_VERB OPTIONAL *" VALUE(ARCHIVE) OPTIONAL *" VALUE(TEXT) LIKE T100-TEXT OPTIONAL *" EXPORTING *" VALUE(RETURN_TEXT) LIKE YXR_EVENT-OBJ_KEY *" VALUE(RFCRC) LIKE YXR_RFCRC-YXR_RFCRC *" TABLES *" RFC_STRUCTURE STRUCTURE YXR_RFC_S *" EXCEPTIONS *" NOT_FOUND *" ERROR_PROCESSING
在该接口的导入节中,您可以传送诸如 ABAP 处理程序名、业务对象名和业务对象等值。
该接口的导出节用来传送 ABAP 处理程序处理的结果。返回码 RFCRC 参数是用来确定连接器返回的代码的单个字段。可能的值有:
RC = 0(成功,VALCHANGE)
RC = 1(失败,FAIL)
RETURN_TEXT 参数是一个具有 120 个字符的自由文本字段,该字段由连接器写入或在返回状态描述符中记录为错误消息。如果 ABAP 处理程序没有为此参数提供值,则 Y_XR_RFC_DO_VERB_NEXTGEN 根据返回码提供缺省文本。
适配器包括几个 API,这些 API 有助于开发支持 SAP 的 WebSphere 业务对象的 ABAP 处理程序。这些 API 是作为“通用”ABAP 处理程序开发的,因为它们仅需要元数据就能支持其它任何类型的业务对象。适配器包括以下 ABAP 处理程序 API:
适配器包括一组支持这些 API 的工具。可以在 IBM WebSphere InterChange Server 连接器工具(事务 YXR1)中找到这些工具。以下各节讨论了适配器提供的 API 并介绍了如何使用 IBM WebSphere InterChange Server 连接器工具(事务 YXR1)来为这些 API 开发业务对象的步骤。