Изменение элементов бизнес-процесса (WorkFlow) из сервиса

Автор FeelsSoBad, 11.04.24, 15:32:42

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

FeelsSoBad

Добрый день, возник следующий вопрос. Допустим, у меня реализован бизнес-процесс, в котором есть автооперация. Эта автооперация отправляет SendNotification с кодом, который обрабатывается моим сервисом, и DATA, в которую запакованы необходимые элементы. После получения нотификейшна, в сервисе DATA распаковывается, выполняется какая-то логика и к объекту бизнес-процесса создаются замечания. Дело в том, что нужно реализовать следующую логику - если в процессе обработки создались замечания, то результат автооперации - отрицательный (т.е. SetResultOperation(false)). Проблема следующая - я не понимаю, как из сервиса повлиять на автооперацию, то есть передать ей результат обработки данных. В документации есть целый блок про IWFBuissinesLogic, но у меня к нему к сожалению нет доступа. Методы API WorkFlow (вызываются через метод RunMethod объекта PluginCall) у меня почти не работают, получилось только вызвать датасет с "GetRouteItems". Пробовал поменять состояние элемента БП через "SetItemStateSimple", но он выкидывает исключение про неправильное состояние объекта. Переменные или параметры бизнес-процесса или автооперации я по какой-то причине прочитать/изменить не могу (приходит пустой датасет). Сталкивался ли кто-нибудь с похожей проблемой? Пожалуйста, подскажите возможные методы решения. Заранее спасибо!

Chaa

А какая у вас версия Лоцмана? От этого многое зависит.

Движение по процессу выполняется библиотекой WFBuissinesLogic. В ней выполняются автооперации и т.п.

Возможно, из автооперации стоит использовать функции CallLoodsmanPlugin или ExecPluginFunction, которые вызовут вашу обработку и вернут результат для SetResultOperation.
+ Благодарностей: 1

FeelsSoBad

Большое спасибо, но использовать указанную библиотеку у меня возможности нет. Проблема уже решилась - в автооперации для объекта Route (то есть, самого бизнес-процесса) можно установить значение переменной (как я понял, только string) через метод SetVariable. В последствии, ее можно поменять из плагина тем же методом SetVariable, но вызываемым через RunMethod у PluginCall