суббота, 15 марта 2014 г.

Создание BPEL процессов в JDeveloper (часть 2.создание и развертывание простого BPEL процесса)

 В прошлой статье Создание BPEL процессов в JDeveloper (часть 1.Установка, описание компонентов) было описано как  обновить Jdev для работы с BPEL, и  описаны основные компоненты.  Здесь я опишу как создать простой процесс и развернуть его на  сервере Weblogic

     Приступим : )
     Создадим процесс который  при вводе названия страны выводит  города этой страны

1. Создайте BPM или SOA  приложение






2.  Добавьте сервис.
     В созданном composite.xml нажмите правой кнопкой в блоке External Refernces, выберите Insert->Web Service и добавьте сервис http://www.webservicex.com/globalweather.asmx?WSDL
как указано на картинке :


3.  Свяжите сервис с процессом. 
     Каждый компонент в composite.xml  при наведении на него отображает стрелочку на которую можно  нажать и перетащить к компоненту который вы хотите связать. 


4.  Добавьте компонент Invoke для вызова сервиса. 
     При переносе  Invoke с палитры компонентов на блок схеме указывается куда возможно его добавить(зеленые окружности с плюсиком). Нам нужно его  добавить между receiveInput(в эту компонент передаются входящие данные) и replyOutput(в эту компонент передаются исходящие данные)

5.  Свяжите компонент Invoke и сервис(он появился в partner links после связывания процесса и сервиса в composite.xml)


     Когда вы свяжите Invoke c сервисом, появится окно редактирования Invoke.Здесь нам сейчас важно указать :
  • Метод который будет вызываться (Operation:GetCitiesByCountry)
  • Входящую и исходящую переменную ( Нажав на "+" JDev создаст их автоматически в зависимости от структуры метода)




6.  Передайте в Invoke входящие данные, а данные которые вернутся в Invoke передайте на выход процесса.
     Для этого  используется компонент Assign. Он используется для работы с переменными. Добавьте этот компонент перед и после Invoke.


     Нажав на этот  компонент появится окно редактирования. В этом окне находится два дерева с переменными. В левом дереве выбираются переменные которые нужно присвоить, в правом выбираются переменные куда присваиваются левые переменные.
     В первом Assign нам нужно связать inputVaiable(входящая переменная процесса) и Invoke1_GetCitiesByCountry_InputVariable(входящая переменная для Invoke)
.


     В первом Assign нужно связать Invoke1_GetCitiesByCountry_OutputVariable (исходящая
переменная Invoke) и outputVariable(исходящая переменная процесса )



     Процесс готов, теперь его необходимо развернуть на сервере. Для этого нажмите правой кнопкой по проекту и нажмите Deploy->BpelTest




     После выбора пункта "Application server" появится окно с выбором сервера. Если у вас  есть сервер куда устанавливать процесс, то выберите его.Если же нет, то вам стоит установить Oracle SOA Suite. Инструкцию по установке можно найти по следующей ссылке: http://www.oracle-adf.info/2014/03/oracle-soa-suite.html


     Далее устанавливается версия ревизиии, и некоторые опции для деплоя

В этом окне выбирается сервер на который развертывается процесс.

     Жмите Finish.

     Приложение задеплоено. Теперь проверим его работу. Для этого зайдите во вкладку  " Application Server Navigator" , найдите ваше приложение как указано на картинке и запустите тест веб сервиса процесса


В строку input введите страну  (например Russia) и нажмите "Send Request".


     В результате вернется строка которая вернет названия городов. Готово : ) 
Этот процесс очень простой, но показывает основы работы с BPEL. Следующая статья посвященная BPEL опишет, как обрабатывать строки в BPEL и передавать данные в БД