簡體   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