ABAP 扩展模块的业务对象开发包括为您要支持的每个查询描述创建特定于应用程序的业务对象定义和相关的 ABAP 处理程序。
要开发特定于应用程序的业务对象,您必须创建支持您的业务需要的业务对象定义。mySAP.com 适配器包括一些工具,这些工具有助于在 SAP 应用程序中开发业务对象定义。尽管您可以使用业务对象设计器或文本编辑器来为 ABAP 扩展模块创建业务对象定义,但是建议您最初使用适配器的业务对象开发工具。这些工具使用 SAP 应用程序的本机定义作为模板。
对于您可以开发的每个特定于应用程序的业务对象定义,您必须通过使用适配器提供的 ABAP 处理程序或通过开发定制 ABAP 处理程序来支持它。ABAP 处理程序是将数据输入和输出 SAP 应用程序数据库的机制。
连接器的 ABAP 处理程序是作为 ABAP 功能模块实现的。ABAP 处理程序是一个或多个功能模块,这些模块协同工作以完成来自业务对象路由器 /CWLD/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 获取帮助。使用“功能”字段中的值。
使用 BAPI 模块来支持 BAPI。有关更多信息,请参阅BAPI 模块概述。
每个 ABAP 处理程序都必须实现相同的功能模块接口。功能模块接口保证业务对象路由器 /CWLD/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 /CWLD/LOG_HEADER-OBJ_NAME OPTIONAL *" VALUE(OBJECT_VERB) LIKE /CWLD/WIZ_IN-OBJ_VERB OPTIONAL *" VALUE(ARCHIVE) OPTIONAL *" VALUE(TEXT) LIKE T100-TEXT OPTIONAL *" EXPORTING *" VALUE(RETURN_TEXT) LIKE /CWLD/LOG_HEADER-OBJ_KEY *" VALUE(RFCRC) LIKE /CWLD/RFCRC_STRU-RFCRC *" TABLES *" RFC_STRUCTURE STRUCTURE /CWLD/OBJ_STRU *" EXCEPTIONS *" NOT_FOUND *" ERROR_PROCESSING
在该接口的导入节中,您可以传送诸如 ABAP 处理程序名、业务对象名和业务对象等值。
该接口的导出节用来传送 ABAP 处理程序处理的结果。返回码 RFCRC 参数是用来确定连接器返回的代码的单个字段。可能的值有:
RC = 0(成功,VALCHANGE)
RC = 1(失败,FAIL)
RC = 21(成功,SUCCESS)
RETURN_TEXT 参数是一个具有 120 个字符的自由文本字段,该字段由连接器写入或在返回状态描述符中记录为错误消息。如果 ABAP 处理程序没有为此参数提供值,则 /CWLD/RFC_DO_VERB_NEXTGEN 根据返回码提供缺省文本。
适配器提供了几个 API,这些 API 有助于开发用于 SAP 的 WebSphere 业务对象的 ABAP 处理程序。这些 API 是作为“通用”ABAP 处理程序开发的,因为它们只需要元数据就能支持其它任何类型的业务对象。适配器提供了下列 ABAP 处理程序 API:
适配器提供了一组支持这些 API 的工具。对于所有这三个 ABAP 处理程序 API,可以在 IBM WebSphere BI Station(事务 /n/CWLD/HOME)中找到这些工具。有关更多信息,请参阅附录 F, IBM WebSphere BI Station 支持级别。适配器还提供了 SAPODA。有关更多信息,请参阅使用 SAPODA 生成业务对象定义。
下列各节讨论了适配器提供的 API 并介绍了如何使用 IBM WebSphere BI Station 工具和 SAPODA 来为这些 API 开发业务对象的步骤。
业务对象体系结构定义属性的各种特性。本节描述连接器如何解释这些属性中的几种属性并描述当修改业务对象时如何设置它们。表 47 列示 ABAP 扩展模块的业务对象属性特性。
属性名 | 描述 |
---|---|
Name | 每个业务对象属性必须具有一个唯一名称。 |
Type | 值为 String。 |
MaxLength | 未使用此属性。 |
IsKey | 业务对象的第一个简单属性设置为键属性。所有键属性的类型都应该为 String。不支持将子对象设置为键属性。 |
IsForeignKey | 未使用此属性。 |
IsRequired | 此特性指定属性是否必须包含值。 |
AppSpecificInfo | 根据支持业务对象的 ABAP 处理程序的不同,此特性的值是不同的。适配器附带了自动提供此值的业务对象生成工具。如果您修改生成的值,则业务对象可能无法正确进行处理。 |
DefaultValue | 此特性指定在没有运行时值时要为此属性指定的值。 |
适配器提供了一些业务对象开发工具,这些工具允许您在 SAP 应用程序内生成 WebSphere 业务对象定义文件。此业务对象定义文件直接对应于 SAP 业务流程和 API(即,生成 SAP 业务流程的 API)。
IBM WebSphere BI Station 提供了“入站向导”工具。
“入站向导”工具通过记录当您逐步执行支持必需功能的 SAP 事务时的操作,使您能够定义进行业务对象和元数据处理所必需的业务对象和元数据。您不需要编写任何 ABAP 代码,也不需要知道业务对象的底层数据库模式。
“入站向导”通过记录和解释 SAP 事务中的用户操作来为“动态事务”表生成数据。它支持平面(不是分层的)业务对象的定义。换句话说,它不支持包含子业务对象的业务对象。可以将“入站向导”用作代码生成器,以便于开发需要静态代码的更复杂对象。
有关为业务对象请求开发业务对象的更多信息,请参阅使用动态事务开发业务对象。
SAPODA 使您能够根据 IDoc 或者“动态检索”和“动态事务”使用的表来构建 WebSphere 业务对象。有关使用 SAPODA 开发业务对象的更多信息,请参阅使用 SAPODA 生成业务对象定义。