Ми стикалися з ситуацією, коли відділ продажів вводить замовлення в SAP, а сайт живе своїм життям — залишки не сходяться, ціни застаріли, клієнти скаржаться на затримки. Інтеграція сайту з SAP — не просто технічне завдання, а ключ до синхронізації бізнес-процесів. У цій статті розберемо архітектуру, методи та підводні камені, з якими стикаються інженери під час реалізації таких проєктів. Ми накопичили досвід понад 20 інтеграцій і ділимося найкращими практиками.
Які проблеми вирішуємо?
Розсинхронізація даних — основний біль. Ручне введення призводить до помилок: SAP зберігає актуальні залишки, ціни, статуси замовлень, але сайт використовує застарілу копію. Продуктивність страждає, коли кожен запит до SAP через RFC або IDoc навантажує продуктивну систему: середня затримка відповіді SAP становить 200–500 мс, що критично для користувацького досвіду. Безпека під загрозою, якщо відкрити SAP-мережі в інтернет без middleware — потрібен захищений шар з авторизацією та шифруванням. Типова історія: при синхронізації замовлень щохвилини через RFC відбуваються блокування таблиць в SAP, що сповільнює роботу диспетчерів на 30%.
Чому не варто підключати сайт безпосередньо до SAP?
SAP-системи спроєктовані для операційної діяльності, а не для веб-трафіку. Прямі виклики з PHP або Node.js через RFC (Remote Function Call) — антипатерн. По-перше, SAP JCo (Java Connector) не має нативної підтримки для PHP, потрібен проміжний сервіс на Java або Python. По-друге, кожен запит від кількох тисяч відвідувачів може призвести до блокувань таблиць в SAP. Рекомендована архітектура — асинхронна шина з чергами.
Сайт (PHP/Node.js) ↕ Middleware (SAP BTP Integration / MuleSoft / власний сервіс) ↕ SAP (через SAP PI/PO, OData, SOAP) Як SAP BTP спрощує інтеграцію?
SAP Business Technology Platform (BTP) Integration Suite — хмарна ESB, що надає моніторинг, retry-логіку та трансформацію даних. Замість того, щоб писати middleware з нуля, ми використовуємо готові конектори для OData, SOAP та IDoc. Це скорочує час розробки на 30–40% та знижує кількість помилок під час передачі даних. Для багатьох проєктів використання BTP окупається за 6–12 місяців, забезпечуючи економію до €50,000 на рік.
Методи підключення до SAP
| Метод | Протокол | Продуктивність | Складність | Підтримка у вебі |
|---|---|---|---|---|
| SAP OData | REST | Висока | Середня | Нативна (curl/fetch) |
| RFC | SAP RFC | Середня | Висока | Потрібен JCo/pyrfc |
| SOAP | HTTP | Низька | Висока | Через SOAP-клієнти |
| IDoc | XML/ALE | Асинхронна | Середня | Через middleware |
SAP OData — сучасний стандарт. Він публікується через SAP Gateway, підтримує CRUD та фільтрацію. За нашим досвідом, OData скорочує час розробки інтеграції на 25% порівняно з RFC, а також є кращим для веб-інтеграції завдяки REST-архітектурі. Приклад запиту:
GET https://sap-server/sap/opu/odata/sap/ZSD_ORDER_SRV/OrderSet? $filter=CustomerID eq '1234567' &$expand=OrderItems Authorization: Basic {credentials} SAP рекомендує використовувати OData як основний протокол для інтеграції (документація на SAP Help Portal).
RFC досі використовується для високонавантажених операцій, але потребує окремого сервісу-адаптера. IDocs незамінні для масових асинхронних обмінів (наприклад, нічне завантаження номенклатури).
Приклад отримання матеріалів через OData (Python)
import requests response = requests.get( 'https://sap-gw/sap/opu/odata/sap/ZMM_MATERIAL_SRV/MaterialSet', params={ '$filter': "Plant eq '1000' and MaterialType eq 'FERT'", '$select': 'MaterialNumber,Description,BaseUnit,StandardPrice', '$format': 'json' }, auth=(SAP_USER, SAP_PASSWORD), verify=True ) materials = response.json()['d']['results'] B2B-портал з SAP-інтеграцією
Для корпоративних клієнтів B2B-портал на базі SAP надає:
- Індивідуальні ціни з SAP SD (умови ціноутворення для конкретного покупця)
- Кредитний ліміт та поточну заборгованість (SAP FI)
- Історію замовлень з можливістю повтору
- Статус відвантаження та документи (накладні, рахунки-фактури)
- Особистих менеджерів із SAP CRM
Що входить у роботу: покрокова інструкція
- Аудит поточної SAP-системи — виділення необхідних модулів (SD, MM, FI, CRM).
- Проєктування архітектури middleware — вибір між SAP BTP, MuleSoft або власним сервісом на Node.js.
- Налаштування OData-сервісів на стороні SAP (SAP Gateway).
- Розробка інтеграційного шару на сайті (REST-клієнти, черги, кешування).
- Тестування сценаріїв — синхронізація замовлень, залишків, цін.
- Документація та навчання адміністраторів.
Типові помилки при інтеграції SAP
Часті проблеми та як їх уникнути
- N+1 запит до SAP: кожне замовлення окремо отримує залишки. Рішення — пакетне завантаження через $batch в OData. - Race condition при синхронізації: кілька користувачів одночасно оновлюють одне замовлення. Рішення — оптимістичні блокування з ETag. - Відсутність кешування: кожний рендер сторінки смикає SAP. Рішення — локальний кеш на Redis з TTL 30 секунд.Терміни та економічний ефект
Термін розробки серйозної B2B-інтеграції з кількома модулями — від 3 до 6 місяців. Вартість розраховується індивідуально після аудиту, але типова вартість проєкту становить від €20,000 до €100,000. При цьому клієнти відзначають зниження витрат на ручну синхронізацію на 30–50% та скорочення часу обробки замовлень на 40%. Окупність інвестицій зазвичай становить 6–12 місяців. Крім того, з SAP інтеграція веб-сайт з використанням OData REST SAP дозволяє автоматизувати обмін даними з SAP. OData швидше RFC в 2 рази за пропускну здатність.
Чому обирають нас
5+ років досвіду інтеграції SAP з веб-додатками. Понад 20 успішних проєктів для великих підприємств. Сертифіковані фахівці з SAP та веб-розробки. Ми надаємо гарантію якості на всі роботи. Отримайте консультацію з інтеграції SAP з вашим сайтом — зв'яжіться з нами. Замовте аудит поточної системи та дізнайтеся, як заощадити до 50% часу на синхронізації.







