<< Click to Display Table of Contents >> Практические рекомендации > Настройка бизнес-процессов Задача завершается с ошибкой «Deadend block detected…» |
Ситуация
При старте задачи по настроенному варианту процесса в веб-клиенте появляется ошибка: «Deadend block detected! Could not find any outgoing edges with Value = “” to continue execution».
Решение
Вероятная причина ошибки – неверно настроенные исполнители в одном из блоков типа «Задание». Чтобы найти блок с ошибкой и устранить ее:
1.Определите идентификатор задачи, в которой произошла ошибка. Для этого откройте лог-файл сервиса обработки схем задач (Workflow Process Service) и найдите в нем запись с текстом ошибки Deadend block detected. Пример записи:
{"t":"2023-05-30 10:00:55.169+04:00","pid":"20420+236","tr":"cl-7cc0cc80-f28ee44341","l":"Error","lg":"RabbitMqSubscriber","mt":"Deadend block detected! Could not find any outgoing edges with Value = \"ForRework\" to continue execution.","ex":{"type":"Sungero.WorkflowProcessService.DeadEndException", "m":"Deadend block detected! Could not find any outgoing edges with Value = \"ForRework\" to continue execution.", ...}
Найдите предшествующую запись с атрибутом instanceId, в котором содержится идентификатор остановившейся задачи. Пример записи:
{"t":"2023-05-30 10:00:55.169+04:00","pid":"20420+236","tr":"cl-7cc0cc80-f28ee44341","l":"Info","lg":"InstancesStorage","mt":"Process instance loaded. InstanceId = {instanceId}, SchemeId = {instanceSchemeId}","args":{"instanceId":960127,"instanceSchemeId":497},"tn":"Client","v":"4.7.0.0058"}
2.Определите номер последнего выполненного блока. Для этого откройте лог-файл сервиса выполнения блоков схем задач (Workflow Block Service) и по идентификатору остановившейся задачи в атрибуте taskId найдите в нем последнюю запись со строкой «CompleteAssignmentMessage». В атрибуте blockId содержится номер последнего выполненного блока. Пример записи:
{"durationMs":272,"status":"Ok","name":"Handle block message","taskId":960127,"blockId":"4","messageType":"CompleteAssignmentMessage","processId":"37e0e319-6e6f-4665-9bfd-9e293718eb34"},"un":"NT_WORK\\ServiceUser","tn":"Client","v":"4.7.0.0058"}
3.Откройте схему варианта процесса, по которому была запущена задача.
4.На схеме перейдите к блоку с найденным номером. В каждом блоке типа «Задание», которые выходят из этого блока, проверьте настройку свойства Исполнители. Возможна одна из ситуаций:
•в качестве исполнителя указана вычисляемая роль, но ее состав не задан (пустой). В справочнике Вычисляемые роли проверьте и при необходимости настройте состав роли;
•в качестве исполнителя указана закрытая запись сотрудника. Проверьте карточку сотрудника и при необходимости укажите другого исполнителя.
5.В блоках «Задание» заполните свойство Результат отсутствия исполнителей.
Чтобы проще отслеживать блок, в котором возникает ошибка, в прикладном коде настройте запись в лог-файл номера блока.
© Компания Directum, 2024 |