ELMA как подтолкнуть зависший процесс.

Aug 09, 2016 08:55

Встречаются ситуации, когда процесс остановился на какой-то операции и не хочет идти дальше. То есть состояние процесса "Текущий", но задач по нему нет. Штатных способов продолжить его выполнение нет. Приведенный сценарий позволит процессу идти дальше.

var task = (IWorkflowTaskBase)TaskBaseManager.Instance.Load(Task_ID);
var service = Locator.GetService();
service.Execute(new WorkflowTaskTerminateData(task.WorkflowBookmark, Connector_UID));
где
Task_ID - идентификатор задачи, на которой остановился процесс.
Connector_UID - UID коннектора, по которому требуется совершить переход. Найти его проще всего, выгрузив процесс в файл конфигурации. Для уменьшения размера лучше выгрузить только один процесс, без зависимостей. Далее файл выгрузки можно распаковать - это простой .zip архив. Файл config.xml содержит схему бизнес-процесса.
Коннекторы находятся в тегах типа

Найти нужный коннектор проще по атрибутам StartPlug, EndPlug - они указывают начальный и конечный элемент коннектора соответственно.

elma, полезные скрипты

Previous post Next post
Up