Интеграция — это процесс, требующий усилий и взаимного сотрудничества. Но как быть, если вторая сторона данного процесса резко всё (или не всё) поменяла, и нам надо внести достаточно весомые изменения?
Помимо внесения изменений в саму разработку и проведения тестирования, нужно донести разработку до продуктивного контура.
При этом возникает ряд сложностей:
При этом работающая интеграция и наличие изменений во внешней системе критичны.
Итого приходится думать, как решить эту проблему до исправления разработкой.
В целом, данная ситуация не совсем нормальная и при её появлении нужно организационно подходить к устранению первопричин, стараясь минимизировать их. Конечно, со своей стороны, ещё на этапе проектирования интеграции, мы описываем все необходимые документы и утверждаем их с заказчиком. Но когда у заказчика сложная инфраструктура и не все внешние системы поддерживаются самолично, такая ситуация нередка. Усложняется всё тем, что ошибка же видна в нашем СЭД. Именно у нас не отработал заявленный функционал и ряд заказчиков из-за этого переходят на "Тёмную" сторону внешней системы, касаемо виновника в инциденте.
На этот случай при проектировании интеграции можно заложить небольшой буфер — справочник, где хранится вся история отправленных запросов. Тем более, что нам может понадобиться эта информация для отчетности или доказательства работы сервисов. Структура справочника достаточно простая — это дата отправки, код ответа и сама структура запроса.
Если мы говорим о Directum RX, то здесь нам на помощь приходит уже встроенный функционал, который можно использовать для управления интеграциями. Например, справочники в Directum RX не только удобно настраивать под нужды конкретной организации, но и позволяют централизованно хранить данные, связанные с интеграцией. Пароли, явки и эндпоинты лучше хранить в константах или в отдельном таком справочнике настройки, чтобы при необходимости их можно было поменять.
В случае с Directum RX это также удобно реализуется через настройки системы, где параметры интеграции могут быть вынесены в отдельный блок, доступный только для администратора системы. Кроме того, Directum RX поддерживает гибкую настройку маршрутов, благодаря чему можно заранее предусмотреть обработку нестандартных ситуаций. Например, можно настроить автоматическое оповещение ответственных лиц о некорректных запросах или ошибках интеграции.
Вернёмся к нашей ситуации с неожиданными изменениями. Чем же нам помогут эти логи в виде справочников? А помогут они нам тем, что до установки пакета мы можем вручную менять ставшую неверной структуру запроса на корректные данные и повторно их отправить. Для этого на действие закладывается возможность повторной отправки с возможностью корректировки данных. Конечно же, права для работы с этим справочником лучше ограничить. Правда, кому-то придётся проделать неплохую работу и следить за пополнением запросов…
Directum RX здесь вновь проявляет себя с лучшей стороны: встроенные механизмы позволяют легко создавать и настраивать права доступа, так что управлять такими справочниками смогут только уполномоченные сотрудники.
Более того, используя возможности платформы, можно организовать автоматическую проверку данных перед отправкой и исключить риск повторных ошибок. Но тем самым мы можем избежать нежелательного негатива (хоть и не мы были виновником проблемы).
Если же всё-таки виновники мы, и на продуктив улетело то, что не должно было, — мы также можем вручную обрабатывать ошибки. Ну а если совсем всё плохо, то громко кричим “Хьюстон, у нас проблема”, ну и конечно всегда можно позвать разработчика с кофе, шоколадкой и нервным тиком, чтобы он срочно починил всё.
И, конечно, стоит помнить, что Directum RX — это не просто система документооборота, а настоящий инструмент для оптимизации бизнес-процессов, включая интеграции. Если всё настроить правильно, то даже непредвиденные изменения во внешних системах не застанут вас врасплох, а пользователи даже не заметят, как вы героически спасли их от очередного “ит’с брокен”.
Как я понимаю подобный подход к реализации интеграции реализован в шаблоне разработки https://github.com/DirectumCompany/rx-template-integrationtemplates/tree/main, а именно в Шаблон очереди сообщений
Анатолий, вполне возможно. Шаблон этот ранее не использовали
Авторизуйтесь, чтобы написать комментарий