如何序列化SAP Business Objects?

时间:2009-10-28 04:45:45

标签: serialization sap abap

首先,我必须澄清我指的是SAP最近收购的公司 Business Objects 。相反,我指的是SAP业务对象存储库(BOR)中定义的业务对象,例如SalesOrder(BUS2032)。

那么在SAP系统中序列化此类业务对象的首选方法是什么,以便第三方系统可以反序列化业务对象,包括构成特定业务对象实例的所有属性?

4 个答案:

答案 0 :(得分:3)

根据this article,您需要使用IF_SERIALIZABLE_OBJECT界面。我猜你的业务对象尚未实现该接口,因此您可能必须将其扩展到自定义业务对象并在那里实现IF_SERIALIZABLE_OBJECT接口。

答案 1 :(得分:2)

我会说IDocs,但我发现你不想使用SAP生成的表示法。 这意味着您必须使用ABAP编写自己的实现。简而言之:

  1. 使用BAPI和/或查询检索您需要的数据
  2. 将所有数据粘贴到您根据需要设计的一个或多个自定义类(zcl_sales_orderzcl_sales_order_position等)
  3. 使用call transformation语句将实例序列化为XML表示形式(尽管这仍然包含一些特定于SAP的格式),或者编写自己的序列化方法(这可能是您需要的)

答案 2 :(得分:1)

SAP Business Connector使用XML文档来交换SAP对象(在SAP和非SAP系统之间)。也许你可以在this article.

找到一些帮助

答案 3 :(得分:0)

我不知道序列化BOR对象的简单方法。但是,在许多情况下,SAP提供了BAPI,它们是可以通过各种SAP连接器或SOAP等调用的远程启用功能模块。

以BUS2032为例:

  • 运行交易SWO1
  • 输入BUS2032
  • 单击“程序”按钮
  • call function 'BAPI
  • 上搜索

你会发现各种BAPI - 在这种情况下它们都属于功能组2032,可以通过事务SE80访问

请注意,SAP的命名标准并不总是如此,但模块越成熟,他们已经为模块提供某种形式的RFC或Web服务的可能性就越大。

当然,您也可以编写自己的RFC或Web服务,但是您需要了解业务模型以及需要哪些属性。