使用 SAPODA 来为您要支持的每个 RFC 支持功能生成 特定于 RFC
支持功能的业务对象定义和特定于 RFC
服务器的业务对象处理程序。您可以稍加修改就使用生成的文件。
您唯一必须进行的编辑是在服务器查询描述的特定于应用程序的查询描述信息中指定目标协作的名称。
- 因为协作不能显式地预订推送至连接器的事件,所以当 InterChange
server(ICS)是集成代理程序时此信息是必需的。因此,特定于 RFC
服务器的业务对象处理程序必须根据业务对象的元数据确定适当的目标协作,然后实例化该协作。
- 当消息代理是集成代理程序时,需要为特定于 RFC
服务器的业务对象处理程序提供哑元值以正确处理事件。
- 重要提示:
- 如果您正在使用的 RFC 支持功能不包含简单字段属性,且 SAPODA 已创建 Dummy_key
属性作为键属性,则不要修改此属性的值。
在生成业务对象定义及其相应的特定于 RFC
服务器的业务对象处理程序之后,您必须将业务对象定义添加至 WebSphere Business
Integration 系统的运行时环境。
特定于 RFC 服务器的业务对象处理程序文件为:
- RFC-EnabledFunctionName.java
- RFC-EnabledFunctionName.class
例如,如果给出 RFC 支持功能 BAPI_PO_CREATE 和用户定义的前缀
sap_,则 SAPODA 生成以下各项:
- sap_bapi_po_create(包括所有子业务对象的业务对象定义)
- Bapi_po_create.java
- Bapi_po_create.class
- 重要提示:
- 您可以修改生成的业务对象的名称及其子业务对象的名称。为此,您必须作为文本文件编辑该定义,而不是在业务对象设计器进行编辑。如果您更改业务对象的名称,则确保也修改所有引用到更改的名称的地方。并且,如果您为业务对象处理程序修改生成的
.class
文件的名称,则您必须对相关业务对象的特定于应用程序的服务器查询描述信息保持这些更改。
以下是用于开发业务对象和特定于 RFC
服务器的业务对象处理程序的技巧和窍门:
大多数 RFC 支持功能将相同名称用于返回对象。当 SAPODA
生成业务对象定义时,它创建一个子业务对象来表示此返回对象。如果多个业务对象定义包含同一个指定的子业务对象,则您只需一次将该子业务对象的定义添加至资源库。
要使多个业务对象能够包含返回业务对象,您必须修改返回业务对象的名称,使其对于每个业务对象都是唯一的。
要重命名返回业务对象,修改包含它的每个业务对象定义的定义。子业务对象的定义与其父代的定义包含在相同的定义文件中。
要重命名子代,执行以下操作:
- 在文本编辑器中打开顶级业务对象的定义文件。
- 找到 BOprefix_return 子业务对象的定义。
- 将该子代的名称更改为唯一的。例如,将一个数字追加至文本(sap_return_2)。
- 更改定义中的所有引用以引用新命名的子代。例如,更改每个表示子业务对象的属性的
Type 属性值。
- 保存更改后的定义文件。
- 使用业务对象设计器将新命名的子业务对象装入资源库。
- 注:
- 或者,如果 ICS 是集成代理程序,则您可以使用 repos_copy
命令将该定义装入资源库。
SAPODA 解释所有 RFC
支持功能接口参数,并且对于每个参数,它都会创建一个相应的 WebSphere
业务对象属性或子业务对象。要提高业务对象处理的性能,从业务对象定义除去所有不需要的属性和业务对象。
- 注:
- SAPODA
便于在生成定义之前以图形方式除去所有可选属性和子业务对象。有关更多信息,请参阅提供其它信息。
要提高业务对象处理的性能,您还可以从特定于应用程序的信息除去所有不需要的导入和导出表参数值。
在生成定义之后,如果您需要进行其它更改,则可以使用业务对象设计器来手工编辑业务对象定义。但是,请注意仅除去以后绝对不会使用的属性。
SAPODA 使用 RFC
支持功能模块的名称来命名生成的业务对象。您可以使用文本编辑器来修改业务对象的名称。
- 重要提示:
- 如果您更改该名称,则确保您也修改该名称的所有引用。但是,不要修改生成的特定于应用程序的信息的参数名。
要更改生成的业务对象的名称:
- 将定义保存至文件。
- 使用文本编辑器来缩短或更改该名称。
- 使用业务对象设计器将新命名的子业务对象复制到资源库。
- 注:
- 或者,如果 ICS 是集成代理程序,则您可以使用 repos_copy
命令将该定义装入资源库。
表参数可以同时是导入参数和导出参数。如果您不要求导入或导出表参数的值,则您可以从特定于应用程序的信息中除去该参数。
例如,对于创建操作,如果您在创建操作完成之后不需要从 SAP
应用程序返回表数据,则您可以除去导出参数值(如 E table
name)。
对于检索操作,您不需要指定任何导入表参数。因此,您可以除去导入参数值(如
I table name)。
- 注:
- 您必须从父代中某一表示子代的属性的 AppSpecificInfo
中以及业务对象级别为子业务对象的 AppSpecificInfo
中除去不需要的值。不要除去冒号(:)。
例如,要除去图 58 中的 ETable_7 导出参数,您应执行以下操作:
- 在 Top_Level_BusObj 业务对象的 Child_2 属性中,将该属性的 AppSpecificInfo
值更改为:
ITable_7:
- 在业务对象级别为 Child_2 业务对象的 AppSpecificInfo
中,将其值更改为:
ITable_7:
- 以 Attribute_14 为例,在子业务对象的每个属性的 AppSpecificInfo
中将其值更改为:
IField_14:
