вторник, 11 марта 2014 г.

Создание BPEL процессов в JDeveloper (часть 1.Установка, описание компонентов)

     Часто при разработке приложений возникает необходимость во взаимодействии различных сервисов, баз-данных и других протоколов.Для этого существует язык BPEL.

     BPEL (англ. Business Process Execution Language) — язык на основе XML для формального описания бизнес-процессов и протоколов их взаимодействия между собой. BPEL расширяет модель взаимодействия веб-служб и включает в эту модель поддержку транзакций.

     В этой статье я хочу  рассказать о установке расширений для работы с BPEL и о компонентах BPEL в JDeveloper.

     Примечание: Работать с BPEL\BPM процессами можно  только в  версиях  Oracle JDeveloper 11g Release 1 (11.1.1.x).

     Начнем.
1. Установите и запустите  JDeveloper   версии 11.1.1.x
2. Подключите расширения SOA  как указано на рисунках ниже :
     


воскресенье, 2 марта 2014 г.

Работа с файлами (af:inputFile,af:fileDownloadActionListener, af:image) в JDeveloper

     Редко какой ADF проект обходится без  работы с файлами.
     В этой статье мы создадим проект, в котором будет реализована возможность добавления в базу изображений(фотографию сотрудника), их просмотр  и скачивание на компьютер.
     Приступим.
     Будем использовать тестовую схему  Oracle (Scott\tiger). В ней есть таблица  EMP (сотрудники)
Для работы с файлами существующих таблиц  недостаточно. Нужно добавить поле IMAGE_ID  в таблицу EMP, создать таблицу PHOTO (с структурой указанной ниже) и связать эти таблицы связью 1 к 1 по полям  IMAGE_ID.



воскресенье, 26 января 2014 г.

Запуск критериев (ViewCriteria) с Java кода в JDeveloper

     В Oracle ADF существует возможность создания критериев для сформированных  нами ViewObject-ов, чтобы при необходимости выполнять запросы к базе   по определенным  полям.  В этой статье будет описано создание этих критериев и вызов их с Java кода.Для этого в приложение созданное в прошлой статье " Использование af:iteraror вместо af:table в JDeveloper "  добавим два критерия : Фильтр сотрудников по номеру отдел и фильтр по дате рождения. Приступим.
     Зайдите во VO  EmpView и перейдите во вкладку Query. Там находится три секции:
  • Query - в ней находится запрос по которому формируется VO
  • Bind Variables - в эту секцию добавляются параметры которые  будут использоваться в критериях
  • View Criteria -секция в которой создаются критерии.

суббота, 18 января 2014 г.

Использование af:iteraror вместо af:table в JDeveloper

       В Oracle ADF стандартным компонентом для отображения таблиц баз данных является af : table.
       Это стандартная таблица. Часто бывает так, что заказчик хочет увидеть данные не в виде таблицы, а в каком то другом виде. Для этого существует af:iterator. Этот  компонент выводит данные  с БД в том виде, какой вы создадите : )

       af:iterator   в отличии af : table  нельзя создать путем  переноса VO c DataControl. Но что бы не создавать в ручную итераторы и   компонент, мы переконвертируем  компонент af:table.

Приступим.

1. Создайте приложение ADF приложение
2. Добавьте connection с базой к стандартной схеме  Scott.
3. Их соединения scott добавьте ADF Busines Component  Emp
4. Создайте jspx страницу
5. Добавьте на страницу c DataControl EmpView1  как таблицу.
Страница должна выглядеть так

четверг, 16 января 2014 г.

Добавление компонентов на форму в режиме реального времени в ADF

     Иногда  появляется необходимость добавлять компоненты на страницу ADF приложений в режиме реального времени. В этой статье я хочу описать, что нужно сделать для этого.

     Сначала нужно написать метод описанный снизу


public void addComponent(UIComponent parentUIComponent, 
                            UIComponent childUIComponent)
   {
 parentUIComponent.getChildren().add(childUIComponent);
 AdfFacesContext.getCurrentInstance().addPartialTarget(parentUIComponent);
    }


     Этот метод добавляют созданную компоненту childUIComponent  в родительский компонент parentUIComponent (например panelGroupLayout) и обновляет родительский компонент, что бы отобразился созданный элемент.

    Далее в нужном вам методе добавьте строки

RichInputText uic = new RichInputText();  
uic.setId("rit1");
uic.setLabel("Название поля");
uic.setValue("Значение поля");
addComponent(pGL1,  uic);


     В первой строке создается  компонент RichInputText ( компонент для ввода строк)
     Во второй, третьей и четвертой устанавливаются свойства компонента.
     В пятой при помощи созданного ранее метода  addComponent новый компонент добавляется на форму.

     Как вы сами понимаете добавлять можно не только inputtext.
     По следующей ссылку можно увидеть список компонентов и их свойства:

воскресенье, 15 декабря 2013 г.

Работа с Web-сервисами в Oracle JDeveloper(Часть 3.Создание ADF Web service connection)

              Когда идет разработка продукта, то приложения деплоятся на много площадок  и сервисы соответственно находятся тоже на разных площадках. Если у вас всего один сервис в приложении, то вы можете просто перегенирировать  его. Но лучше всего использовать ADF Web service connection. При его помощи создаются соединения,  в которых потом в режиме реального  времени можно менять адреса к wsdl сервису.
             ADF Web service connection создается очень просто.Нужно  найти в  прокси классе сервиса контейнер, он заканчивается словом Proxy, нажать по нему правой кнопкой и выбрать там Create ADF Web Service Connection. 
   

Работа с Web-сервисами в Oracle JDeveloper(Часть 2.Создание прокси класса и работа с сервисом в коде)

Когда в Orace ADF начинается разработка, то часто начинают использоваться  данные не только c БД, но и с других источников. И очень часто каким то другим источником является веб сервис. Для взаимодействия сервиса  c приложением используется  "Web Service proxy". 

В этой статье я хочу показать как создавать  для сервиса  "Web Service proxy" и  с его помощью вызвать необходимые методы в сервисе(Сервис будет использоваться из предыдущей статьи 
Работа с Web-сервисами в Oracle JDeveloper(Часть 1.Создание Web-сервиса   ).Если вам не хочется  читать прошлую статью используйте какой нибудь сервис с сайта  http://www.service-repository.com/

Приступим. Для создания прокси класса  нужно нажать CTRL+N и во вкладке "Web Services" выбрать Web Service proxy