Интеграция 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
    756
  • image_mobile-applications_xoomer_471_0.webp
    Разработка мобильного приложения для компании XOOMER
    624
  • image_mobile-applications_rhl_428_0.webp
    Разработка мобильного приложения для компании RHL
    1054
  • image_mobile-applications_zippy_411_0.webp
    Разработка мобильного приложения для компании ZIPPY
    947
  • image_mobile-applications_affhome_429_0.webp
    Разработка мобильного приложения для компании Affhome
    862
  • image_mobile-applications_flavors_409_0.webp
    Разработка мобильного приложения для компании FLAVORS
    445

Интеграция 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). Для мобильного — только через middleware, который транслирует 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 для lazy-loaded навигационных свойств.

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

SAP Mobile Services

SAP предоставляет собственный middleware для мобильных — SAP Mobile Services (ранее SAP Mobile Platform / Kapsel). Функции: аутентификация, offline sync, push-уведомления, шифрование данных на устройстве. Интеграция через SAP BTP SDK for iOS и SAP BTP SDK for Android.

SAP BTP SDK for Android — Kotlin, wrapper над SAP Mobile Services API:

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

ODataRequestExecutor выполняет запросы к OData-сервисам с автоматическим CSRF-токеном, retry при 401, offline-буферизацией. Это закрывает большую часть типичных проблем интеграции, но привязывает к 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 скрыта в middleware.

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}

Токен живёт в рамках сессии. При разрыве сессии (timeout, повторная аутентификация) нужно получить новый. Обёртка в HTTP-клиенте, которая автоматически получает CSRF при 403 CSRF token validation failed и повторяет запрос — стандартный паттерн.

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

Offline и SAP OData

SAP Fiori Elements поддерживает offline через OData Offline Store в SAP BTP SDK. Offline Store — SQLite-кэш OData-запросов с двусторонней синхронизацией. Пользователь работает с локальной копией, при сети — sync с SAP.

Конфликты в SAP offline: ETag механизм. Перед PUT SAP возвращает ETag записи, клиент включает If-Match: {etag} при обновлении. Если запись изменилась на сервере — SAP вернёт 412 Precondition Failed. SDK предоставляет conflict resolution callback.

Типичные сложности

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

Различия между S/4HANA и ECC. API для одного и того же объекта (например, заказ покупателя) в S/4HANA OData (API_SALES_ORDER_SRV) и ECC Gateway (ZSHOP_SRV) абсолютно разные. Абстрактный слой в middleware обязателен, если нужна поддержка обоих вариантов.

Pagination в OData v2. $skip + $top или server-side paging через sap-pagesize заголовок. $skip с большими значениями на SAP ABAP медленный — каждый раз полный расчёт. Серверная пагинация через SAP skiptoken предпочтительнее.

Сроки

Аудит SAP landscape клиента и доступных API: 3-5 дней. Прототип интеграции (чтение данных через OData, аутентификация): 1-2 недели. Полноценная интеграция с offline-поддержкой, CSRF-handling, разрешением конфликтов: 2-4 месяца. Стоимость зависит от версии SAP, объёма интегрируемых объектов и требований к offline. Рассчитывается индивидуально.