1. Почему расширять через low-code, а не менять ядро
Прямые правки ядра ERP ведут к боли при обновлениях, vendor lock-in и хрупкой логике. Low-code расширения — альтернатива: ядро хранит авторитетные данные и учетные правила, а эксперименты и быстро меняющиеся процессы уходят во внешний гибкий слой.
Типичные цели low-code расширений:
- добавлять workflow без правок базовых таблиц и транзакций,
- безопасно экспериментировать с UX и боковыми процессами,
- интегрировать внешние сервисы без прямого «вшивания» в ядро ERP,
- давать citizen developers (бизнес-пользователи, создающие решения сами) строить инструменты с ограничениями.
2. Паттерн #1 — Workflow-слой над ERP
Простой вариант: ERP остается системой записи, а approvals и доп. шаги оркестрируются в low-code движке. Workflow дергает API ERP для чтения/обновления и хранит минимум собственного состояния.
Хорошие кандидаты:
- утверждение заявок на закупку до создания заказа в ERP,
- обработка исключений: кредитные лимиты, ценовые оверрайды, скидки,
- ручные проверки на комплаенс, качество, риски.
Декларативные платформы вроде lsFusion удобны: формы, состояния и правила задаются декларативно, а при завершении шага вызываются API или процедуры ERP.
3. Паттерн #2 — Side-car приложения для сложных процессов
Если процесс слишком специфичен или быстро меняется, его можно вынести в отдельное low-code приложение (side-car), использующее ERP как источник и приемник данных.
Примеры:
- диспетчеризация производства и UI для цеха,
- специализированные инструменты для проектов или сервиса,
- конфигураторы сложных продуктов.
Side-car читает справочники (клиенты, товары, цены) из ERP и пишет обратно только финальные транзакции (заказы, табели, результаты производства). Схема ERP остается чистой, а side-car быстро эволюционирует.
4. Паттерн #3 — Event-driven микрорасширения
В event-driven архитектуре ERP публикует события order.created, invoice.posted,
inventory.below_threshold. Low-code компоненты подписываются и выполняют маленькие действия.
Примеры микрорасширений:
- уведомления в чат или email,
- создание задач в тикет-системе,
- выгрузка агрегатов в аналитику/дашборды,
- триггер генерации документов.
В декларативных платформах реакции описываются правилами:
EVENT orderCreated WHEN Orders.status = 'Approved' DO
createShipment(Orders);
notifySales(Orders.customer);
Так логика расширений остается читаемой и аудируемой, в отличие от набора случайных скриптов.
5. Паттерн #4 — Low-code отчеты и «операционный BI»
Пользователям нужны быстрые ad-hoc отчеты с фильтрами, группировками и вычисляемыми полями. Вместо добавления каждого отчета в ядро ERP можно дать read-only представления и вынести визуализацию в low-code слой.
Плюсы:
- бизнес сам итеративно правит отчеты без деплоев,
- read-only доступ снижает риск случайных изменений данных,
- логика агрегаций эволюционирует быстрее, чем схема ERP.
6. Ограничители: как не сломать ERP
Сила low-code требует дисциплины. Несколько правил:
- Единый источник истины. Финансовые и складские данные живут в ERP.
- Понятная ответственность. Каждый workflow знает, какая система за что отвечает.
- Версионирование. Low-code приложения версионируются и тестируются как код.
- Доступы. По возможности наследовать роли и права ERP.
- Мониторинг. Логировать и трейсить действия low-code, касающиеся ERP.
7. Где low-code неуместен
Есть зоны, которые остаются в ядре ERP или в классической разработке:
- проводки бухучета и налогов,
- регуляторная отчетность со строгими форматами,
- производительные batch-процессы на больших данных,
- модули безопасности с секретами или критичными данными.
Итог
Low-code не заменяет ERP — он помогает расширять и защищать его ядро. Workflow-слой, side-car приложения, event-driven микрорасширения и low-code отчеты дают возможность быстро экспериментировать, сохраняя ядро ERP стабильным и чистым.