Интеграция процесса с внешними системами (из BPMN-дизайнера)

Здравствуйте, коллеги!

В ходе мероприятия в Сколково на презентации дизайнера процессов коснулись темы вызова внешних веб-сервисов из процесса с использованием нового элемента в дизайнере процессов.

К сожалению, не нашел подробного описания возможностей этого элемента в технической документации.

Прошу помочь с реализацией следующей функции.

Имеется веб-сервис, имеющий корректное wsdl-определение. Сервис получает от процесса GET-команду (с параметром type ['jpeg', 'pdf', 'xml']) и в зависимости от параметра возвращает:
1) jpeg - изображение
2) pdf - файл документа
2) xml - со значениями полей в строках и изображениями в кодировке base64

по получении ответа процесс должен:
1) сохранить jpeg-файл в карточку контакта (например, фото контакта)
2) сохранить pdf-файл вложением в карточку контакта (например, цифровая копия подписанного договора обслуживания)
3) разобрать полученный xml-файл, создать новую карточку контакта и сохранить значения в соответствующие поля, включая закодированное base64 изображение (например, паспортные данные контакта с изображением подписи, фото и скана паспорта)

Буду благодарен за примеры кода.

Нравится

4 комментария

Добрый день!
Пока такого элемента, который бы вызывал внешние сервисы нет.
Для решения подобной задачи нужно писать в ScriptTask’е на .Net обработчик http запросов и в пространство имен (Usings) подключать нужные классы.
Примеры кода можно загуглить.

Спасибо, Олег!

Я посмотрел в дизайнере процессов установленного у нас экземпляра bpm'online 7.8. Там действительно нет того элемента, что я имел ввиду. Жаль, что я не помню его названия. Но в бета-версии, которую нам демонстрировали на мероприятии в Сколково в этом году в рамках сессии для администраторов, был такой элемент, который позволял вызывать внешние web-сервисы, при условии, что они оформлены в соответствии со стандартами по протоколу SOAP.

Очень прошу перепроверить с теми, кто делал ту презентацию. Юлия Старун там была, насколько я помню.

Заранее спасибо!

Добрый день !!!

если такой элемент процесса появится в дизайнере процессов, тогда BPMOnline станет самой крутой системой по сравнению с другими. Она и сейчас самая крутая система. Но с данным инструментом просто будет решать многие задачи.

Здравствуйте! Я зашел в дизайнер процессов из конфигурации системы. Элемент, который я имел ввиду называется "Выполнить действие процесса". В его настройках нужно указать Пользовательское действие "Вызвать веб-сервис" или "Вызвать Web-сервис".

Если выбрать первый вариант - "Вызвать веб-сервис", то во вкладке Параметров нужно указать следующие параметры:
- RequestBodyInternal
- RequestParameters
- URL сервиса
- Вернуть запрос и ответ действия
- Запрос
- Метод сервиса
- Ответ
- Параметры запроса
- Результат запроса
- Сервис
- Статус выполнения вызова

Если выбрать второй вариант - "Вызвать Web-сервис", то во вкладке Параметров нужно указать следующие параметры:
- URL web-сервиса
- Метод
- Название
- Параметры метода

Мой SOAP сервис вызывается (из локальной сети) по адресу:
http://[ip_address]/soap?format=pdf
http://[ip_address]/soap?format=jpg
http://[ip_address]/soap?format=xml

Его описание доступно по
http://[ip_address]/soap?wsdl

Текст WSDL во вложении (нужно изменить расширение с txt на xml).

Пример XML-ответа - во вложении (нужно изменить расширение с txt на xml).
Пример PDF-ответа - во вложении.
Пример JPG-ответа - во вложении.

Это была вводная. Сама задача была описана в исходном сообщении темы. Подозреваю, что мне нужно использовать первый вариант ("Вызвать веб-сервис") - у него вроде больше настраиваемых параметров. Теперь вопрос знатокам (или "подсказка зала" - уж как повезет :) :

Кто подскажет, как использовать этот элемент? Если можно - с практическими примерами.

Заранее спасибо!

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