Serialization 如何序列化SAP业务对象?
首先,我必须澄清,我指的不是SAP最近收购的公司业务对象。相反,我指的是SAP业务对象存储库(BOR)中定义的业务对象,例如SalesOrder(BUS2032)Serialization 如何序列化SAP业务对象?,serialization,abap,Serialization,Abap,首先,我必须澄清,我指的不是SAP最近收购的公司业务对象。相反,我指的是SAP业务对象存储库(BOR)中定义的业务对象,例如SalesOrder(BUS2032) 那么,在SAP系统中序列化此类业务对象的首选方法是什么,以便第三方系统可以反序列化业务对象,包括构成特定业务对象实例的所有属性?我不知道序列化BOR对象的简单方法。然而,在许多情况下,SAP提供了BAPI,这些BAPI是远程启用的功能模块,可以通过各种SAP连接器或SOAP等进行调用 以总线2032为例: 运行事务SWO1 进入总线
那么,在SAP系统中序列化此类业务对象的首选方法是什么,以便第三方系统可以反序列化业务对象,包括构成特定业务对象实例的所有属性?我不知道序列化BOR对象的简单方法。然而,在许多情况下,SAP提供了BAPI,这些BAPI是远程启用的功能模块,可以通过各种SAP连接器或SOAP等进行调用 以总线2032为例:
- 运行事务SWO1
- 进入总线2032
- 单击程序按钮
- 搜索
调用函数'BAPI
当然,您也可以编写自己的RFC或Web服务,但是您需要了解业务模型以及需要哪些属性。SAP business Connector使用XML文档(在SAP和非SAP系统之间)交换SAP对象。也许您可以根据需要在中找到一些帮助,以使用
IF_SERIALIZABLE_OBJECT
界面。我猜您的业务对象尚未实现该接口,因此您可能必须将其扩展到自定义业务对象,并在那里实现IF\u SERIALIZABLE\u object
接口。我会说IDocs,但我发现您不想使用SAP生成的表示。
这意味着您必须使用ABAP编写自己的实现。简言之:
zcl\u sales\u order
,zcl\u sales\u order\u position
)上,您可以根据需要设计这些自定义类calltransformation
语句将实例序列化为XML表示形式(尽管这仍然包含一些特定于SAP的格式),或者编写自己的序列化方法(这可能是您需要的)这将允许调用者从R/3系统中获取数据,但它将采用SAP定义的结构化格式,而不是“序列化”格式。是的-我不知道SAP为您序列化BOR对象的简单方法。BAPI是SAP公开的允许更改业务对象的方法。业务对象的另一个特性是允许将业务对象的更改通知接收者的事件。后者在这种上下文中更为重要,但默认情况下通常只通知接收方状态更改,并且只包括业务对象键字段。当接收方是远程系统时,这不足以重新创建业务对象,包括其所有属性。webMethods SAP适配器(又名SAP business Connector)在ALE、BAPI、RFC层工作。它支持SAP专有的EDI和RPC格式。它不支持开箱即用的业务对象序列化。