Администрирование процессов — починка зависших
Что вы узнаете
- Когда и зачем использовать Администрирование процессов
- Как найти зависший процесс и диагностировать проблему
- Доступные админские действия и когда что применять
- Стандартный диагностический поток при жалобе «застряло»
Что такое Администрирование процессов
Большую часть времени документ проходит согласование без сбоев: задачи назначаются, согласующие действуют, документ приходит к Согласован или Отклонён. Но иногда что-то идёт не так и тихо останавливает процесс с точки зрения обычного пользователя:
- Задача назначена должности, которая сейчас вакантна (человек ушёл; никто не заменил).
- URL обратного вызова, указывающий на внешнюю систему, перестал отвечать.
- Скрипт выполнения (внутренний шаг, который VAT Portal запускает между задачами) упал на плохих данных.
Когда такое случается, движок процесса ставит экземпляр в статус Обслуживание. Обычные пользователи видят, что документ вечно висит на «На согласовании». Сюда приходит Администрирование процессов: диагностический и ремонтный инструмент, позволяющий админам видеть, почему экземпляр застрял, и действовать, чтобы разблокировать.
Открытие Администрирования процессов
Документооборот → Администрирование процессов в боковой панели. Пункт появляется, только если у учётной записи есть право — конкретно на ресурс wfl_instance. Если не видите, доступа нет.
Страница-список — найти зависший экземпляр
Список Администрирования показывает каждый экземпляр процесса компании.
Верх страницы:
- Шесть вкладок-фильтров статуса: Все, Активные, Согласованные, Отклонённые, FailedToInitiate и Обслуживание. Вкладка Обслуживание подсвечена янтарным специально — привлекает внимание, потому что обычно это то, что интересует.
- Поле поиска ID документа — полезно, если пользователь дал номер документа и хотите перейти прямо к его экземпляру процесса.
Таблица показывает:
- ID экземпляра
- ID документа
- Статус (цветной значок)
- Создал (разрешено в имя)
- Метки времени Создан / Обновлён
- Комментарий (краткая заметка, если есть)
Клик по строке открывает её страницу деталей.
workflow-admin-list-maintenanceСтраница деталей — диагностика проблемы
При клике по застрявшему экземпляру получаете детальный вид со всем нужным, чтобы понять, что пошло не так.
Общая информация и URL обратных вызовов
Сверху две карточки с основами:
- Общая информация — ID экземпляра, ID процесса, ID документа (кликабелен — открывает страницу деталей документа в той же вкладке), текущий статус, прикреплённый комментарий.
- URL обратных вызовов —
initUrlиcompleteUrl, настроенные в процессе. Это внешние HTTP-эндпоинты, которые VAT Portal вызывает при старте и завершении процесса. Неправильно настроенные URL — частый источник зависаний.
Экземпляры задач
Сворачиваемая таблица со списком каждой задачи в экземпляре:
- Имя задачи, номер шага (cons), статус, кто завершил (если кто-то), комментарий и столбец Ошибка, показывающий число > 0, если задача ошибкой.
Действия на задачу (при праве обновлять):
- Редактировать Push Result — настроить webhook, срабатывающий после завершения задачи.
- Редактировать Ask Approval — настроить webhook, срабатывающий для запроса согласования.
- Триггернуть Push Result — вручную запустить коллбэк push-result для уже согласованной задачи. Виден только для Согласованных. Полезен, когда оригинальный вызов не прошёл и нужно повторить.
Скрипты — основной диагностический инструмент
workflow-admin-detail-scriptsСкрипты — маленькие внутренние команды, которые VAT Portal запускает во время обработки процесса — вроде «активировать эту задачу», «запустить этот webhook», «перейти к следующему шагу». Карточка Скрипты перечисляет каждый скрипт, который был выполнен (или попытался) для экземпляра, по порядку.
- Успешные скрипты — обычные.
- Неудачные скрипты подсвечены красным — красная левая рамка, красный фон, сообщение об ошибке красным под деталями.
Это самая полезная карточка для диагностики. Если процесс застрял, один из этих скриптов упал; сообщение об ошибке обычно говорит, что пошло не так, довольно человеческим языком:
- «Не найден активный пользователь для должности ID 42» → должность вакантна, назначьте пользователя
- «URL недоступен: http://erp.internal/api/callback» → эндпоинт коллбэка лежит или неправильно настроен
- «Значение поля не конвертируется в число» → данные в документе не соответствуют ожиданиям условия
Увидев ошибку, вы знаете, что чинить.
Админ-действия
Карточка Админ-действия — где вы вносите изменения. Доступные кнопки зависят от статуса и прав.
| Действие | Когда использовать | Подтверждение |
|---|---|---|
| Реактивировать (зелёная) | Обычный фикс. Доступно для Обслуживание или FailedToInitiate. Пытается продолжить процесс с точки остановки. | Короткое подтверждение |
| Отклонить (оранжевая) | Принудительно отклонить зависший экземпляр, когда реалистичного способа восстановить нет. Требует комментарий (минимум 5 символов). | Подтверждение с textarea |
| Удалить (красная) | Навсегда удалить экземпляр. Используйте, только когда процесс никогда не должен был работать правильно и хотите чистый лист. Документ остаётся, но его история согласования теряет этот экземпляр. | Диалог подтверждения |
| Обновить URL | Починить неправильный initUrl или completeUrl на лету. | Диалог с текущими значениями |
| Авто-завершение | Настроить поведение авто-завершения — статус, время ожидания и комментарий. Продвинутая настройка; используйте, когда нужно авто-продвижение после периода неактивности. | Диалог с тремя полями |
Стандартный диагностический поток
Рутина, покрывающая большинство реальных инцидентов:
- Откройте Администрирование процессов → отфильтруйте по Обслуживание. Если пусто, система не застряла — возьмите у пользователя реальный ID документа, поищите его и посмотрите статус.
- Кликните застрявший экземпляр — открывает страницу деталей.
- Прокрутите к карточке Скрипты. Найдите первый красный скрипт. Прочитайте сообщение об ошибке.
- Почините корневую причину — вне Администрирования. Примеры:
- Вакантная должность → HR → Должности → Сотрудники, назначьте кого-то.
- Плохой URL коллбэка → вернитесь к карточке Админ-действия и нажмите Обновить URL.
- Пользователь удалён → либо переназначьте в HR, либо обновите URL.
- Ошибка вычисления условия → возможно, нужно починить дизайн процесса в Редакторе потока; для текущего застрявшего экземпляра Отклонить и попросить пользователя исправить/переотправить часто самый быстрый путь.
- Нажмите Реактивировать. Процесс возобновляется с точки остановки. Если пройдёт чисто, статус уходит из Обслуживание, и застрявший документ продолжает.
- Если Реактивировать не удалось (скрипт снова упал), прочитайте новое сообщение и вернитесь к шагу 4.
Если корневую причину нельзя починить и экземпляр должен закончиться, Отклоните с ясным комментарием о причине. Пользователь затем может исправить и переотправить как новый запуск.
Админ-действия на задачу (Push Result / Ask Approval)
Настройки webhook на отдельных задачах существуют для интеграций с внешними системами. Большинство админов их не трогают — настраивают один раз при проектировании процесса и оставляют. Могут понадобиться, когда:
- Внешняя система сменила эндпоинт, и URL webhook нужно обновить для конкретного экземпляра.
- Push-result коллбэк изначально упал (внешняя система лежала), а теперь вернулась — хотите повторить — используйте Триггернуть Push Result на Согласованной задаче.
Если не уверены, редактировать ли, не редактируйте. Поговорите с тем, кто настраивал оригинальную интеграцию.
Частые вопросы
Не вижу Администрирование процессов в боковой панели.
У учётной записи нет права wfl_instance. Старшие админы могут выдать со страницы Пользователей — см. Управление доступом пользователя.
Документ застрял в На согласовании, но его экземпляра нет на вкладке Обслуживание.
Используйте поиск по ID документа вверху списка. Если статус не Обслуживание, возможно, реально в процессе — посмотрите Скрипты и Экземпляры задач.
Реактивировать не помогло — экземпляр всё ещё застрял.
Откройте Скрипты снова — должен быть новый неудачный скрипт (возможно, тот же, если причину не починили полностью, или следующий, если прошли дальше). Прочитайте ошибку и почините.
Ошибка в Скриптах непонятная.
Сделайте скриншот и отправьте системному интегратору / партнёру внедрения. Ошибки скриптов отражают, что происходит под капотом, и иногда им нужен контекст, которого у вас нет.
В чём разница между Отклонить здесь и обычным отклонением с задачи?
Обычное отклонение делает согласующий в рамках решения о согласовании. Отклонить из Администрирования процессов — административное принудительное отклонение, используется, когда процесс не может продолжиться по техническим причинам и хотите формально закрыть экземпляр, чтобы создатель мог исправить и переотправить.
Безопасно ли Удалить экземпляр?
Удаляйте только если уверены, что экземпляра не должно было быть (напр., тест, пошедший не так, повреждённый черновик). Удаление убирает его из истории навсегда. Сам документ не удаляется — но запись этой попытки согласования исчезает.
Документ экземпляра тоже сломан — чинить оба?
Начните с экземпляра процесса. Если Реактивировать помогает, документ отлипнет автоматически. Если пришлось Отклонить или Удалить, документ окажется в Отклонён, и создатель может Исправить и переотправить — давая процессу свежий чистый старт.
Как в принципе предотвратить такие зависания?
Две вещи помогают больше всего:
- Держите должности назначенными текущим сотрудникам — вакантные — источник №1 зависших задач.
- Держите URL коллбэков актуальными при смене внешних систем — старые URL тихо падают, пока не придёт подходящий документ.