Інтеграція SAP з мобільним застосунком

TRUETECH займається розробкою, підтримкою та обслуговуванням мобільних додатків iOS, Android, PWA. Маємо великий досвід та експертизу для публікації мобільних додатків до популярних маркетів Google Play, App Store, Amazon, AppGallery та інші.

Розробка та підтримка будь-яких видів мобільних додатків:

Інформаційні та розважальні мобільні програми
Новинки, ігри, довідники, онлайн-каталоги, погодні, фітнес та здоров'я, туристичні, освітні, соціальні мережі та месенджери, квіз, блоги та подкасти, форуми, агрегатори
Мобільні програми електронної комерції
Інтернет-магазини, B2B-додатки, маркетплейси, онлайн-обмінники, кешбек-сервіси, біржі, дропшиппінг-платформи, програми лояльності, доставка їжі та товарів, платіжні системи
Мобільні програми для управління бізнес-процесами
CRM-системи, ERP-системи, управління проектами, інструменти для команди продажів, облік фінансів, управління виробництвом, логістика та доставка, управління персоналом, системи моніторингу даних
Мобільні програми електронних послуг
Дошки оголошень, онлайн-школи, онлайн-кінотеатри, платформи надання електронних послуг, платформи кешбеку, відеохостинги, тематичні портали, платформи онлайн-бронювання та запису, платформи онлайн-торгівлі

Це лише деякі з типів мобільних додатків, з якими ми працюємо, і кожен із них може мати свої специфічні особливості та функціональність, а також бути адаптованим під конкретні потреби та цілі клієнта.

Послуги, які ми пропонуємо
Показано 1 з 1Усі 1735 послуг
Інтеграція SAP з мобільним застосунком
Складний
від 2 тижнів до 3 місяців
Часті запитання

Наші компетенції:

Етапи розробки

Останні роботи

  • image_mobile-applications_feedme_467_0.webp
    Розробка мобільного додатка для компанії FEEDME
    792
  • image_mobile-applications_xoomer_471_0.webp
    Розробка мобільного додатку для компанії XOOMER
    671
  • image_mobile-applications_rhl_428_0.webp
    Розробка мобільного додатку для компанії RHL
    1097
  • image_mobile-applications_zippy_411_0.webp
    Розробка мобільного додатку для компанії ZIPPY
    969
  • image_mobile-applications_affhome_429_0.webp
    Розробка мобільного додатку для компанії Affhome
    914
  • image_mobile-applications_flavors_409_0.webp
    Розробка мобільного додатку для компанії FLAVORS
    495

Інтеграція SAP з мобільним додатком

SAP — корпоративна система рівня enterprise з десятками продуктів (SAP S/4HANA, SAP ECC, SAP SuccessFactors, SAP Ariba), і кожна має свій API. Помилка — починати розробку мобільного додатка без попереднього аудиту того, який саме SAP-продукт у клієнта та які API відкриті. "SAP інтеграція" — це не одне завдання, це категорія завдань з принципово різними підходами.

SAP API: три покоління

BAPI / RFC — старий стандарт на ABAP. Виклик через SAP JCo (Java Connector) або SAP NCo (.NET Connector). Для мобільного — тільки через проміжне ПО, яке трансльорує RFC в HTTP. Прямого RFC з iOS/Android немає.

SAP Gateway / OData — покоління SAP NetWeaver та ECC 6.0. RESTful інтерфейс поверх OData v2/v3. Дані у форматі Atom XML або JSON (якщо клієнт запитує $format=json). OData v2 — застарілий стандарт з численними quirks: Edm.DateTime замість ISO 8601, специфічна фільтрація, __deferred для ліниво завантажених навігаційних властивостей.

SAP Business Technology Platform (BTP) + CAP — сучасний підхід для S/4HANA Cloud. CAP (Cloud Application Programming Model) публікує OData v4 сервіси. Чистіше, передбачуваніше, але доступний не в усіх клієнтів.

SAP Mobile Services

SAP надає власне проміжне ПО для мобільних — SAP Mobile Services (раніше SAP Mobile Platform / Kapsel). Функції: аутентифікація, офлайн-синхронізація, push-уведомлення, шифрування даних на пристрої. Інтеграція через SAP BTP SDK для iOS та SAP BTP SDK для Android.

SAP BTP SDK для Android — Kotlin, обгортка над SAP Mobile Services API:

val serviceManager = ServiceManager(
    applicationContext,
    SAPServiceManager.configUrl,
    object : ServiceManager.ServiceManagerListener {
        override fun onServiceManagerReady() {
            // Готов до роботи
            initializeODataService()
        }
    }
)

ODataRequestExecutor виконує запити до OData-сервісів з автоматичним CSRF-токеном, повтором при 401, офлайн-буферизацією. Це закриває більшість типових проблем інтеграції, але прив'язує до SAP-екосистеми.

Аутентифікація: SAML та OAuth

SAP S/4HANA Cloud використовує OAuth 2.0 з SAP Identity Authentication Service (IAS) як IdP. Мобільний додаток проходить Authorization Code Flow через IAS, отримує JWT, передає в API S/4HANA.

SAP ECC на NetWeaver — часто SAML 2.0 або базова аутентифікація. SAML на мобільному — через WebView з перехопленням редиректу та вилученням сессійного токена. Це крихко: при зміні конфігурації IdP на стороні SAP мобільна авторизація ламається.

Рекомендація: додати OAuth 2.0 прокси через SAP BTP або Keycloak з SAML-SAP мостом. Мобільний клієнт використовує стандартний OAuth, складність SAML прихована у проміжному ПО.

CSRF-токен — типова проблема

SAP OData вимагає CSRF-токен для всіх модифікуючих запитів (POST, PUT, DELETE, PATCH). Схема:

  1. GET /odata/sap/.../$metadata з заголовком X-CSRF-Token: Fetch
  2. SAP повертає токен у заголовку X-CSRF-Token: {token_value}
  3. Всі наступні POST/PUT/DELETE включають X-CSRF-Token: {token_value}

Токен дійсний в рамках сессії. При розриві сессії (тайм-аут, повторна аутентифікація) потрібен новий. Обгортка в HTTP-клієнті, яка автоматично отримує CSRF при 403 CSRF token validation failed та повторює запит — стандартний паттерн.

На Retrofit — Interceptor, який перехопляє відповідь з 403, робить fetch CSRF, додає заголовок та повторює оригінальний запит.

Офлайн та SAP OData

SAP Fiori Elements підтримує офлайн через OData Offline Store у SAP BTP SDK. Offline Store — SQLite-кеш OData-запитів з двосторонньою синхронізацією. Користувач працює з локальною копією, при мережі — синхронізація з SAP.

Конфлікти в SAP офлайн: механізм ETag. Перед PUT SAP повертає ETag запису, клієнт включає If-Match: {etag} при оновленні. Якщо запис змінився на сервері — SAP повертає 412 Precondition Failed. SDK надає callback розв'язання конфліктів.

Типові складності

Продуктивність OData v2. $expand для навігаційних властивостей робить JOIN на стороні SAP ABAP — може виконуватися 5-15 секунд. Альтернатива: паралельні запити без expand або проміжне ПО, яке кешує та агрегує.

Різниці між S/4HANA та ECC. API для одного й того ж об'єкта (наприклад, замовлення покупця) в S/4HANA OData (API_SALES_ORDER_SRV) та ECC Gateway (ZSHOP_SRV) абсолютно різні. Абстрактний шар у проміжному ПО обов'язковий, якщо потрібна підтримка обох варіантів.

Пагінація в OData v2. $skip + $top або серверна пагінація через заголовок sap-pagesize. $skip з великими значеннями на SAP ABAP повільний — кожен раз повний розрахунок. Серверна пагінація через SAP skiptoken переважніша.

Терміни

Аудит SAP landscape клієнта та доступних API: 3-5 днів. Прототип інтеграції (читання даних через OData, аутентифікація): 1-2 тижні. Повноцінна інтеграція з офлайн-підтримкою, CSRF-handling, розв'язанням конфліктів: 2-4 місяці. Вартість залежить від версії SAP, обсягу інтегрованих об'єктів та вимог до офлайну. Розраховується індивідуально.