Возобновление Бизнес-процесса после аварийного завершения работы клиента

Добрый день!
Возник вопрос:
Каким образом можно возобновить Бизнес-процесс с текущего шага, если в течении его выполнения произошёл сбой системы (завис клиент, перегрузилась рабочая станция и т.д.), в следствии чего была некорректно завершена работа?
В реестре процессов бизнес-процесс не отображается.

Нравится

5 комментариев

Здравствуйте.

Если процесс был запущен - он должен отображаться в реестре "Процессов". Там же есть кнопка "Выполнить шаг", которая запускает тот элемент на котором БП был остановлен:

Спасибо за ответ. Но как я писал выше:

"Коновалов Игорь" написал:В реестре процессов бизнес-процесс не отображается.

Такое происходит если, например, текущим элементом БП является скрипт или текущим элементом является задача с состоянием "Выполнена".
Вопрос открыт.

Игорь, можно попробовать добавить кнопку в реестр "Процессов", по нажатию на которую выполнить код:

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

Затем работать с полученным текстом.

Показать все комментарии