背景信息

ABAP 扩展模块的业务对象开发包括为您要支持的每个查询描述创建特定于应用程序的业务对象定义和相关的 ABAP 处理程序。

要开发特定于应用程序的业务对象,您必须创建支持您的业务需要的业务对象定义。mySAP.com 适配器包括一些工具,这些工具有助于在 SAP 应用程序中开发业务对象定义。尽管您可以使用业务对象设计器或文本编辑器来为 ABAP 扩展模块创建业务对象定义,但是建议您最初使用适配器的业务对象开发工具。这些工具使用 SAP 应用程序的本机定义作为模板。

对于您可以开发的每个特定于应用程序的业务对象定义,您必须通过使用适配器提供的 ABAP 处理程序或通过开发定制 ABAP 处理程序来支持它。ABAP 处理程序是将数据输入和输出 SAP 应用程序数据库的机制。

注:
特定于应用程序的业务对象和 ABAP 处理程序依靠彼此的一致性,将数据传递至 SAP 应用程序和从 SAP 应用程序中传递出来。因此,如果您更改业务对象定义,则还必须更改 ABAP 处理程序。

连接器的 ABAP 处理程序是作为 ABAP 功能模块实现的。ABAP 处理程序是一个或多个功能模块,这些模块协同工作以完成来自业务对象路由器 /CWLD/RFC_DO_VERB_NEXTGEN 的业务对象请求。ABAP 处理程序负责将业务对象数据传递至 SAP 应用程序和从 SAP 应用程序中传递出来。

注:
除了受 WebSphere Business Integration 系统支持的那些查询描述(创建、检索、更新和删除)以外,SAP 还支持许多查询描述。您可以开发 ABAP 处理程序来支持任何查询描述。

要开发 ABAP 处理程序,您必须了解连接器如何将数据输入和输出 SAP 应用程序以及在此过程中该数据采用哪种格式。有关业务对象处理的高级描述,请参阅ABAP 扩展模块概述。有关业务对象处理的详细描述,请参阅ABAP 扩展模块中的业务对象处理

注:
当开发业务对象时,您必须确保在 SAP 应用程序中将这些对象添加至连接器的 /CWLD/OBJECTS 表。如果未添加它们,则您将无法访问对象以进行定制(例如,设置对象以进行事件分布)。

SAP 本机 API

适配器提供的 ABAP 处理程序使用 SAP 本机 API,这些 API 使 ABAP 处理程序能够将数据传递至 SAP 应用程序和从 SAP 应用程序中传递出来。WebSphere Business Integration 系统已实现以下本机 API:

ABAP SQL

ABAP SQL 是 SAP 独有的 SQL 版本。它独立于数据库和平台,所以无论您编写哪一种 SQL 代码,都可以在 SAP 支持的任何数据库和平台组合上运行它。ABAP SQL 的语法与其它版本的 SQL 类似,并支持诸如更新、插入、修改、选择和删除之类的所有基本数据库表命令。有关 ABAP SQL、其用途、语法和功能的完整描述,请参阅 SAP 文档。

通过使用 ABAP SQL,ABAP 处理程序可以修改具有业务对象数据的 SAP 数据库表以执行创建、更新和删除操作。它还可以在 ABAP select 语句的 where 子句中将业务对象数据用作键。

注:
WebSphere Business Integration 系统从不使用 ABAP SQL 来修改 SAP 表,因为这可能会损坏数据库的完整性。连接器使用 ABAP SQL 仅检索数据和修改适配器提供的数据库表。

调用事务

“调用事务”是 SAP 提供的、用于将数据输入 SAP 系统的功能。“调用事务”通过使用联机用户在事务中看到的相同屏幕来保证数据遵循 SAP 的数据模型。此过程通常称为屏幕搜集。要使用“调用事务”,指定以下类型的指令:

“开始”将在“调用事务”调用中以单值参数的形式传递。“导航”和“映射”指令以特定格式在一个表中一起进行传递。此格式可用于为任何 SAP 事务调用“调用事务”。在此格式中,这些指令称为 BDC 数据、BDC 表或 BDC 会话。

批处理数据通信(BDC)

批处理数据通信(BDC)是一个指令集,SAP 可以遵循该指令集来执行事务而不需要用户干预。这些指令指示处理事务屏幕的顺序和应该使用哪些屏幕上的数据来填充哪些字段。SAP 事务中对联机用户公开的所有元素都具有可在 BDC 中使用的标识。这些元素如下:

要获取屏幕的 BDC 标识,将光标放在屏幕上的任何字段中。按 F1 获取帮助,然后按 F9 获取技术信息。程序名和屏幕号列示在“屏幕数据”之下。

要获取输入字段的 BDC 标识,将光标放置在屏幕上您要输入数据的每个字段中。按 F1 获取帮助,然后按 F9 获取技术信息。如果有一个名为“批处理输入的字段描述”的框,则使用“屏幕字段”字段中的信息。如果此框不存在,则从“字段数据”框用连字号将表名和字段名连接在一起。

要获取某个命令的 BDC 标识,在菜单中突出显示该命令,并按 F1 获取帮助。使用“功能”字段中的值。

商业应用编译程口(BAPI)

使用 BAPI 模块来支持 BAPI。有关更多信息,请参阅BAPI 模块概述

IBM WebSphere 功能模块接口

每个 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 根据返回码提供缺省文本。

注:
该接口的异常节定义两个异常。建议您使用导出参数来代替。

IBM WebSphere ABAP 处理程序 API

适配器提供了几个 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 开发业务对象的步骤。

重要提示:
当使用 IBM WebSphere BI Station 工具来生成业务对象定义或 ABAP 处理程序时,您必须以英语登录到 SAP 系统。WebSphere BI Station 日志仅以英语提供。对于 SAPODA,也必须以英语登录到 SAP 系统。

业务对象属性特性

业务对象体系结构定义属性的各种特性。本节描述连接器如何解释这些属性中的几种属性并描述当修改业务对象时如何设置它们。表 47 列示 ABAP 扩展模块的业务对象属性特性。

表 47. ABAP 扩展模块的业务对象属性特性
属性名 描述
Name 每个业务对象属性必须具有一个唯一名称。
Type 值为 String
MaxLength 未使用此属性。
IsKey 业务对象的第一个简单属性设置为键属性。所有键属性的类型都应该为 String。不支持将子对象设置为键属性。
IsForeignKey 未使用此属性。
IsRequired 此特性指定属性是否必须包含值。
AppSpecificInfo 根据支持业务对象的 ABAP 处理程序的不同,此特性的值是不同的。适配器附带了自动提供此值的业务对象生成工具。如果您修改生成的值,则业务对象可能无法正确进行处理。
DefaultValue 此特性指定在没有运行时值时要为此属性指定的值。

适配器开发工具

适配器提供了一些业务对象开发工具,这些工具允许您在 SAP 应用程序内生成 WebSphere 业务对象定义文件。此业务对象定义文件直接对应于 SAP 业务流程和 API(即,生成 SAP 业务流程的 API)。

注:
当 IBM WebSphere InterChange Server 是集成代理程序时,则验证最终业务对象定义文件是否在顶部包含版本。WebSphere InterChange Server 的较早版本需要版本文本,这些文本位于产品目录下面的 \repository\ReposVersion.txt 文件中。还要验证定义是否包括所有必需的业务对象和属性(包括 ObjectEventID 属性)。

IBM WebSphere BI Station 提供了“入站向导”工具。

重要提示:
当使用 IBM WebSphere BI Station 来生成业务对象定义或 ABAP 处理程序时,您必须以英语登录到 SAP 系统。WebSphere BI Station 日志仅以英语提供。对于 SAPODA,也必须以英语登录到 SAP 系统。

入站向导

“入站向导”工具通过记录当您逐步执行支持必需功能的 SAP 事务时的操作,使您能够定义进行业务对象和元数据处理所必需的业务对象和元数据。您不需要编写任何 ABAP 代码,也不需要知道业务对象的底层数据库模式。

“入站向导”通过记录和解释 SAP 事务中的用户操作来为“动态事务”表生成数据。它支持平面(不是分层的)业务对象的定义。换句话说,它不支持包含子业务对象的业务对象。可以将“入站向导”用作代码生成器,以便于开发需要静态代码的更复杂对象。

注:
通过向“动态事务”表添加条目或修改条目,可以手工开发新的业务对象或者修改现有业务对象。

有关为业务对象请求开发业务对象的更多信息,请参阅使用动态事务开发业务对象

使用 SAPODA 开发业务对象定义

SAPODA 使您能够根据 IDoc 或者“动态检索”和“动态事务”使用的表来构建 WebSphere 业务对象。有关使用 SAPODA 开发业务对象的更多信息,请参阅使用 SAPODA 生成业务对象定义

Copyright IBM Corp. 1997, 2004