平面结构至业务对象的转换

一旦用新的业务对象数据重新填充了平面结构,/CWLD/RFC_DO_VERB_NEXTGEN 就会将业务对象数据返回至调用连接器。记住,连接器是单线程的;因此,它一次仅传递一个业务对象。连接器现在必须将业务对象数据从平面结构转换为业务对象。当将平面结构中的数据处理为业务对象时,连接器必须完成下列操作:

  1. 初始化原始业务对象。
  2. 将业务对象数据从平面结构传送至业务对象。
  3. 将业务对象传递给 InterChange Server(连接器控制器)。

业务对象初始化

连接器在填充从集成代理程序接收到的原始业务对象之前,将先初始化该业务对象。当初始化业务对象时,连接器将顶级业务对象中的每个属性都设置为空。对于对象类型属性,此操作递归地删除包含的每个业务对象,仅保留顶级业务对象。

连接器如何重建业务对象

在连接器初始化原始业务对象之后,保留下来的是包含业务对象名和业务对象查询描述的顶级业务对象,但没有属性值数据。必须通过 ABAP 处理程序从平面结构传送属性值数据。传送返回数据的逻辑很简单,但必须严格按照连接器期望数据的顺序来传送这些数据。

连接器使返回数据中特定于应用程序的信息与业务对象定义中特定于应用程序的属性信息匹配。连接器尝试设置返回的业务对象数据中的每个属性。如果不能设置任何属性,则连接器将 FAIL 返回到连接器基础结构。

为了成功传送返回的数据,连接器期望返回的数据符合以下条件:

当连接器重建特定于应用程序的业务对象时,连接器从顶级业务对象开始,对该业务对象循环两次。

  1. 在第一遍循环中,连接器设置所有简单属性。
  2. 在第二遍循环中,它检查平面属性在子对象中是否存在。如果它存在,则连接器对子对象递归地执行相同处理。

注意: 如果平面结构至业务对象的转换失败,则连接器向集成代理程序报告故障。但是,数据已传送至 SAP 应用程序,因此,在此阶段不能回滚。尽管规则很简单,但实现具有许多属性的复杂分层业务对象可能难以管理。

一旦用新业务对象数据成功地重建业务对象,连接器就会将该业务对象返回至集成代理程序。

Copyright IBM Corp. 1997, 2004