WebServicesDeveloperGuide: различия между версиями
WikiSysop (обсуждение | вклад) м (1 версия импортирована) |
Dofs197 (обсуждение | вклад) (jboss4 removed) |
||
Строка 17: | Строка 17: | ||
== {{Title|URLs|Доступ к веб-сервисам}} == | == {{Title|URLs|Доступ к веб-сервисам}} == | ||
=== {{Title|Jboss7URL|WildFly10 и Jboss7}} === | |||
=== {{Title|Jboss7URL| | |||
<nowiki>http://localhost:8080/wfe-service-4.X.X/НазваниеВебСервиса/НазваниеИнтерфейса?wsdl</nowiki> | <nowiki>http://localhost:8080/wfe-service-4.X.X/НазваниеВебСервиса/НазваниеИнтерфейса?wsdl</nowiki> | ||
Строка 33: | Строка 30: | ||
| AuthenticationServiceBean | | AuthenticationServiceBean | ||
Сервис аутентификации пользователей | Сервис аутентификации пользователей | ||
| | | <html><a href="http://localhost:8080/wfe-service-4.X.X/AuthenticationWebService/AuthenticationAPI?wsdl" target="_blank">WildFly и Jboss7</a></html> | ||
<html><a href="http://localhost:8080/wfe-service-4.X.X/AuthenticationWebService/AuthenticationAPI?wsdl" target="_blank"> | |||
| [https://github.com/processtech/runawfe-free-server/blob/v4.4.1/wfe-service/src/main/java/ru/runa/wfe/service/AuthenticationService.java Открыть файл] | | [https://github.com/processtech/runawfe-free-server/blob/v4.4.1/wfe-service/src/main/java/ru/runa/wfe/service/AuthenticationService.java Открыть файл] | ||
Строка 41: | Строка 37: | ||
| AuthorizationServiceBean | | AuthorizationServiceBean | ||
Сервис авторизации операций (проверка полномочий) | Сервис авторизации операций (проверка полномочий) | ||
| | | <html><a href="http://localhost:8080/wfe-service-4.X.X/AuthorizationWebService/AuthorizationAPI?wsdl" target="_blank">WildFly и Jboss7</a></html> | ||
<html><a href="http://localhost:8080/wfe-service-4.X.X/AuthorizationWebService/AuthorizationAPI?wsdl" target="_blank"> | |||
| [https://github.com/processtech/runawfe-free-server/blob/v4.4.1/wfe-service/src/main/java/ru/runa/wfe/service/AuthorizationService.java Открыть файл] | | [https://github.com/processtech/runawfe-free-server/blob/v4.4.1/wfe-service/src/main/java/ru/runa/wfe/service/AuthorizationService.java Открыть файл] | ||
Строка 49: | Строка 44: | ||
| BotServiceBean | | BotServiceBean | ||
Сервис по управлению бот станциями, ботами и заданиями ботов | Сервис по управлению бот станциями, ботами и заданиями ботов | ||
| | | <html><a href="http://localhost:8080/wfe-service-4.X.X/BotWebService/BotAPI?wsdl" target="_blank">WildFly и Jboss7</a></html> | ||
<html><a href="http://localhost:8080/wfe-service-4.X.X/BotWebService/BotAPI?wsdl" target="_blank"> | |||
| [https://github.com/processtech/runawfe-free-server/blob/v4.4.1/wfe-service/src/main/java/ru/runa/wfe/service/BotService.java Открыть файл] | | [https://github.com/processtech/runawfe-free-server/blob/v4.4.1/wfe-service/src/main/java/ru/runa/wfe/service/BotService.java Открыть файл] | ||
Строка 57: | Строка 51: | ||
| DefinitionServiceBean | | DefinitionServiceBean | ||
Сервис управления определениями процессов | Сервис управления определениями процессов | ||
| | | <html><a href="http://localhost:8080/wfe-service-4.X.X/DefinitionWebService/DefinitionAPI?wsdl" target="_blank">WildFly и Jboss7</a></html> | ||
<html><a href="http://localhost:8080/wfe-service-4.X.X/DefinitionWebService/DefinitionAPI?wsdl" target="_blank"> | |||
| [https://github.com/processtech/runawfe-free-server/blob/v4.4.1/wfe-service/src/main/java/ru/runa/wfe/service/DefinitionService.java Открыть файл] | | [https://github.com/processtech/runawfe-free-server/blob/v4.4.1/wfe-service/src/main/java/ru/runa/wfe/service/DefinitionService.java Открыть файл] | ||
Строка 65: | Строка 58: | ||
| ExecutionServiceBean | | ExecutionServiceBean | ||
Сервис управления процессами и контроля их исполнения | Сервис управления процессами и контроля их исполнения | ||
| | | <html><a href="http://localhost:8080/wfe-service-4.X.X/ExecutionWebService/ExecutionAPI?wsdl" target="_blank">WildFly и Jboss7</a></html> | ||
<html><a href="http://localhost:8080/wfe-service-4.X.X/ExecutionWebService/ExecutionAPI?wsdl" target="_blank"> | |||
| [https://github.com/processtech/runawfe-free-server/blob/v4.4.1/wfe-service/src/main/java/ru/runa/wfe/service/ExecutionService.java Открыть файл] | | [https://github.com/processtech/runawfe-free-server/blob/v4.4.1/wfe-service/src/main/java/ru/runa/wfe/service/ExecutionService.java Открыть файл] | ||
Строка 73: | Строка 65: | ||
| TaskServiceBean | | TaskServiceBean | ||
Сервис по работе с заданиями | Сервис по работе с заданиями | ||
| | | <html><a href="http://localhost:8080/wfe-service-4.X.X/TaskWebService/TaskAPI?wsdl" target="_blank">WildFly и Jboss7</a></html> | ||
<html><a href="http://localhost:8080/wfe-service-4.X.X/TaskWebService/TaskAPI?wsdl" target="_blank"> | |||
| [https://github.com/processtech/runawfe-free-server/blob/v4.4.1/wfe-service/src/main/java/ru/runa/wfe/service/TaskService.java Открыть файл] | | [https://github.com/processtech/runawfe-free-server/blob/v4.4.1/wfe-service/src/main/java/ru/runa/wfe/service/TaskService.java Открыть файл] | ||
Строка 81: | Строка 72: | ||
| ExecutorServiceBean | | ExecutorServiceBean | ||
Сервис по работе с исполнителями (пользователями и группами) | Сервис по работе с исполнителями (пользователями и группами) | ||
| | | <html><a href="http://localhost:8080/wfe-service-4.X.X/ExecutorWebService/ExecutorAPI?wsdl" target="_blank">WildFly и Jboss7</a></html> | ||
<html><a href="http://localhost:8080/wfe-service-4.X.X/ExecutorWebService/ExecutorAPI?wsdl" target="_blank"> | |||
| [https://github.com/processtech/runawfe-free-server/blob/v4.4.1/wfe-service/src/main/java/ru/runa/wfe/service/ExecutorService.java Открыть файл] | | [https://github.com/processtech/runawfe-free-server/blob/v4.4.1/wfe-service/src/main/java/ru/runa/wfe/service/ExecutorService.java Открыть файл] | ||
Строка 89: | Строка 79: | ||
| ProfileServiceBean | | ProfileServiceBean | ||
Сервис по работе с профилями пользователей | Сервис по работе с профилями пользователей | ||
| | | <html><a href="http://localhost:8080/wfe-service-4.X.X/ProfileWebService/ProfileAPI?wsdl" target="_blank">WildFly и Jboss7</a></html> | ||
<html><a href="http://localhost:8080/wfe-service-4.X.X/ProfileWebService/ProfileAPI?wsdl" target="_blank"> | |||
| [https://github.com/processtech/runawfe-free-server/blob/v4.4.1/wfe-service/src/main/java/ru/runa/wfe/service/ProfileService.java Открыть файл] | | [https://github.com/processtech/runawfe-free-server/blob/v4.4.1/wfe-service/src/main/java/ru/runa/wfe/service/ProfileService.java Открыть файл] | ||
Строка 97: | Строка 86: | ||
| RelationServiceBean | | RelationServiceBean | ||
Сервис по работе с отношениями | Сервис по работе с отношениями | ||
| | | <html><a href="http://localhost:8080/wfe-service-4.X.X/RelationWebService/RelationAPI?wsdl" target="_blank">WildFly и Jboss7</a></html> | ||
<html><a href="http://localhost:8080/wfe-service-4.X.X/RelationWebService/RelationAPI?wsdl" target="_blank"> | |||
| [https://github.com/processtech/runawfe-free-server/blob/v4.4.1/wfe-service/src/main/java/ru/runa/wfe/service/RelationService.java Открыть файл] | | [https://github.com/processtech/runawfe-free-server/blob/v4.4.1/wfe-service/src/main/java/ru/runa/wfe/service/RelationService.java Открыть файл] | ||
Строка 105: | Строка 93: | ||
| SystemServiceBean | | SystemServiceBean | ||
Сервис содержит общие операции по работе с системой | Сервис содержит общие операции по работе с системой | ||
| | | <html><a href="http://localhost:8080/wfe-service-4.X.X/SystemWebService/SystemAPI?wsdl" target="_blank">WildFly и Jboss7</a></html> | ||
<html><a href="http://localhost:8080/wfe-service-4.X.X/SystemWebService/SystemAPI?wsdl" target="_blank"> | |||
| [https://github.com/processtech/runawfe-free-server/blob/v4.4.1/wfe-service/src/main/java/ru/runa/wfe/service/SystemService.java Открыть файл] | | [https://github.com/processtech/runawfe-free-server/blob/v4.4.1/wfe-service/src/main/java/ru/runa/wfe/service/SystemService.java Открыть файл] | ||
Строка 113: | Строка 100: | ||
| ScriptingServiceBean | | ScriptingServiceBean | ||
Сервис для удаленного выполнения скриптов на стороне сервера | Сервис для удаленного выполнения скриптов на стороне сервера | ||
| | | <html><a href="http://localhost:8080/wfe-service-4.X.X/ScriptingWebService/ScriptingAPI?wsdl" target="_blank">WildFly и Jboss7</a></html> | ||
<html><a href="http://localhost:8080/wfe-service-4.X.X/ScriptingWebService/ScriptingAPI?wsdl" target="_blank"> | |||
| [https://github.com/processtech/runawfe-free-server/blob/v4.4.1/wfe-service/src/main/java/ru/runa/wfe/service/ScriptingService.java Открыть файл] | | [https://github.com/processtech/runawfe-free-server/blob/v4.4.1/wfe-service/src/main/java/ru/runa/wfe/service/ScriptingService.java Открыть файл] | ||
Строка 122: | Строка 108: | ||
| SubstitutionServiceBean | | SubstitutionServiceBean | ||
Сервис по работе с правилами замещения и их критериями | Сервис по работе с правилами замещения и их критериями | ||
| | | <html><a href="http://localhost:8080/wfe-service-4.X.X/SubstitutionWebService/SubstitutionAPI?wsdl" target="_blank">WildFly и Jboss7</a></html> | ||
<html><a href="http://localhost:8080/wfe-service-4.X.X/SubstitutionWebService/SubstitutionAPI?wsdl" target="_blank"> | |||
| [https://github.com/processtech/runawfe-free-server/blob/v4.4.1/wfe-service/src/main/java/ru/runa/wfe/service/SubstitutionService.java Открыть файл] | | [https://github.com/processtech/runawfe-free-server/blob/v4.4.1/wfe-service/src/main/java/ru/runa/wfe/service/SubstitutionService.java Открыть файл] | ||
Строка 130: | Строка 115: | ||
| BotInvokerServiceBean {{Since|4.2.0}} | | BotInvokerServiceBean {{Since|4.2.0}} | ||
Сервис по управлению бот станцией (запуск, остановка, получение статуса) | Сервис по управлению бот станцией (запуск, остановка, получение статуса) | ||
| | | <html><a href="http://localhost:8080/wfe-bots-4.X.X/BotInvokerWebService/BotInvokerAPI?wsdl" target="_blank">WildFly и Jboss7</a></html> | ||
<html><a href="http://localhost:8080/wfe-bots-4.X.X/BotInvokerWebService/BotInvokerAPI?wsdl" target="_blank"> | |||
| [https://github.com/processtech/runawfe-free-server/blob/v4.4.1/wfe-bots/src/main/java/ru/runa/wfe/service/BotInvokerService.java Открыть файл] | | [https://github.com/processtech/runawfe-free-server/blob/v4.4.1/wfe-bots/src/main/java/ru/runa/wfe/service/BotInvokerService.java Открыть файл] | ||
Строка 138: | Строка 122: | ||
| ReportServiceBean | | ReportServiceBean | ||
Сервис по работе с отчетами | Сервис по работе с отчетами | ||
| | | <html><a href="http://localhost:8080/wfe-service-4.X.X/ReportWebService/ReportAPI?wsdl" target="_blank">WildFly и Jboss7</a></html> | ||
<html><a href="http://localhost:8080/wfe-service-4.X.X/ReportWebService/ReportAPI?wsdl" target="_blank"> | |||
| [https://github.com/processtech/runawfe-free-server/blob/v4.4.1/wfe-service/src/main/java/ru/runa/wfe/service/ReportService.java Открыть файл] | | [https://github.com/processtech/runawfe-free-server/blob/v4.4.1/wfe-service/src/main/java/ru/runa/wfe/service/ReportService.java Открыть файл] | ||
Строка 146: | Строка 129: | ||
| DataSourceServiceBean | | DataSourceServiceBean | ||
Сервис по работе с источниками данных | Сервис по работе с источниками данных | ||
| | | <html><a href="http://localhost:8080/wfe-service-4.X.X/DataSourceWebService/DataSourceAPI?wsdl" target="_blank">WildFly и Jboss7</a></html> | ||
<html><a href="http://localhost:8080/wfe-service-4.X.X/DataSourceWebService/DataSourceAPI?wsdl" target="_blank"> | |||
| [https://github.com/processtech/runawfe-free-server/blob/v4.4.1/wfe-service/src/main/java/ru/runa/wfe/service/DataSourceService.java Открыть файл] | | [https://github.com/processtech/runawfe-free-server/blob/v4.4.1/wfe-service/src/main/java/ru/runa/wfe/service/DataSourceService.java Открыть файл] | ||
Строка 154: | Строка 136: | ||
| ChatServiceBean | | ChatServiceBean | ||
Сервис по работе с чатом участников экземпляра бизнес-процесса | Сервис по работе с чатом участников экземпляра бизнес-процесса | ||
| | | <html><a href="http://localhost:8080/wfe-service-4.X.X/ChatWebService/ChatAPI?wsdl" target="_blank">WildFly и Jboss7</a></html> | ||
<html><a href="http://localhost:8080/wfe-service-4.X.X/ChatWebService/ChatAPI?wsdl" target="_blank"> | |||
| [https://github.com/processtech/runawfe-free-server/blob/v4.4.1/wfe-service/src/main/java/ru/runa/wfe/service/ChatService.java Открыть файл] | | [https://github.com/processtech/runawfe-free-server/blob/v4.4.1/wfe-service/src/main/java/ru/runa/wfe/service/ChatService.java Открыть файл] | ||
Строка 162: | Строка 143: | ||
| AuditServiceBean | | AuditServiceBean | ||
Сервис по работе с логами системы и выполнения бизнес-процессов | Сервис по работе с логами системы и выполнения бизнес-процессов | ||
| | | <html><a href="http://localhost:8080/wfe-service-4.X.X/AuditWebService/AuditAPI?wsdl" target="_blank">WildFly и Jboss7</a></html> | ||
<html><a href="http://localhost:8080/wfe-service-4.X.X/AuditWebService/AuditAPI?wsdl" target="_blank"> | |||
| [https://github.com/processtech/runawfe-free-server/blob/v4.4.1/wfe-service/src/main/java/ru/runa/wfe/service/AuditService.java Открыть файл] | | [https://github.com/processtech/runawfe-free-server/blob/v4.4.1/wfe-service/src/main/java/ru/runa/wfe/service/AuditService.java Открыть файл] | ||
Строка 319: | Строка 299: | ||
<code> | <code> | ||
import suds | import suds | ||
authentication = suds.client.Client("http://localhost:8080/ | authentication = suds.client.Client("http://localhost:8080/wfe-service-4.X.X/AuthenticationWebService/AuthenticationAPI?wsdl") | ||
user = authentication.service.authenticateByLoginPassword("Administrator", "wf"); | user = authentication.service.authenticateByLoginPassword("Administrator", "wf"); | ||
execution = suds.client.Client("http://localhost:8080/runawfe-wfe-service-4.X.X/ExecutionServiceBean?wsdl") | execution = suds.client.Client("http://localhost:8080/runawfe-wfe-service-4.X.X/ExecutionServiceBean?wsdl") | ||
Строка 342: | Строка 322: | ||
import suds | import suds | ||
import base64 | import base64 | ||
authentication = suds.client.Client("http://localhost:8080/ | authentication = suds.client.Client("http://localhost:8080/wfe-service-4.X.X/AuthenticationWebService/AuthenticationAPI?wsdl") | ||
user = authentication.service.authenticateByLoginPassword("Administrator", "wf"); | user = authentication.service.authenticateByLoginPassword("Administrator", "wf"); | ||
definition = suds.client.Client("http://localhost:8080/ | definition = suds.client.Client("http://localhost:8080/wfe-service-4.X.X/DefinitionWebService/DefinitionAPI?wsdl") | ||
execution = suds.client.Client("http://localhost:8080/ | execution = suds.client.Client("http://localhost:8080/wfe-service-4.X.X/ExecutionWebService/ExecutionAPI?wsdl") | ||
processDefinition = definition.service.getLatestProcessDefinition(user, "demo variables test") | processDefinition = definition.service.getLatestProcessDefinition(user, "demo variables test") | ||
interaction = definition.service.getTaskNodeInteraction(user, processDefinition.id, "ID1") | interaction = definition.service.getTaskNodeInteraction(user, processDefinition.id, "ID1") | ||
Строка 356: | Строка 336: | ||
import suds | import suds | ||
import base64 | import base64 | ||
authentication = suds.client.Client("http://localhost:8080/ | authentication = suds.client.Client("http://localhost:8080/wfe-service-4.X.X/AuthenticationWebService/AuthenticationAPI?wsdl") | ||
user = authentication.service.authenticateByLoginPassword("Administrator", "wf"); | user = authentication.service.authenticateByLoginPassword("Administrator", "wf"); | ||
definition = suds.client.Client("http://localhost:8080/ | definition = suds.client.Client("http://localhost:8080/wfe-service-4.X.X/DefinitionWebService/DefinitionAPI?wsdl") | ||
processDefinition = definition.service.getLatestProcessDefinition(user, "demo variables test") | processDefinition = definition.service.getLatestProcessDefinition(user, "demo variables test") | ||
variables = definition.service.getVariableDefinitionsWS(user, processDefinition.id) | variables = definition.service.getVariableDefinitionsWS(user, processDefinition.id) | ||
Строка 369: | Строка 349: | ||
import suds | import suds | ||
import base64 | import base64 | ||
authentication = suds.client.Client("http://localhost:8080/ | authentication = suds.client.Client("http://localhost:8080/wfe-service-4.X.X/AuthenticationWebService/AuthenticationAPI?wsdl") | ||
user = authentication.service.authenticateByLoginPassword("Administrator", "wf"); | user = authentication.service.authenticateByLoginPassword("Administrator", "wf"); | ||
execution = suds.client.Client("http://localhost:8080/ | execution = suds.client.Client("http://localhost:8080/wfe-service-4.X.X/ExecutionWebService/ExecutionAPI?wsdl") | ||
print execution.service.getVariablesWS(user, 46) | print execution.service.getVariablesWS(user, 46) | ||
</code> | </code> | ||
Строка 380: | Строка 360: | ||
import suds | import suds | ||
import base64 | import base64 | ||
authentication = suds.client.Client("http://localhost:8080/ | authentication = suds.client.Client("http://localhost:8080/wfe-service-4.X.X/AuthenticationWebService/AuthenticationAPI?wsdl") | ||
user = authentication.service.authenticateByLoginPassword("Administrator", "wf"); | user = authentication.service.authenticateByLoginPassword("Administrator", "wf"); | ||
execution = suds.client.Client("http://localhost:8080/ | execution = suds.client.Client("http://localhost:8080/wfe-service-4.X.X/ExecutionWebService/ExecutionAPI?wsdl") | ||
variable = execution.factory.create('{http://impl.service.wfe.runa.ru/}variable') | variable = execution.factory.create('{http://impl.service.wfe.runa.ru/}variable') | ||
variable.name = "editors" | variable.name = "editors" |
Версия 09:05, 20 апреля 2021
Руководство по работе с веб-сервисами сервера
Версия 4.6.0
© 2015-2023, ООО "Процессные технологии"
# Описание веб–сервисов сервера
Запуск веб-сервисов происходит автоматически при запуске RunaWFE–сервера. Веб-сервисы физически находятся в wfe-service-4.X.X.jar.
В RunaWFE версии 4 API веб-сервисов и Java API унифицированы за исключением нескольких методов с сигнатурами, содержащими сложные структуры и карты (java.util.Map) из-за ограничений веб-сервисов.
Во всем документе для формирования конкретного адреса нужно заменить 4.X.X на реальный номер версии системы.
# Определение версии сервера
Для использования в УРЛ-ах сервисов требуется указывать версию сервера. Её можно получать по адресу http://host:port/wfe/version (аутентификация не требуется).
# Доступ к веб-сервисам
# WildFly10 и Jboss7
http://localhost:8080/wfe-service-4.X.X/НазваниеВебСервиса/НазваниеИнтерфейса?wsdl
Название и описание сервиса | Локальный WSDL | Ссылка на описание методов (операций) |
AuthenticationServiceBean
Сервис аутентификации пользователей |
WildFly и Jboss7 | Открыть файл
|
AuthorizationServiceBean
Сервис авторизации операций (проверка полномочий) |
WildFly и Jboss7 | Открыть файл
|
BotServiceBean
Сервис по управлению бот станциями, ботами и заданиями ботов |
WildFly и Jboss7 | Открыть файл
|
DefinitionServiceBean
Сервис управления определениями процессов |
WildFly и Jboss7 | Открыть файл
|
ExecutionServiceBean
Сервис управления процессами и контроля их исполнения |
WildFly и Jboss7 | Открыть файл
|
TaskServiceBean
Сервис по работе с заданиями |
WildFly и Jboss7 | Открыть файл
|
ExecutorServiceBean
Сервис по работе с исполнителями (пользователями и группами) |
WildFly и Jboss7 | Открыть файл
|
ProfileServiceBean
Сервис по работе с профилями пользователей |
WildFly и Jboss7 | Открыть файл
|
RelationServiceBean
Сервис по работе с отношениями |
WildFly и Jboss7 | Открыть файл
|
SystemServiceBean
Сервис содержит общие операции по работе с системой |
WildFly и Jboss7 | Открыть файл
|
ScriptingServiceBean
Сервис для удаленного выполнения скриптов на стороне сервера |
WildFly и Jboss7 | Открыть файл
|
SubstitutionServiceBean
Сервис по работе с правилами замещения и их критериями |
WildFly и Jboss7 | Открыть файл
|
BotInvokerServiceBean 4.2.0+
Сервис по управлению бот станцией (запуск, остановка, получение статуса) |
WildFly и Jboss7 | Открыть файл
|
ReportServiceBean
Сервис по работе с отчетами |
WildFly и Jboss7 | Открыть файл
|
DataSourceServiceBean
Сервис по работе с источниками данных |
WildFly и Jboss7 | Открыть файл
|
ChatServiceBean
Сервис по работе с чатом участников экземпляра бизнес-процесса |
WildFly и Jboss7 | Открыть файл
|
AuditServiceBean
Сервис по работе с логами системы и выполнения бизнес-процессов |
WildFly и Jboss7 | Открыть файл
|
# Работа с переменными 4.1.0+
В связи с реализацией сложных переменных работа с переменными была изменена (в части простых переменных тоже).
При операциях получения переменных заполнены следующие атрибуты:
Название | Значение |
name | название переменной |
scriptingName | название переменной для использования в скриптах |
format | формат определяет тип переменной
для простых переменных принимает одно из значений: (string, text, integer, double, bigdecimal, boolean, date, datetime, time, file) типы для работы с исполнителями характеризуются значениями: (executor, user, group) компонентные типы характеризуются значениями: (list(?), map(?, ?)) с указанием типа компонент вместо вопросов для пользовательских типов формируется описание на основании атрибутов в формате JSON |
value | значение переменной в формате JSON |
При операциях отправки переменных нужно заполнять только атрибуты name и value, остальные атрибуты будут взяты из определения процесса.
Значение типа file представляется в виде, где для представления массива байт data используется кодировка Base64:
{ "fileName": "test.txt", "contentType": "text/plain", "data": "IyEvdXNyL2Jpbi9lbnYgcHl0aG9uCgo=" }
Значение типа (executor, user, group) представляется в виде:
{ "id": 44, "name": "kermit", "fullName": "Kermit Alex" }
При отправке переменной заполнить можно только атрибут id или name.
# Примеры
# Вызов веб-сервисов из клиента на языке Java
Проект wfe-webservice-client создан для авто-генерации клиентской библиотеки на основе серверных сервисов. В нём же есть примеры использования.
Сборку проекта можно осуществить с помощью команды в проекте wfe-webservice-client.
mvn clean install -Dappserver=jboss7 -Dmaven.test.skip=true
Перед сборкой необходимо запустить сервер (используется утилита wsconsume).
Другим вариантом генерации классов, требуемых для взаимодействия с веб-сервисом из WSDL является Jboss-утилита wsconsume.bat(sh), которой можно воспользоваться. Также можно скачать уже сгенерированный набор классов с исходниками runawfe-ws-client.4.X.X.jar. После этого необходимо добавить классы в classpath и использовать их API.
# Получения списка заданий пользователя
Пример:
public static void main(String[] args) {
try {
AuthenticationAPI authenticationAPI = new AuthenticationWebService().getAuthenticationAPIPort();
User user = authenticationAPI.authenticateByLoginPassword("Administrator", "wf");
TaskAPI taskAPI = new TaskWebService().getTaskAPIPort();
List<WfTask> tasks = taskAPI.getTasks(user, null);
System.out.println("TASKS = " + tasks.size());
for (WfTask task : tasks) {
System.out.println(" Task " + task.getName() + " assigned to " + task.getOwner().getName());
}
} catch (Exception e) {
e.printStackTrace();
}
}
# Работа с сигналами
В RunaWFE 4.4.1 были добавлены команды для работы с сигналами.
boolean signalReceiverIsActiveWS(User user, Map<String, String> routingData) - проверка, может ли сигнал быть обработан немедленно (существует ли по крайней мере один соответствующий активный получатель CatchEventNode)
void sendSignalWS(User user, Map<String, String> routingData, Map<String, ?> payloadData, long ttlInSeconds) - отправка сигнала получателям (CatchEventNode)
Тестовый процесс с узлом ожидания сигнала, в свойствах маршрутизации processDefinitionName=${currentDefinitionName}.
Файл:Sample1655.par
Код проверяющий наличие активного получателя со свойствами маршрутизации "processDefinitionName"="sample1655-unknown" и "processDefinitionName"="sample1655". А также непосредственно отправка сигнала в ожидающий в БП "sample1655" узел.
public static void main(String[] args) {
try {
AuthenticationAPI authenticationAPI = new AuthenticationWebService().getAuthenticationAPIPort();
User user = authenticationAPI.authenticateByLoginPassword("Administrator", "wf");
ExecutionAPI executionAPI = new ExecutionWebService().getExecutionAPIPort();
{
List<StringKeyValue> routingData = new ArrayList<>();
routingData.add(create("processDefinitionName", "sample1655-unknown"));
System.out.println(executionAPI.signalReceiverIsActiveWS(user, routingData));
}
{
List<StringKeyValue> routingData = new ArrayList<>();
routingData.add(create("processDefinitionName", "sample1655"));
System.out.println(executionAPI.signalReceiverIsActiveWS(user, routingData));
}
{
List<StringKeyValue> routingData = new ArrayList<>();
routingData.add(create("processDefinitionName", "sample1655"));
List<StringKeyValue> payloadData = new ArrayList<>();
payloadData.add(create("stringValue", "sample"));
payloadData.add(create("datetimeValue", "17.02.2020 15:17:44"));
executionAPI.sendSignalWS(user, routingData, payloadData, 1);
}
} catch (Exception e) {
e.printStackTrace();
}
}
private static StringKeyValue create(String key, String value) {
StringKeyValue kv = new StringKeyValue();
kv.setKey(key);
kv.setValue(value);
return kv;
}
# Вызов веб-сервисов из клиента на языке Python
Используя библиотеку suds можно взаимодействовать с сервером посредством веб-сервисов.
Запуск процесса
import suds
authentication = suds.client.Client("http://localhost:8080/wfe-service-4.X.X/AuthenticationWebService/AuthenticationAPI?wsdl")
user = authentication.service.authenticateByLoginPassword("Administrator", "wf");
execution = suds.client.Client("http://localhost:8080/runawfe-wfe-service-4.X.X/ExecutionServiceBean?wsdl")
variable1 = execution.factory.create('{http://impl.service.wfe.runa.ru/}variable')
variable1.name="string"
variable1.value="Test"
variable2 = execution.factory.create('{http://impl.service.wfe.runa.ru/}variable')
variable2.name="date"
variable2.value="2012-01-01"
variable3 = execution.factory.create('{http://impl.service.wfe.runa.ru/}variable')
variable3.name="number"
variable3.value=2012
variable4 = execution.factory.create('{http://impl.service.wfe.runa.ru/}variable')
variable4.name="executor"
variable4.value="{\"id\":1}"
print execution.service.startProcessWS(user, "demo variables test", [variable1, variable2, variable3, variable4])
Получение формы узла определения БП (по идентификаторам определения БП и узла)
import suds
import base64
authentication = suds.client.Client("http://localhost:8080/wfe-service-4.X.X/AuthenticationWebService/AuthenticationAPI?wsdl")
user = authentication.service.authenticateByLoginPassword("Administrator", "wf");
definition = suds.client.Client("http://localhost:8080/wfe-service-4.X.X/DefinitionWebService/DefinitionAPI?wsdl")
execution = suds.client.Client("http://localhost:8080/wfe-service-4.X.X/ExecutionWebService/ExecutionAPI?wsdl")
processDefinition = definition.service.getLatestProcessDefinition(user, "demo variables test")
interaction = definition.service.getTaskNodeInteraction(user, processDefinition.id, "ID1")
print base64.b64decode(interaction.formData).decode("utf-8")
Получение списка определений переменных в определении процесса
import suds
import base64
authentication = suds.client.Client("http://localhost:8080/wfe-service-4.X.X/AuthenticationWebService/AuthenticationAPI?wsdl")
user = authentication.service.authenticateByLoginPassword("Administrator", "wf");
definition = suds.client.Client("http://localhost:8080/wfe-service-4.X.X/DefinitionWebService/DefinitionAPI?wsdl")
processDefinition = definition.service.getLatestProcessDefinition(user, "demo variables test")
variables = definition.service.getVariableDefinitionsWS(user, processDefinition.id)
print variables
Получение переменных процесса
import suds
import base64
authentication = suds.client.Client("http://localhost:8080/wfe-service-4.X.X/AuthenticationWebService/AuthenticationAPI?wsdl")
user = authentication.service.authenticateByLoginPassword("Administrator", "wf");
execution = suds.client.Client("http://localhost:8080/wfe-service-4.X.X/ExecutionWebService/ExecutionAPI?wsdl")
print execution.service.getVariablesWS(user, 46)
Обновление переменных процесса
import suds
import base64
authentication = suds.client.Client("http://localhost:8080/wfe-service-4.X.X/AuthenticationWebService/AuthenticationAPI?wsdl")
user = authentication.service.authenticateByLoginPassword("Administrator", "wf");
execution = suds.client.Client("http://localhost:8080/wfe-service-4.X.X/ExecutionWebService/ExecutionAPI?wsdl")
variable = execution.factory.create('{http://impl.service.wfe.runa.ru/}variable')
variable.name = "editors"
variable.value = "[\"Scaners\", \"Ports\", \"Enumerators\"]"
print execution.service.updateVariablesWS(user, 46, variable)