Web-сервис ProcessEngineService.svc
Glossary Item Box
Общая информация
Одной из задач интеграции внешнего приложения с bpm'online является запуск бизнес-процессов. С этой целью в сервисной модели bpm'online реализован web-сервис ProcessEngineService.svc, позволяющий запускать бизнес-процессы извне. web-сервис ProcessEngineService.svc доступен по URL:
http[s]://<адрес_приложения_bpm'online>/0/ServiceModel/ProcessEngineService.svc
![]() |
ВАЖНО Прежде чем обращаться к веб-сервису с помощью сторонних инструментов, необходимо выполнить аутентификацию пользователя, от имени которого будут выполняться запросы. Для этого следует использовать сервис AuthService.svc (см. "Сервис аутентификации AuthService.svc" и "Аутентификация внешних запросов к веб-сервисам bpm'online"). Этот сервис вернет соответствующие cookies, которые следует использовать при запросах к ProcessEngineService.svc. Кроме того, если в приложении включена защита от CSRF-атак, то в заголовок запросов следует также добавлять токен BPMCSRF (см. "Защита от CSRF-атак при интеграции c bpm'online"). Примеры выполнения запросов к веб-сервисам bpm'online после аутентификации пользователя приведены в статьях "Выполнение запросов по протоколу OData с помощью Fiddler" и "Как вызвать конфигурационный сервис с помощью Postman". |
![]() |
К СВЕДЕНИЮ Пример использования сервиса ProcessEngineService.svc описан в статье "Как запускать процессы bpm'online через веб-сервис". Полный перечень методов веб-сервиса доступен в документации по классам серверной части ядра платформы. |
Методы Web–сервиса ProcessEngineService
Запуск бизнес-процесса
Чтобы запустить в системе определенный бизнес-процесс, необходимо вызвать метод Execute() сервиса. Вызов метода Execute() можно выполнять с помощью HTTP-запросов GET и POST. Общий формат вызова метода Execute():
http[s]://<адрес_приложения_bpm'online>/0/ServiceModel/ProcessEngineService.svc/PROCESSSCHEMANAME/Execute[?<опциональные входящие параметры бизнес–процесса>],
где PROCESSSCHEMANAME — название схемы бизнес-процесса в bpm'online.
![]() |
К СВЕДЕНИЮ Название схемы бизнес-процесса можно узнать в разделе [Конфигурация]. |
Например, необходимо выполнить запуск бизнес-процесса с названием UsrSomeProcess. При этом процессу передается один параметр procParam со значением 15. Тогда строка GET-запроса будет следующей:
.../0/ServiceModel/ProcessEngineService.svc/UsrSomeProcess/Execute?procParam=15
Web-cервис ProcessEngineService.svc позволяет запустить определенный бизнес-процесс и получить результат выполнения этого процесса через заданный параметр. Для этого необходимо вызвать метод Execute() в следующем формате:
http[s]://<адрес_приложения_bpm'online>/0/ServiceModel/ProcessEngineService.svc/PROCESSSCHEMANAME/Execute?ResultParameterName=RESULTPARAMETERNAME[&<опциональные входящие параметры бизнес процесса>],
где
- PROCESSSCHEMANAME — название схемы процесса, экземпляр которого необходимо запустить на выполнение;
- RESULTPARAMETERNAME — имя параметра процесса, который хранит результат выполнения процесса. Если этот параметр не задан, то web-сервис запустит указанный бизнес-процесс без ожидания результата его выполнения.
![]() |
ВАЖНО Если в вызываемом процессе отсутствует параметр с именем RESULTPARAMETERNAME, web-сервис вернет значение null. |
Например, необходимо выполнить запуск бизнес-процесса CustomProcess. Результат выполнения процесса хранится в исходящем параметре процесса CustomProcessResult и возвращается в запросе. Дополнительно в процесс CustomProcess передается параметр incomeParam со значением "IncomeParamValue". Тогда строка GET-запроса будет следующей:
.../0/ServiceModel/ProcessEngineService.svc/CustomProcess/Execute?ResultParameterName=CustomProcessResult&incomeParam=IncomeParamValue
Результат выполнения метода Execute() возвращается в виде строки, содержащей JSON-объект (допустимо получение значения null). Десериализация JSON-объекта и приведение полученного результата к определенному типу данных должны выполняться в коде, вызывающем web-сервис.
Запуск на выполнение отдельного элемента бизнес-процесса
Чтобы запустить на выполнение отдельный элемент бизнес-процесса, необходимо вызывать метод ExecProcElByUId() web-сервиса. В качестве параметра данный метод принимает идентификатор запускаемого элемента процесса. Формат вызова метода ExecProcElByUId():
http[s]://<адрес_приложения_bpm'online>/0/ServiceModel/ProcessEngineService.svc/ExecProcElByUId/PROCELUID
где PROCELUID — идентификатор запускаемого элемента процесса.
![]() |
ВАЖНО Запускать на выполнение можно только элемент выполняющегося процесса. Если запускаемый методом ExecProcElByUId() элемент процесса уже выполнен на момент вызова метода, то повторно такой элемент выполняться не будет. |