如何序列化 SAP 业务对象?

发布于 2024-08-09 07:50:35 字数 205 浏览 6 评论 0原文

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

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

First I have to clarify that I'm not referring to the company Business Objects recently acquired by SAP. Instead I'm referring to business objects as defined in the SAP Business Object Repository (BOR), e.g. SalesOrder (BUS2032).

So what would be the preferred approach to serialize such a business object in the SAP system so that a third party system could deserialize the business object including all attributes that make up a specific business object instance?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

甜警司 2024-08-16 07:50:35

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

According to this article you need to use the IF_SERIALIZABLE_OBJECT interface. I'm guessing your business object doesn't already implement that interface so you may have to extend it to a custom business object and implement the IF_SERIALIZABLE_OBJECT interface there.

南风起 2024-08-16 07:50:35

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

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

I'd say IDocs, but I see you don't want to use the SAP generated representations.
Which means you'll have to write your own implementation using ABAP. In a nutshell:

  1. Retrieve the data you need using BAPIs and/or queries
  2. Stick all the data onto one or more custom classes (zcl_sales_order, zcl_sales_order_position, etc.), which you design according to your needs
  3. Serialize the instance into an XML representation using the call transformation statement (though this will still contain some SAP-specific formatting), or write your own serialization method (this is probably what you need)
涙—继续流 2024-08-16 07:50:35

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

The SAP Business Connector uses XML documents to exchange SAP objects (between SAP and non-SAP systems). Maybe you can find some help in this article.

作妖 2024-08-16 07:50:35

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

以 BUS2032 为例:

  • 运行事务 SWO1
  • 输入 BUS2032
  • 单击程序按钮
  • 搜索调用函数' BAPI

您会发现各种 BAPI - 在本例中,它们都属于功能组 2032,可以通过事务 SE80 访问。

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

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

I don't know of a simple way to serialize BOR objects. However in many cases SAP have provided BAPI's that are Remote Enabled Function modules that can be called via the various SAP connectors or SOAP etc.

Taking BUS2032 as an example:

  • Run transaction SWO1
  • Enter BUS2032
  • Click the Program button
  • Search on call function 'BAPI

You will find various BAPI's - in this case they all belong to function group 2032 that can be accessed via transaction SE80

Note that SAP is not always this accomodating in their naming standards, but the more mature the module the better the chance that they've already made some form of RFC or Webservice available for the module.

Of course you can also write your own RFC or webservice, but then you need to understand the business model and which attributes are needed.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文