Помилка 403 при CSRF-токені або таймаут сесії при інтеграції SAP з мобільним додатком — типова проблема, з якою стикаються навіть досвідчені команди. Майже кожен другий проект приходить до нас після невдалої спроби «зробити самим». Інтеграція SAP з мобільним додатком вимагає розуміння SAP-ландшафту: різні версії (ECC 6.0, S/4HANA on-premise або Cloud), протоколи (OData v2, v4, BAPI) та вимоги до безпеки (OAuth 2.0, SAML). За 5+ років роботи на ринку та понад 30 успішних проектів із інтеграції SAP з мобільним додатком, ми виробили підхід, який скорочує час розробки в 2-3 рази порівняно з саморобними рішеннями — це підтверджено нашими клієнтами. Ключовий урок: не починати писати код без аудиту API та вибору правильного middleware — помилка, яка коштує тижнів доопрацювань.
SAP Mobile Services — це не просто middleware, а повноцінна платформа, яка прискорює інтеграцію в 3 рази завдяки вбудованим механізмам кешування, автентифікації та offline-синхронізації. На відміну від саморобних рішень на Spring Boot, він позбавляє від ручної обробки CSRF-токенів, управління сесіями та вирішення конфліктів. Але важливо правильно його налаштувати: типова помилка — ігнорувати політики синхронізації, що призводить до втрати даних при обриві з'єднання. Для push-сповіщень використовуємо Firebase Cloud Messaging (FCM) на Android та Apple Push Notification Service (APNs) на iOS, інтегровані з SAP Mobile Services.
Три покоління SAP API: порівняння
| Покоління | Протокол | Коли використовувати |
|---|---|---|
| BAPI / RFC | ABAP, через JCo/NCo | Legacy SAP ECC, якщо немає Gateway |
| SAP Gateway / OData v2 | REST, Atom XML/JSON | ECC 6.0, NetWeaver, S/4HANA on-premise |
| SAP BTP + CAP (OData v4) | REST, JSON | S/4HANA Cloud, нові проекти |
Для інтеграції SAP з мобільним додатком важливо правильно вибрати покоління API — це визначає швидкість і вартість.
Як налагодити CSRF-handling у мобільному додатку?
Стандартна схема роботи з CSRF-токеном в SAP OData включає чотири кроки. Спочатку виконайте GET-запит до кінцевої точки сервісу з заголовком X-CSRF-Token: Fetch. SAP поверне токен у заголовку відповіді X-CSRF-Token. Для всіх модифікуючих запитів (POST, PUT, DELETE, PATCH) включіть отриманий токен у заголовок X-CSRF-Token. При отриманні 403 CSRF token validation failed повторіть кроки 1-3. Ми реалізуємо цей алгоритм у Interceptor на Retrofit або Alamofire, автоматично оновлюючи токен при помилці. Токен живе в рамках сесії, тому після повторної автентифікації потрібно отримати новий. Це позбавляє від 90% помилок авторизації.
Приклад використання SDK на Android:
val serviceManager = ServiceManager( applicationContext, SAPServiceManager.configUrl, object : ServiceManager.ServiceManagerListener { override fun onServiceManagerReady() { // Готов до роботи initializeODataService() } } ) Як реалізувати offline-синхронізацію з SAP?
Використання OData Offline Store з SAP BTP SDK скорочує витрати мобільного трафіку на 60-70% порівняно з постійним з'єднанням. Згідно з офіційною документацією SAP BTP SDK, при offline-синхронізації необхідно налаштувати політики конфліктів. Дані кешуються на пристрої в SQLite, а при підключенні до мережі виконується двостороння синхронізація. Конфлікти вирішуються через ETag — сервер перевіряє, чи не змінилися дані після останнього читання. Однак offline-режим збільшує складність інтеграції: потрібно правильно налаштувати політики синхронізації. Ми вибираємо стратегію «перший пишучий» або «версія сервера» залежно від бізнес-логіки. Це типова задача при інтеграції SAP з мобільним додатком, де критична надійність даних.
Порівняння методів автентифікації: SAML vs OAuth
| Метод | Протокол | Коли використовувати |
|---|---|---|
| SAML 2.0 | XML-based, через браузер | SAP ECC на NetWeaver |
| OAuth 2.0 | JWT, через Authorization Code | S/4HANA Cloud, SAP BTP |
| Basic Auth | HTTP Basic | Тільки для тестів |
Рекомендуємо додавати OAuth 2.0 проксі через SAP BTP або Keycloak: мобільний додаток використовує стандартний OAuth, а SAP отримує SAML-запити. Це знижує крихкість інтеграції.
Типові складнощі та їх вирішення
-
Продуктивність OData v2.
$expandдля навігаційних властивостей робить JOIN на стороні SAP ABAP — може виконуватися 5-15 секунд. Альтернатива: паралельні запити без expand або middleware-кеш. -
Pagination в OData v2.
$skip+$topповільний на великих обсягах — серверна пагінація через SAP skiptoken краща. - Різниця S/4HANA та ECC. API для одного об'єкта (наприклад, замовлення покупця) в S/4HANA OData (
API_SALES_ORDER_SRV) та ECC Gateway (ZSHOP_SRV) різні. Абстрактний шар у middleware обов'язковий для підтримки обох варіантів.
Вибір API для інтеграції
Якщо у клієнта S/4HANA Cloud — однозначно OData v4 через CAP. Якщо ECC або S/4HANA on-premise — дивимося на наявність SAP Gateway. Gateway надає OData v2, але з quirks: Edm.DateTime замість ISO 8601, специфічна фільтрація, __deferred для навігаційних властивостей. Для ECC без Gateway залишається BAPI через middleware (SAP JCo або NCo). Абстрактний шар у middleware обов'язковий, якщо потрібна підтримка обох варіантів.
Що входить у роботу «під ключ»
- Документація з API та архітектури інтеграції
- Доступи до SAP BTP або middleware (при необхідності)
- Навчання команди замовника експлуатації рішення
- Гарантійна підтримка 3 місяці після деплою
Процес роботи
- Аудит SAP landscape та доступних API — 3-5 днів. Визначаємо версію SAP, перевіряємо доступність OData Gateway або BAPI, тестуємо продуктивність.
- Проектування архітектури інтеграції — 1-2 тижні. Вибираємо стек (BTP SDK, offline-стратегію, метод автентифікації).
- Реалізація прототипу — 1-2 тижні. Читання даних, налаштування автентифікації, базова синхронізація.
- Повноцінна інтеграція — 2-4 місяці. Додаємо offline-підтримку, CSRF-handling, вирішення конфліктів, push-сповіщення.
- Документація та навчання команди — 1-2 тижні. Передаємо документацію з API, конфігурації та експлуатації.
- Гарантійна підтримка — 3 місяці після деплою. Виправляємо помилки, допомагаємо з доопрацюваннями.
Вартість прототипу — від $5000, повноцінна інтеграція — від $25000. Ми гарантуємо зниження витрат на інтеграцію до 50% порівняно з саморобними рішеннями, що зазвичай економить $15000-30000 на проекті. Оцініть ваш проект безкоштовно — напишіть нам, і ми проведемо аудит SAP landscape. Замовте прототип за 2 тижні — ми покажемо працююче рішення на ваших даних. Зв'яжіться з нами для аудиту вашого SAP landscape та отримайте детальний план інтеграції.







