繁体   English   中英

如何序列化 SAP 业务对象?

[英]How To Serialize SAP Business Objects?

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

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

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

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

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

SAP Business Connector 使用 XML 文档来交换 SAP 对象(在 SAP 和非 SAP 系统之间)。 也许您可以在本文中找到一些帮助

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

以BUS2032为例:

  • 运行事务 SWO1
  • 输入BUS2032
  • 单击程序按钮
  • 搜索call function 'BAPI

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

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

当然你也可以自己写RFC或者webservice,但是这时候你需要了解业务模型以及需要哪些属性。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM