Інтеграція ERP-системи з мобільним застосунком
ERP-інтеграція—одна з найскладніших технічно задач у корпоративному мобайлі. ERP-системи (SAP, Microsoft Dynamics, Oracle ERP, 1C) проектувалися не для мобільного: важкі моделі даних, синхронні транзакції, SOAP/XML API замість REST, жорстка бізнес-логіка. Прямене підключення мобільного—майже завжди провал.
Чому прямий API не працює
SAP ERP на ABAP повертає RFC-виклики або SOAP BAPI. Один запит даних по матеріалу може ініціювати 5-7 внутрішніх RPC, займати 3-8 секунд та повертати 200 КБ XML з непотрібними полями.
Microsoft Dynamics 365 має OData API—формально «сучасний», але відповідь з expand-вкладеностями розбухає до мегабайт. На мобільному з 4G парсинг у main thread = ANR на Android, блокування UI на iOS.
Oracle ERP Cloud—REST API є, але версіонується агресивно. Minor версія може мати breaking changes, існуюча інтеграція ломається після оновлення Oracle-інстансу.
Middleware: інтеграційний шар
Обов'язковий елемент архітектури—інтеграційний middleware між ERP та мобільним. Функції:
- Трансформація: XML/SOAP → JSON, важкі об'єкти → мобільні DTO
- Кешування: справочники (склади, номенклатура, контрагенти) оновлюються рідко—кеш з TTL 15-60 хвилин знімає навантаження з ERP
- Оркестрація: одна дія у мобільному (провести накладну) → кілька вызовів до ERP
- Буферизація: мобільний користувач без сети створює документ → middleware приймає та синхронно відправляє у ERP пізніше
Middleware на Node.js, Go, .NET або Java Spring. Apache Camel—для маршрутизації між кількома ERP. MuleSoft/Dell Boomi—enterprise-рішення для крупних клієнтів.
Аутентифікація та авторизація
ERP-системи мають власну систему прав, часто розграниченну по ролям: кладовщик бачить тільки свій склад, менеджер—тільки своїх клієнтів, бухгалтер—фінансові документи. Мобільне повинне respectити ці права.
Варіанти:
- Технічний ERP-користувач у middleware—простий, але втрачає контекст користувача (усі дії від одного акаунту, нема аудиту)
- SSO через корпоративний IdP (Azure AD, Okta, Keycloak): користувач логінється через SAML/OAuth 2.0, IdP видає токен, middleware маппит на ERP-користувача. Аудит збережено, права з ERP застосовуються коректно.
На мобільному: MSAL SDK для Azure AD, AppAuth для стандартного OAuth 2.0. Зберігайте refresh token у Keychain/Android Keystore—не у SharedPreferences.
Офлайн та конфлікти у корпоративному контексті
Склад без інтернету. Кладовщик сканує штрих-коди, формує відгрузку—все локально. При появленні сети документ йде в ERP. Але залишок на складі міг змінитись (інший кладовщик відгрузив той же товар через веб-інтерфейс).
ERP-системи звичайно вирішують через оптимістичну блокування (перевірку версії при записі), резервування залишків. Middleware повинен передати відповідь ERP про помилку блокування назад у мобільний інтерфейс з зрозумілим повідомленням: «Залишок змінився. Поточний залишок: 15 шт. Ви спробували відгрузити 20 шт.»
Синхронізація справочників
Номенклатура в ERP—тисячі позицій, але кладовщику потрібні сотні, закріплені за його складом. Мобільне скачує дифференціальне оновлення (delta sync): GET /items?updated_since=2025-01-01T00:00:00Z. ERP-системи не завжди підтримують delta-запити—middleware обчислює delta на своїй стороні через власну реплику справочника.
Room (Android) + CoreData (iOS) зберігають локальну копію справочників. Фоновая синхронізація кожні N хвилин оновлює їх. Користувач працює з локальною копією—швидко, без очікування відповіді ERP.
Продуктивність та моніторинг
ERP-виклики повільні. Middleware логирує кожен виклик з duration, ERP-endpoint та результатом. Prometheus + Grafana або Datadog показують перцентилі відповідей: якщо p95 > 5 секунд на конкретний ERP-метод—кеш обов'язковий.
Timeout strategy: мобільний клієнт чекає максимум 10 секунд, потім показує помилку з кнопкою retry. Middleware не убивает виклик до ERP—завершує його та кешує результат.
Графік
Аудит ERP API та проектування middleware: 1-2 тижні. Базова інтеграція (читання даних, створення документів) з offline-буфером: 1-2 місяці. Повнофункціональна інтеграція з SSO, delta-sync, розв'язанням конфліктів та моніторингом: 2-4 місяці. Вартість розраховується індивідуально.







