Документация по разработке bpm’online
PDF

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() элемент процесса уже выполнен на момент вызова метода, то повторно такой элемент выполняться не будет.

© Terrasoft 2002-2019.

Был ли данный материал полезен?

Как можно улучшить эту статью?