Разработал для одного из клиентов бизнес-процесс, который по просроченным счетам отправляет СМС клиенту с напоминанием «Пора оплатить».
Всё протестировали не раз. Сдали клиенту. Проходит три дня и не работает.
Первым делом смотрим логи БП, нотификация по запуску БП приходила. Заходим в логи, а там ни одной записи. Все удалены. Клиент явно там не был, даже и не знает что такое место в Б24 есть.
Шайтан? Нет... Явно какая-то ошибка в БП.
СМС отправляем, когда счёт находится в определенных статусах (Черновик, Новый, Отправлен клиенту) - это левое плечо активити "Если" в остальных случаях чтобы снизить нагрузку на портал было принято решение БП удалять. Правое плечо — истина.
Всё вроде логично, НО забыли про овраги.
Значения статуса счёта получаем из Б24 через активити Русского робота, при определенных условиях они могут возвращать пустоту или ошибку.
Когда они возвращали пустоту, то шли по правой ветке и удаляли БП. Как показало дополнительное тестирование — это зависит от количества одновременных запросов. Чем больше запросов, тем больше ошибок.
Таким образом 400+ записей было удалено за 3 дня.
Всё поправимо. Бизнес-процесс переделал. Поставил дополнительные проверки. БП по счетам перезапустил. СМС пошли на клиентов. Новая конфигурация БП выглядит так.
Опыт:
- При работе с сторонними активити обязательно проверять получаемые данные;
- Максимально снижать нагрузку на API, чтобы было меньше ошибок;
- Условия для удаления и остановки БП прописывать явно без использования Истины.