Возобновление Бизнес-процесса после аварийного завершения работы клиента
Добрый день!
Возник вопрос:
Каким образом можно возобновить Бизнес-процесс с текущего шага, если в течении его выполнения произошёл сбой системы (завис клиент, перегрузилась рабочая станция и т.д.), в следствии чего была некорректно завершена работа?
В реестре процессов бизнес-процесс не отображается.
Нравится
Здравствуйте.
Если процесс был запущен - он должен отображаться в реестре "Процессов". Там же есть кнопка "Выполнить шаг", которая запускает тот элемент на котором БП был остановлен:
Спасибо за ответ. Но как я писал выше:
"Коновалов Игорь" написал:В реестре процессов бизнес-процесс не отображается.
Такое происходит если, например, текущим элементом БП является скрипт или текущим элементом является задача с состоянием "Выполнена".
Вопрос открыт.
Игорь, можно попробовать добавить кнопку в реестр "Процессов", по нажатию на которую выполнить код:
var ItemID = 'идентификатор шага'; if (WFGetItemState(ItemID) == ws_Done) { ShowWarningDialog("Выбранный элемент процесса завершен. Обновите реестр"); return; } WorkflowGridArea.WorkflowEngine.ProcessWorkflowItem(ItemID);
Идентификатор шага нужно взять из tbl_WorkflowItem, с фильтрацией по WorkflowID и по StateId (Name).
В таком случае у меня вопрос: как мне идентифицировать тот или иной элемент из таблицы tbl_WorkflowItem по, например, ID продажи - если он храниться в параметрах БП?
Игорь, думаю только парсить содержимое поля Parameters.
Первоначально конвертировать его в текстовый формат
select cast(cast(Parameters as varbinary(max)) as varchar(max)) from tbl_WorkflowItem
Затем работать с полученным текстом.