Как получить и обработать результирующие параметры при вызове БП из кода?

Как получить и обработать результирующие параметры при вызове БП из кода?

В версии 7.17.1 обещали получение параметров из интерпретируемого процесса, но примеров как и что нету. Запуск я проводил с помощью класса FlowEngine и метода RunProcess.
В sdk по классу flowengine ничего не добавилось.

Нравится

1 комментарий
Лучший ответ

FlowEngine - устаревший класс и он не рекомендуется к использованию.

Для работы с процессами лучше использовать экземпляр IProcessExecutor который можно получить из UserConnection. Пример запуска процесса с получением одного параметра:

string processName = "UsrCustomProcess";
string paramName = "UserProcessParameter";
IProcessExecutor processExecutor = UserConnection.ProcessEngine.ProcessExecutor;
// Необходимо указание типа параметра
int result = processExecutor.Execute<int>(processName, paramName);

Пример запуска с получением нескольких параметров:

string processName = "UsrCustomProcess";
string[] paramNames = { "UserProcessParameter0", "UserProcessParameter1" };
IProcessExecutor processExecutor = UserConnection.ProcessEngine.ProcessExecutor;
// Второй аргумент - список входящих параметров
ProcessDescriptor processDescriptor = processExecutor.Execute(processName, new Dictionary<string, string>(), paramNames);
// Получение параметров
IReadOnlyDictionary<string, object> result = processDescriptor.ResultParameterValues;

 

FlowEngine - устаревший класс и он не рекомендуется к использованию.

Для работы с процессами лучше использовать экземпляр IProcessExecutor который можно получить из UserConnection. Пример запуска процесса с получением одного параметра:

string processName = "UsrCustomProcess";
string paramName = "UserProcessParameter";
IProcessExecutor processExecutor = UserConnection.ProcessEngine.ProcessExecutor;
// Необходимо указание типа параметра
int result = processExecutor.Execute<int>(processName, paramName);

Пример запуска с получением нескольких параметров:

string processName = "UsrCustomProcess";
string[] paramNames = { "UserProcessParameter0", "UserProcessParameter1" };
IProcessExecutor processExecutor = UserConnection.ProcessEngine.ProcessExecutor;
// Второй аргумент - список входящих параметров
ProcessDescriptor processDescriptor = processExecutor.Execute(processName, new Dictionary<string, string>(), paramNames);
// Получение параметров
IReadOnlyDictionary<string, object> result = processDescriptor.ResultParameterValues;

 

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