Один обмен вместо десяти выгрузок
Каждая выгрузка появляется по уважительной причине: отделу срочно нужны данные. Через два года их десять, и никто не может сказать, какая из них источник истины.
Типичная картина: продажи выгружают заказы в таблицу, склад забирает остатки по своему скрипту, маркетинг тянет цены через отдельный запрос, а бухгалтерия сверяет всё это вручную в конце месяца. Формально данные есть. Практически — в каждый момент времени существует несколько версий одной и той же цифры.
Проблема не в количестве интеграций, а в том, что у них нет общих правил. Никто не знает, что произошло, если выгрузка не отработала в пятницу вечером: повторится ли она, увидит ли кто-нибудь ошибку, чем это закончится для клиента, который уже оплатил заказ.
Что должно быть у обмена
- Журнал операций. Каждая передача данных фиксируется: что отправили, что получили в ответ, когда. Без журнала разбор расхождения превращается в гадание, а с журналом — в чтение.
- Повторы при сбое. Внешние системы недоступны, отвечают ошибкой или отвечают слишком долго — это норма, а не исключение. Обмен должен уметь вернуться к неудавшейся операции сам, а не ждать, пока человек заметит.
- Сверка. Регулярная проверка, что в двух системах одинаковое количество документов и совпадающие суммы. Расхождение находит система, а не клиент.
Расхождение всегда имеет причину. Вопрос только в том, лежит она в журнале или её нужно искать заново.
Порядок вместо героизма
Когда обмен один, у него появляется владелец, регламент и понятное поведение при сбое. Отделам не нужно заводить собственные выгрузки: данные приходят в согласованном виде и в известное время.
Отдельная выгода — скорость изменений. Добавить новую площадку или новый тип документа в систему с одним маршрутом дешевле, чем в набор скриптов, каждый из которых написан по-своему.
С чего начинаем
Сначала описываем текущее состояние: какие системы обмениваются данными, какими способами, кто это поддерживает. Затем выбираем маршрут, который закрывает больше всего болей, и переводим на него первый поток — обычно это заказы или остатки. Дальше подключаем остальные, не останавливая работу.
Похожая задача у вас?
Расскажите ситуацию — скажем, что делали в подобных проектах и с чего начать.