Перейти к содержимому

Интеграция с SAP

Для SAP интеграция строится на стандартных средствах — без доработок ядра SAP (без Z-кода в системе клиента или с минимальным). Orda — внешняя система, с которой SAP обменивается через middleware клиента или SAP Integration Suite (Cloud Integration, CPI).

Источник в SAP Как забрать Когда
S/4HANA: исходящие поставки OData API_OUTBOUND_DELIVERY_SRV (сущность A_OutbDeliveryHeader, позиции A_OutbDeliveryItem) — iFlow по расписанию основной вариант для S/4HANA (облако и on-premise)
S/4HANA: заказы клиентов OData API_SALES_ORDER_SRV если доставка планируется по заказу, до создания поставки
SAP ERP (ECC) / S/4 on-premise IDoc DELVRY (поставка) через порт → CPI / PI/PO / другой middleware когда IDoc уже используются в компании

Во всех вариантах middleware преобразует данные и вызывает POST /api/v1/orders/bulk с API-ключом Orda.

  1. iFlow по таймеру (например, каждые 10 минут) читает новые/изменённые поставки из OData (фильтр по дате изменения и складу отгрузки).
  2. Маппинг (ниже) → пакеты до 1000 → POST /orders/bulk с Idempotency-Key = идентификатор запуска + номер пакета.
  3. Ошибки строк (result: "error") — в журнал сообщений CPI / оповещение ответственному.
  4. Обратно: вебхуки Orda (order.delivered, order.failed, plan.approved) принимает отдельный iFlow с HTTPS-адаптером; он проверяет подпись (скрипт Groovy, HMAC-SHA256) и обновляет поставку в SAP — статус/подтверждение доставки (POD) или пользовательское поле, по согласованию с SAP-консультантом клиента.
Orda S/4HANA OData (A_OutbDeliveryHeader) IDoc DELVRY
externalId, number DeliveryDocument E1EDL20-VBELN
deliveryDate DeliveryDate (или PlannedGoodsIssueDate) дата из E1EDT13
customerExternalId ShipToParty партнёр WE в E1ADRM1
address адрес грузополучателя E1ADRM1 / E1ADRE1
warehouseExternalId ShippingPoint E1EDL20-VSTEL
weightKg HeaderGrossWeight + HeaderWeightUnit (перевести в кг) E1EDL20-BTGEW + GEWEI
volumeM3 HeaderVolume + HeaderVolumeUnit (перевести в м³) E1EDL20-VOLUM + VOLEH

Названия полей — стандартные; в конкретной системе их проверяет SAP-консультант клиента (в компании могут использоваться свои поля и единицы). Точки доставки (грузополучатели) удобно выгрузить заранее в /customers с externalId = номер делового партнёра.

  • Описание API (справочник, openapi.json — импортируется в Integration Suite / API Management).
  • Готовый маппинг (таблица выше) и примеры запросов, тестовая компания (песочница).
  • Проверку подписи вебхуков на Groovy (по запросу) — по той же схеме, что в разделе Вебхуки.