Как сериализовать бизнес-объекты SAP? - PullRequest
5 голосов
/ 28 октября 2009

Сначала я должен уточнить, что я не , имея в виду компанию Business Objects , недавно приобретенную SAP. Вместо этого я имею в виду бизнес-объекты, определенные в репозитории бизнес-объектов SAP (BOR), например Заказ на продажу (BUS2032).

Итак, каков предпочтительный подход для сериализации такого бизнес-объекта в системе SAP, чтобы сторонняя система могла десериализовать бизнес-объект, включая все атрибуты, которые составляют конкретный экземпляр бизнес-объекта?

Ответы [ 4 ]

3 голосов
/ 29 октября 2010

Согласно этой статье вам необходимо использовать интерфейс IF_SERIALIZABLE_OBJECT. Я предполагаю, что ваш бизнес-объект еще не реализует этот интерфейс, поэтому вам, возможно, придется расширить его до настраиваемого бизнес-объекта и реализовать там интерфейс IF_SERIALIZABLE_OBJECT.

2 голосов
/ 05 сентября 2011

Я бы сказал, IDoc, но я вижу, что вы не хотите использовать сгенерированные SAP представления. Это означает, что вам придется написать свою собственную реализацию, используя ABAP. В двух словах:

  1. Извлечение необходимых данных с использованием BAPI и / или запросов
  2. Прикрепите все данные к одному или нескольким пользовательским классам (zcl_sales_order, zcl_sales_order_position и т. Д.), Которые вы разрабатываете в соответствии со своими потребностями
  3. Сериализация экземпляра в XML-представление с помощью оператора call transformation (хотя он все равно будет содержать некоторое специфичное для SAP форматирование), или написать собственный метод сериализации (это, вероятно, то, что вам нужно)
1 голос
/ 28 октября 2009

SAP Business Connector использует документы XML для обмена объектами SAP (между системами SAP и не-SAP). Может быть, вы можете найти помощь в этой статье.

0 голосов
/ 28 октября 2009

Я не знаю простого способа сериализации объектов BOR. Однако во многих случаях SAP предоставляет BAPI, которые представляют собой модули с дистанционным включением функций, которые могут вызываться через различные соединители SAP или SOAP и т. Д.

Для примера BUS2032:

  • Выполнить транзакцию SWO1
  • Введите BUS2032
  • Нажмите кнопку «Программа»
  • Поиск по call function 'BAPI

Вы найдете различные BAPI - в этом случае все они принадлежат к группе функций 2032, к которой можно получить доступ посредством транзакции SE80

Обратите внимание, что SAP не всегда соответствует этим стандартам именования, но чем более зрелым является модуль, тем выше вероятность того, что они уже сделали какую-либо форму RFC или веб-службы доступной для модуля.

Конечно, вы также можете написать свой собственный RFC или веб-сервис, но тогда вам нужно понять бизнес-модель и какие атрибуты необходимы.

...