Взаимодействие с веб-сервисом осуществляется при помощи его методов. Каждый метод позволят выполнять определенное действие с процессом в системе ELMA.
Полный список доступных методов веб-сервиса и описание этих методов можно просмотреть на странице веб-сервиса адрес_сервера/Modules/EleWise.ELMA.Workflow.Processes.Web/WFPWebService.asmx (рис. 1).
Рис. 1. Список методов веб-сервиса
Просмотреть формат SOAP запроса и ответа можно на странице веб-сервиса. Для этого необходимо кликнуть мышью по названию метода. Откроется страница, содержащая описание метода. На ней, кроме текстового описания метода, приведены примеры запросов для версий SOAP 1.1 и SOAP 1.2. При составлении реальных запросов достаточно подставить фактические значения в текст запроса вместо элементов-заполнителей из примеров.
Доступно девять методов веб-сервиса:
Run. Предназначен для запуска экземпляра процесса. В полях запроса также можно передавать значения переменных, которые будут подставлены в контекст процесса при его запуске.
LoadContext. Предназначен для получения значений контекстных переменных процесса. Полученные значения можно использовать во внешней системе.
SaveContext. Предназначен для загрузки в контекст запущенного процесса данных.
ExecuteTask. Предназначен для завершения задачи процесса. В метод передается id задачи, uid перехода и необходимые значения контекстных переменных процесса. Задача выполняется с указанным контекстом и процесс переходит дальше по указанному переходу. Данный метод не проверяет полноту передаваемых данных, эту работу должно выполнять приложение, отправляющее запрос.
GetStatus. Предназначен для получения статуса экземпляра процесса. Например, позволяет узнать, завершилось ли выполнение экземпляра процесса.
GetActiveTasks. Предназначен для получения списка задач пользователя, выполнение которых в данный момент еще не завершено. В ответе веб-сервиса кроме названия и идентификатора задачи возвращаются также её параметры, такие как дата создания, срок завершения, имя и идентификатор исполнителя.
SendMessage и SendMessageToInstance. Предназначены для отправки сообщений в бизнес-процесс. Метод используется для работы с бизнес-процессами системы ELMA, в которых использована операция Ожидание сообщения. Если в ходе выполнения бизнес-процесса была достигнута операция Ожидание сообщения, выполнение процесса приостанавливается. Дальнейшее выполнение бизнес-процесса осуществляется после получения сообщения определенного вида, формируемого данными методами. В теле запроса можно осуществить передачу параметров, которые будут загружены в контекст процесса. Различие между методами SendMessage и SendMessageToInstance заключается в том, что при отправке сообщения первым методом, сообщение может получить любой экземпляр процесса, во втором же случае указывается конкретный экземпляр процесса, который получит сообщение.
Terminate. Предназначен для завершения выполнения конкретного экземпляра бизнес-процесса. В теле запроса можно также передать текстовое сообщение – причину, по которой процесс был принудительно завершен.
SOA Connector является неотъемлемой частью системы ELMA и не требует какой-либо дополнительной доводки или настройки. Возможность взаимодействия с процессами и их экземплярами при помощи SOAP-методов имеется только при условии, что процесс был опубликован с корректно сформированным токеном и установленными флажками Запуск из внешних систем и Веб-сервис в блоке Варианты запуска процесса (рис. 2).
Рис. 2. Настройки публикации процесса для использования веб-сервисов
Помимо веб-сервиса взаимодействия с бизнес-процессами, в ELMA реализован ряд веб-сервисов PublicAPI. Со списком веб-сервисов, а так же со списком и описанием методов можно ознакомиться на странице PublicAPI, доступной по адресу адрес_сервера/API/Help/Services.