Oracle JDeveloper 11g Release 2 Tutorials - Working with Bounded Task Flows, Regions and Routers
В данном руководстве вы используете Oracle JDeveloper 11.1.2, чтобы определить поток страниц приложения с помощью потоков заданий. Вы будете создавать приложения для поиска и обновления записей сотрудников в базе данных. Мы будем осуществлять в три этапа с использованием bounded task flow (способ инкапсулировать многоразовую часть приложения) и компонент пользовательского интерфейса , называемый train. Во-первых, мы реализуем возможности поиска, а затем направим пользователя на некоторые результаты поиска, который позволит им выбрать сотрудника из результатов. Когда они выберут сотрудника, мы дадим им UI называется ADF Form для редактирования записи работника. Тогда мы дадим им возможность представить либо изменения, или отменить, что на выходе будет либо commit или rollback изменении в базе данных. Наконец, мы будем осуществлять простой сценарий входа в систему, используя маршрутизатор для проверки пароля.
показать более или менееПодробнее...

Это руководство описывает, как создать ADF task flows, которые создают навигацию, инкапсуляцию, повторное использование, управление компонентом жизненного цика, и транзакции в приложениях. Она включает в себя основные шаги для создания диаграмм task flows, добавив деятельности и контроль потоков в ней, и запуск готового потока задач.

В этом учебнике, вы создаете два bounded task flow с различными компонентами в нем. Используя маршрутизатор, чтобы определить направление, просмотр данных, и возврат для выхода потоков, вы разработаете потоки задач, чтобы быть в состоянии поддерживать функции поиска и обновления. Вы свяжете компонент view с контролем данных. Вы определите управляемый бин(managed bean) для обработки пароля. Вы определите правила для маршрутизатора, когда пароль проверяется позволяя вам вход в приложение. Вы создадите JSF-Страницу, и привяжете поток задач как регион в JSF-странице, создадите параметр значение для имени пользователя.


runtime образ обновить страницу

Цель Продолжительность Приложения
Этот учебник покажет вам, как разработать пользовательский интерфейс с помощью ADF Task Flows. Вы определяете последовательности страниц и маршрутизацию, а также безопасность приложения. Чтобы увидеть исходник, щелкните  Скачать, чтобы скачать zip, а затем разархивируйте его в вашу JDeveloper mywork папку. 2 до 2,5 часов Скачать taskflow.zip
Шаг 1: Создать Новое Fusion Приложение и Бизнес-Компоненты
  1. В навигаторе Приложений, нажмите кнопку New Application. Другой вариант заключается в использовании File->New... меню для создания нового приложения.

    новое приложение в навигатор
  2. В New Gallery, выберите Fusion Web Application (ADF) . Приложение состоит из двух проектов, один для модели данных (ADF-Business Components) и другой для view controller компонентов (ADF Faces and ADF Task Flows)

    новая галерея - fusion web app выбран
  3. В диалоговом окне Create Fusion Web Application указать Name TaskFlow. Обратите внимани на изменения директории, в соответствии с новым именем. Вы можете изменить C:\JDeveloper\mywork часть пути, чтобы создать ваши файлы в другом меспе.

    В поле Application Package Prefix установите значение demo. В  Application Templates выберите Fusion Web Application (ADF) и нажмите кнопку Finish.

    имя приложения


    панель Overview отображает Контрольный список, что вы можете использовать в качестве руководства для разработки Fusion Web-Приложений.

    Контрольный список по умолчанию отображается, когда Fusion Web-приложение создается.

    обзор стр.

  4. В  Application Navigator вы увидите два новых проекта. По умолчанию правила именования для этих проектов являются Model для одного и ViewController для другого.

    naviagtor с указанием всех созданных файлов
  5. Мы начнем создавать компоненты модели с помощью CheckList Overview. Нажмите на  шаг Connect to a Database.

    краткое контрольный список - соединения с базой данных

  6. Нажмите на Create a Database Connection.

    создать соединение с базой данных
  7. Указать следующие свойства для нового соединения, что вы создаете:

    Введите Настройки Oracle JDBC чтобы надлежащим образом указать хост, порт и SID для вашей базы данных. Нажмите на Test Connection и убедитесь, что вы получили success.

    Когда закончите, нажмите OK.

    подключение базы данных, страницы создания
  8. В Перечень панели, установите статус Connect to a Database шаг к Done.

    подтвердить дБ связи, созданных
  9. Нажмите на Build Business Services шаг (расширить его), а затем нажмите кнопку Go to Sub steps.

    строить контрольный перечень услуг
  10. В подменю списка задач, нажмите вкладку Create Entity Objects and Associations.

    создание объектов сущности - перечень

    Затем щелкните на  Create Entity Objects and Associations кнопку.


    создание объектов сущности и assoications - перечень

  11. В диалоговом окне Select Project for Action, выберите проект Model.

    Нажмите кнопку OK.

    выберите проект, для услуги
  12. В диалоговом окне  Initialize Business Components Project должно быть выбрано HRConn соединение. Затем нажмите кнопку OK.

    определить связи за услуги
  13. На странице Entity Objects, щелкните по Query кнопка для изучения данных доступных таблиц.

    выберите объекты для создания
  14. Выберите EMPLOYEES  в списке Available , и нажмите кнопку со стрелкой вправо стрелка вправо , чтобы переместить выбранные параметры для списка Selected. Этот шаг создает обновляемые Entity Objects на основе таблиц, которые вы выбираете

    Затем нажмите кнопку Next, чтобы продолжить.

    работник предприятия выбран
  15. В диалоге Updatable View Objects, переместите Employees (HR.EMPLOYEES) в список Selected . Этот шаг создает соответствующие view objects для выполнения запросов на entity-объекты, созданные вами ранее.

    Затем нажмите кнопку Next, чтобы продолжить.

    создать взгляды сотрудников, просматривать выбранные
  16. В диалоге Read Only View Objects, Нажмите кнопку Next, чтобы продолжить.

    View Object - Oracle Application Development Framework (Oracle ADF) компонент, инкапсулирует SQL-запроcы и упрощает работу с результатами. Показать более или менееПодробнее...

    Существует несколько типов View Objects, которые вы можете создать в вашем проекте ADF Business Components<:
    - Read-only Только для чтения, когда обновления данных не нужно (может быть также entity-based)
    - Entity-based, на основе Entity-object, могут производить обновление данных
    - Static data Статические данные, для данных, определенных самим объектом
    - Programmatically, Программно наполненные объекты view.

    View objects на основе Entity-object можно сконфигурировать для поддержки обновления таблиц, когда вы создаете View objects, которые сопоставляют их атрибуты с атрибутами одного или нескольких существующих объектов сущности (Entity-object). Сопоставленные entity-объекты сохраняется в качестве сущности для использования в целях определения для view object. Таким образом, View objects, основанные на Entity сотрудничают автоматически с Entity, позволяющих в полной мере обновлять данные модели. View objects основе Entity-object запрашивают данные, необходимые только для задачи клиента, и на основе его сопоставления(мапирования) с Entity автоматически проверяют и сохраняют изменения. Как и read-only view object, View objects на основе Entity инкапсулирует SQL-запрос, и может быть связан с иерархией master-detail, которая может быть использована в модели данных вашего приложения.
  17. В диалоге Application Module, нажмите кнопку Finish для создания бизнес-компонентов в проекте Model.

    укажите модуль приложения для использования
  18. В списке Checklist, установите статус Create Entity Objects and Associations в Done. Затем щелкните на Close Step 3.

    Примечание: Поскольку шаги 3.2, 3.3 и 3.4 также были завершены, мы могли бы также установить свой статус, в Done, но мы будем делать это на более высоком уровне.

    недалеко перечень услуг для
  19. Установить статус Build Business Services в Done.

    набор услуг, чтобы быть полным
  20. Работа по модели проекта выполняется. Расширьте проект Model , Application Navigator должен выглядеть следующим образом:

    naviagtor показывая службы файлов, созданных
  21. Нажмите на Save Allсохранить все значок в меню JDeveloper , или выберите File | Save All из меню.

    Далее мы будем работать с проектом ViewController.


Шаг 2: Создать Bounded Task Flow

С TaskFlow приложением, загруженным в JDeveloper, вы создаете диаграмму  bounded task flow включая views, и возвращаемые результаты. Чтобы сделать это, выполните следующие шаги:

    Потоки задач ADF обеспечивают модульный подход для определения потоков управления в приложении. Показать более или менееПодробнее...

    Вместо того, чтобы представлять приложения, как один большой JSF page flow, вы можете разбить ее на коллекцию потоков заданий многократного использования. Каждый поток задач содержит часть навигационных диаграмм приложения. Узлы в потоках задачи - это действия. Узел Действие представляет собой простые логические операции, такие как отображение страницы, выполнение логики приложения, или вызов другого потока задач. Транзакции между действиями называются control flow cases - управление ситуацией потока.

    Есть два типа потока задач ADF:
    - Unbounded task flow- Неограниченный поток: Ряд действий, правил потока управления и управляемых бинов, которые взаимодействуют, чтобы позволить пользователю выполнять задачу. Неограниченный поток задачиADF состоит из всех действий и потоков управления в приложении, которые не включены ни в каком ограниченном потоке задач.
    - Bounded task flow- Ограниченный поток: Специализированная форма потока задач, что, в отличие от неограниченного потока задач, имеет единственную точку входа и нуль или больше точек выхода. Он содержит свой собственный набор частных правил управления потоком, действий и управляемых бинов. Ограниченный поток задач ADF позволяет повторное использование, параметризацию, управление транзакциями и повторный вход.

    задача схема решения


  1. В Application Navigator, нажмите правой кнопкой мыши на ViewController и выберите узел New из контекстного меню.

    ADF bounded task flow используется для инкапсуляции данных для повторного использования части приложения. Показать более или менееПодробнее...

    Bounded task flow похож на Java-метода в том, что он:
    - Есть единая точка входа
    - Может принимать входные параметры
    - Может генерировать возврат значений
    - Имеет свою собственную коллекцию действий и контроль правил потока
    - Имеет свою собственную память и продолжительность жизни управляемого бина ( page flow scope)

    ADF bounded task flow состоит из своего собственного набора частных контроля правил потока ,деятельности, и управляемого бина. Вызывающая сторона не требует никакого внутреннего знания таких вещей как названия страницы, вызовы метода, дочерний bounded task flows, управляемые бобы и правила управления потока в рамках bounded task flow. Входные параметры могут быть переданы в bounded task flow, и выходные параметры могут быть розданы на выходе bounded task flow. Средства управления данными могут быть совместно использованы потоками задач.


    запуск Нового галерея из приложения навигатор
  2. В New Gallery, нажмите на Web Tier | JSF/Facelets и ADF Task Flow.

    новая галерея с АПД потока задач, выбранных
  3. В диалоге Create Task Flow, введите emp-update-flow как File Name. Выбрать следующие флажки.

    Затем нажмите кнопку OK.

    Property Значение
    Create as Bounded Task Flow Checked
    Create with Page Fragments Checked
    Create Train Checked
    namning потока заданий
  4. Новая пустая схема показана и новая запись создается в Application Navigator.

    навигатор и пустой задача схема
  5. Выберите View компонент Вид значка из Component Palette и перетащите его на диаграмму.

    Основной тип деятельности потока задач является представление, которое отображает JSF-страницу или фрагмент страницы. Показать более или менееПодробнее...

    Фрагмент страницы - JSF JSP документ, который представлен как содержание на другой странице JSF. Фрагменты страницы обычно используются в bounded task flow. Ограниченный поток задачи может быть добавлен к странице как регион(region). Это допускает повторное использование потоков задач и позволяет странице включать многократные регионы, каждый содержащий определенный поток.

    Действие представления связано в метаданных с физическим фрагментом страницы или страницы JSF. Действие представления идентифицировано атрибутом идентификатора. Имя фрагмента страницы или страницы идентифицировано элементом <page> в метаданных потока задачи. ID операции представления и название страницы не должны быть одинаковы.


    создание нового взгляда на диаграмме

  6. Измените имя по умолчанию для intro.

    вид на диаграммепереименование целью 'intro'

  7. Создать новый view Вид значка на диаграмме рядом с intro.

    создание второй взгляд на диаграмме

    Переименовать его в search.

    переименование целью поиска

  8. Создать третий view вид значка на диаграмме.

    создать третий вид на диаграмме

    Переименовать его update. Ваша диаграмма должна выглядеть как на рисунке ниже.

    переименование третий поток 'обновить'
  9. Сохраните работу.

Шаг 3: Создать Task Flow Pages

Интро страница является отправной точкой этого потока задач, и вы увидите, как создать train в пределах страницы. Чтобы сделать это, выполните следующие шаги:

  1. На схеме emp-update-flow, дважды щелкните на intro компонент для создания страницы.

    дважды щелкните на вступление стр.

    В диалоге Create New JSF Page Fragment, нажмите кнопку OK , чтобы принять значение по умолчанию.

    создавать новые страницы jsf фрагмент
  2. Дизайн страницы открывается. Из Палитры Компонентов( Component Palette ),  группы  ADF Faces Common Components, выберите Train компонент поезд и перетащите его на страницу конструктора.

    Train представляет собой прогрессию связанных действий, которая ведет конечного пользователя к завершению задачи. Показать более или менееПодробнее...

    Конечный пользователь щелкает по серии остановок поезда, каждая остановка, соединяется с определенной страницей.

    Дополнительный компонент Train Button Bar может быть добавлен. Он содержит кнопки, которые обеспечивают дополнительное средство переместиться назад и вперед через остановки. Этот компонент может использоваться в сочетании с компонентом Train, чтобы обеспечить многократные способы переместиться через остановки "поезда".

    У каждого ограниченного потока задач может быть единственный только Train. Если bounded task flow логически включает многократные поезда, Вы должны добавить каждый поезд к отдельному bounded task flow.

    страницы в дизайнере, добавив поезд

    В диалоге  Bind Train, нажмите кнопку OK , чтобы принять значение по умолчанию.


    установка значения поезд

  3. Выберите Train Button Bar компонент поезд кнопку бар и поместите его под Train компонент.

    добавление кнопку обучить бар

    В диалоге Bind trainButtonBar, нажмите кнопку OK , чтобы принять значение по умолчанию.

    связывание на кнопку обучить бар

  4. Из Палитры Компонентов, в ADF Faces группы Bind trainButtonBar, выберите Output Text компонент выходной текст и поместите под Train Button Bar.

    добавление outpur тест

    Откройте Инспектор свойств(Property Inspector), если  уже не там (View | Property Inspector или используйте комбинацию клавиш [Ctrl] + [Shift] + [I]), и введите  Welcome to the Employee updater в поле Value.

    значение параметра для вывода текста

    Страница должна выглядеть так:

    дизайн-view page

  5. Сохранить все, а затем нажмите emp-update-flow, чтобы открыть диаграмму потока задач.

    открыть поток задач стр.

  6. Дважды щелкните на компонент search view для создания страницы поиска.

    дважды щелкните страницу поиска

  7. В диалоге Create New JSF Page Fragment, нажмите кнопку OK , чтобы принять значение по умолчанию.

    создавать новые страницы jsf фрагмент

  8. Дизайн страницы открывается. Из Палитры Компонентов, в ADF Faces группе Common Components, выберите Train компонент поезд и перетащите его на страницу конструктора.

    добавление поезд на стр.

    В диалоге Bind Train, нажмите кнопку OK , чтобы принять значение по умолчанию.

    bind поезд панели

  9. Выберите Train Button Bar компонент поезд кнопку бар и поместите его под Train компонент.

    добавить кнопку обучить к стр.

    В диалоге Bind trainButtonBar, нажмите кнопку OK , чтобы принять значение по умолчанию.

    связать кнопку обучить бар панели

  10. Сохранить все, а затем нажмите вкладку emp-update-flow, чтобы открыть диаграмму.

    выберите задачу схема снова

  11. Дважды щелкните на update для создания обновлений страницы.

    дважды щелкните обновить страницу

  12. В Create New JSF Page Fragment, нажмите кнопку OK , чтобы принять значение по умолчанию.

    создавать страницы jsf фрагмент

  13. Дизайна страницы. Из Палитры Компонентов, в ADF Faces Common Components, выберите Train компонент поезд и перетащите его на страницу конструктора.

    добавить поезд на стр.

    В Bind Train, нажмите кнопку OK , чтобы принять значение по умолчанию.

    bind поезд

  14. Выберите Train Button Bar компонент поезд кнопку бар и поместите его под Train компонент.

    добавить кнопку обучить бар

    В  Bind trainButtonBar, нажмите кнопку OK , чтобы принять значение по умолчанию.

    связать кнопку обучить бар


  15. Нажмите на Save All сохранить все значок, чтобы сохранить приложение.

Шаг 4: Связь Страниц Потока Задач с Управлением Данными

Страницы Поиск и Обновление  необходимо связать с контролем данных компонентов. Поиск для запроса служащих по любой колонке критерия и Обновление - для отображения и обновления заработной платы работников. Чтобы сделать это, выполните следующие шаги:

  1. Нажмите на вкладку search, чтобы открыть страницу.

    reopn страница поиска
  2. В Application Naviator откройте the Data Controls аккордеон и раскройте следующие узлы AppModuleDataControl | EmployeesView1 | Named Criteria и перетащите All Queriable Attributes на эту страницу.

    Управление данными (data control) - по существу мост, который данные из источника делает доступными ADF Fusion Web Application. Показать более или менееПодробнее...

    По умолчанию, для всех бизнес-компонентов, управление данными создается, чтобы запросить все атрибуты в объекте представления(view object). Data Control помещенный на страницу, позволяет данным быть выведеными на экран с помощью выходных компонентов.

    Вы можете использовать объекты в управлении данными, чтобы создать связанные компоненты пользовательского интерфейса данных. Наиболее часто используемые типы средств data control:

    ADF Business Components : Этот тип управления данными сгенерирован JDeveloper, когда Вы создаете модуль приложения в своем приложении Бизнес-компонентов ADF.
    JavaBean : Этот тип управления данными получает структуру данных от POJO (plain old Java objects - простые объекты Java) .
    EJB : Управление данными EJB - по существу то же, что управление данными JavaBean, за исключением того, что для получения данных использует функции, свойственные архитектуре EJB.
    Web Service : Управление данными Веб-сервиса получает структуру данных от WSDL.


    управления данными со всеми querable атрибуты

    Из pop-up меню, выберитеCreate | Quick Query --> ADF Quick Query with Table.

    Быстрая форма поиска(Quick Query) предназначена, чтобы использоваться в ситуациях, где единственный поиск будет достаточен вполне или как начальная точка, чтобы развиться в полный поиск. Показать более или менееПодробнее...

    И Query и Quick Query формы поиска - компоненты ADF Faces. У быстрой формы поиска Quick Query есть одно поле критериев поиска с выпадающим списком доступных для поиска атрибутов из связанного набора данных. Как правило, доступные для поиска атрибуты - все атрибуты в связанном объекте представления( View object ).

    Вы можете исключить атрибут, устанавливая его свойство Display Hint в Hide на странице Control Hints диалогового окна Edit Attribute. Пользователь может искать по выбранным атрибутам или искать по всем выведенным на экран атрибутам. Тип поля критериев поиска будет автоматически соответствовать типу своего соответствующего атрибута. Ссылка Advanced(Расширенный), встроенная в форму, предлагает Вам опцию создать управляемый бин(managed bean), для переключения из быстрого поиска в режим расширенной формы поиска.

    alt текст



  3. В окне Edit Table Columns, выберите параметры Single Row Selection и Enable Sorting.

    Затем нажмите кнопку OK.

    редактирование столбцов таблицы
  4. Страница должна выглядеть следующим образом:

    страницу в представлении " дизайн
  5. Нажмите вкладку update, чтобы открыть страницу.

    открыть страницу обновления
  6. Из панели  Data Controls, выберите AppModuleDataControl | EmployeesView1 затем перетащите его на страницу update.

    контроль данных
  7. Из всплывающего меню выберите  вариант Create | Form --> ADF Form.

    "Бросание" объекта как Form из панели Data Controls имеет тот же эффект как бросание единственного атрибута, кроме того что... Показать более или менееПодробнее...

    ... создаются множество компонентов UI с привязкой к атрибутам. Атрибуты на компонентах UI (таких как value) связаны со свойствами на объекте того атрибута (такими как inputValue) или со значениями набора control hints на соответствующем бизнес-объекте.

    Когда Вы перетаскиваете атрибут или объект на страницу JSF и бросаете его как компонент UI, среди прочего, для страницы создается файл определения страницы(если еще не существует). Создается и добавляется привязка для итератора и атрибутов в файл определения страницы. Дополнительно, необходимый код страницы JSPX для компонента UI добавляется в страницу JSF.


    меню создать - АПД форме
  8. На Edit Form Fields выберите последние 3 строки (CommissionPctManagerID и DepartmentId) и нажмите на Delete удалить значок для удаления полей. Затем выберите вариант Include Submit Button и нажмите OK.

    редактировать поле формы панели
  9. В Палитре Компонентов(Component Palette), выберите Button  кнопка  перетащите и поместите его рядом с кнопкой Submit.

    обновите страницу в представлении " дизайн"
  10. В Инспекторе свойств( Property Inspector) Cancel (Отмена) в поле Text для кнопки.

    кнопка - текстовое значение
  11. Страница должна выглядеть следующим образом:

    страницу в представлении " дизайн
  12. Нажмите на значок Save All, чтобы сохранить приложения.

Шаг 5: Установить Управление Транзакцией для Task Flow

Чтобы закончить транзакцию, Вы можете или использовать действие return, или Вы можете использовать кнопку, связанную с операцией action. Если возможно, используйте действие return потока задачи. Действие return потока будет фиксировать(commit) все данные, используемые в представлениях на потоке задач ADF. Это также упрощает видеть, где Ваше приложение делает commit и rollback, и поэтому проще его  поддерживать. Чтобы реализовать действия return для управления транзакциями, выполните следующие шаги:

  1. Нажмите на  emp-update-flow, чтобы открыть диаграмму задачи.

    задача схема возобновлено
  2. Нажмите на вкладку Overview , затем выберите Behavior (Поведение) вкладку.

    вкладка overview и поведение выбранного
  3. В группе Transaction , установите следующие свойства из списка: Always Begin New Transaction (Всегда Начинать Новые Операции).

    Транзакция - сохраненный набор действий, которая может фиксироваться или откатываться только полностью как группа действий. Показать более или менееПодробнее...

    Вы можете использовать ограниченный поток задачи( bounded task flow ), чтобы представлять транзакцию и декларативно управлять ее границами. Например, регистрация клиента и поток задач регистрации сотрудника могут быть реализованы с использованием действий return потока задачи. Кнопка Cancel реализовала бы откат - rollback в потоках задачи. Кнопка Save тогда использовалась бы для фиксации - commit.

    Таким образом, обновление каждого служащего рассматривается как единый ряд детализации сделки.

    сделки выделенной области
  4. Снова на диаграмме, выберите  компонент Task Flow Return задачи flow returnи бросьте его под update.

    добавление вкуса потока вернуться к диаграмме,

    Переименуйте его commit.

    переименуйте его совершению
  5. Снова выбрать  компонент Task Flow Returnзадачи flow returnи бросьте его под update, но переименуйте его в rollback. .

    откат быстрый поток добавил
  6. Выберите  компонент Control Flow Case из Палитры Компонентов и нажав на update, перетащите его в commit return.

    добавить потока управления, чтобы совершить, чтобы вернуться

    Переименуйте его commit.

    переименовать потока к совершению
  7. Выберите компонент Control Flow Case из Палитры Компонентов и нажав на update, перетащите его в rollback return. Переименуйте его rollback.

    добавление потока для отката возврата
  8. Диаграмма задач должна выглядеть следующим образом:

    завершена схема
  9. Выберите commit return компонент и в инспекторе свойств, во вкладке Behavior, в End Transaction выберите commit из списка значений.

    выберите совершить возвращениеокончания сделки, на совершение
  10. Повторите ту же операцию, выбрав rollback return и выберите rollback из списка End Transaction.

    откат, возврат набор для отката
  11. Нажмите на Save All сохранить все значок значок, чтобы сохранить приложения.

  12. Нажмите на вкладку update, чтобы открыть страницу дизайна , и выберите кнопку Submit.

    страница обновления, представить нажата кнопка

    В Инспекторе свойств, в поле Action, выберите commit из списка.

    действий на кнопку set, чтобы совершить
  13. Выберите кнопку Cancel.

    кнопка cancel при обновлении страницы выбранного

    В Инспекторе свойств, в поле Action, выберите rollback из списка.

    свойство action установите для отката
  14. Нажмите Save All, чтобы сохранить приложение.

Шаг 6: Определить Второй Поток Задач

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

Типичным применением является комбинация неограниченного(unbounded) и один или более ограниченных(bounded) потоков задач. Показать более или менееПодробнее...

Например, JDeveloper, по умолчанию создает пустой неограниченный поток задачи (имя исходного файла adfc-config.xml), когда Вы создаете Fusion веб-приложение, используя шаблон Fusion Web Application. Во время выполнения Fusion веб-приложение может вызвать ограниченный поток исходя из действий, которые Вы добавили в этот неограниченный поток.

Как показано ниже, первое действие, которое выполнится в приложении, часто является действием view в неограниченном потоке задач. Действие view представляет страницу JSF, которая выводится на экран как часть приложения. Действие запускается с представления Home и затем вызывает ограниченный поток задач. calltoLogin_taskFlow действие вызывает ограниченный поток задач, который позволяет пользователю зарегистрироваться в приложении.

alt текст

Вы можете также разработать приложение, в котором все действия находятся в неограниченном потоке. Это подражает Struts или приложению JSF, но не использует в своих интересах функциональность ограниченных потоков задач ADF. Чтобы в полной мере воспользоваться функциональностью потоков задачи, используйте ограниченные потоки задачи ADF.
  1. В Application Navigator, нажмите правой кнопкой мыши на ViewController и выберите узел New из контекста.

    navigaor и контекстное меню для нового
  2. В New Gallery, нажмите кнопку Web Tier | JSF и ADF Task Flow. Затем нажмите кнопку OK.

    новая галерея выбор АПД потока задач
  3. В Create Task Flow, введите security-flow как File Name. Выберите флажки Create as Bounded Task Flow и Create with Page Fragments.

    Нажмите кнопку OK.

    создать поток задач подробности
  4. Новая пустая диаграмма появится и новая запись в Application Navigator.

    naviagtor и дизайн-стр.
  5. Выберите компонент View  вид значка из Палитры Компонентов и перетащите его на диаграмму.

    поток задач

    Переименовать в login.

    переименован целью логин
  6. Выберите компонент Router (Маршрутизатор ) маршрутизатор значок и поместите его рядом с login.

    Вы можете использовать действие маршрутизатора, чтобы декларативно направить управление к действиям на основе логики, определенной в выражении EL. Показать более или менееПодробнее...

    Каждый поток управления может соответствовать различному условию(case) маршрутизатора. Каждый case маршрутизатора содержит следующие элементы, которые используются, чтобы выбрать действие, к которому направлено управление. Первое выражение, которое возвращает true, используется, чтобы определить соответствующий результат.

    выражение(expression): Оценка выражения EL либо true, либо false, например, #{(pageFlowScope.welcomeUserRegistrationBean.userSelection eq 'Customer')}

    результат(outcome): значение, возвращаемое маршрутизатором, если EL выражение принимает значение true, например, newCustomer. Если результат соответствует from-outcome на control flow case(управление условием потока), управление переходит к действию, на которое указывает этот control flow case.

    Если ни одно из условий маршрутизатора не вычисляется в true, или если никакое условие не определено, используется результат, указанный в маршрутизаторе по умолчанию (default outcome).


    добавление маршрутизатора для выполнения задач
  7. Выберите emp-update-flow в Application Navigator, а затем перетащите его на диаграмму ниже router.


    emp потока добавлены в безопасности потока

  8. Выберите значок View  вид значка из палитры компонентов, затем перетащите его на диаграмму.

    добавление целью схема

    Переименовать в error.

    переименовать целью ошибка
  9. Выберите Control Flow Case и нажав на login , перетащите в router.

    добавление потока управления в случае маршрутизатор
  10. Повторите предыдущую операцию от router к error.

    добавление потока управления случае от маршрутизатора

    Переименовать поток в bad.

    переименовать потока в плохо
  11. Повторите предыдущую операцию от router к emp-update-flow.

    Переименовать его в good.

    добавить еще один поток для emp потока задач Good
  12. Повторите предыдущую операцию от router к login.

    Переименовать в login. Ваша схема должна выглядеть следующим образом:

    alt текст
  13. Второй поток задач завершен. Сохраните приложение.

Шаг 7: Определить Task Flow Компоненты и Router Rules (Правила Маршрутизатора)

Мы создаем страницу входа в систему с полем пароля, затем мы создаем backing bean для значения пароля. Затем маршрутизатор, в зависимости от значения пароля, приводит к странице error  или к потоку emp-update. Чтобы создать страницы и реализовать правила маршрутизатора, выполните следующий шаг:

  1. В диаграмме, дважды щелкните на login для создания страницы. В Create New JSF Page Fragment нажмите OK , чтобы принять значения по умолчанию.

    страница входа создание панели
  2. В Палитре Компонентов, перетащите элемент Input Text на страницу login ( login.jsff ).

    добавление входного текста

    Введите password (пароль) в качестве метки label.

    Настройка лэйбле, чтобы пароль
  3. Во вкладке Advanced, рядом с полем Binding, выберите Edit из раскрывающегося списка.

    обновление привязки недвижимости

    В окне Edit Property нажмите кнопку New кнопка для создания Managed Bean, который будет управлять значением пароля.

    создание бэк-Боб


    Managed beans ( управляемые бины )- классы Java, которые Вы регистрируете в приложении, используя различные конфигурационные файлы. Показать более или менееПодробнее...

    Когда приложение JSF запускается, оно анализирует эти конфигурационные файлы, и бины, перечисленные в них, делаются доступными. На Managed beans можно сослаться в выражении EL, предоставляя доступ к свойствам и методам бинов. Каждый раз, когда на управляемый бин ссылаются впервые, и он уже не существует, Managed Bean Creation Facility инстанцирует бин, вызывая метод конструктора по умолчанию на нем. Если объявлены какие-либо свойства, они заполненяются объявленными значениями по умолчанию.

    Используйте управляемые бины, чтобы хранить логику, которая связана с только с видимым интерфейсом пользователя. Все данные приложения и обработка должны быть обработаны логикой в деловом уровне приложения. Подобно тому, как Вы храните связанную с данными логику в базе данных, использующей PL/SQL, а не в классе Java, веб-приложение Fusion должно хранить связанную с бизнесом логику на среднем уровне. Таким образом, Вы можете представить эту логику как методы бизнес-сервиса, которые могут тогда стать доступными для уровня ADF Model и быть доступными для привязки данных.


    В диалоговом окне Create Managed Bean, введите следующие значения:

    Свойство Значение
    Bean Name backing_login
    Class Name backing_login
    Package backing
    Extends java.lang.Object
    Scope request
    Generate Class If It Does Not Exist (отметить)
    изменить привязку панели

    Нажмите кнопку OK.

  4.  Edit Property: щелкните New , расположенную рядом с Property.

    создать новую поддержку Боб недвижимости

    В окне Create Property, введите password в Property Name.

    назвав собственность 'пароль'
  5. Узел Advanced, в Инспекторе свойств, для компонента ввода текста должен выглядеть следующим образом:

    ввод текста в инспекторе свойств

    Обратите внимание, что для реалистичного поля пароля, вы должны также установить Advanced | Visible в false, чтобы скрыть пароль.

  6. Перетащите компонент Button кнопка под поле ввода пароля.


    добавление кнопки к стр.

    Изменить Text в login.

    установите текст кнопки для входа в систему

  7. Нажмите вкладкку security-flow, чтобы открыть схему и добавить Control Flow от страницы error к странице login и назовите его login.
    Затем выберите router.

    безопасности задачи потока схема
  8. В Инспекторе свойств для router, выберите bad из раскрывающегося списка как результат по умолчанию.
    В Cases нажмите на Add  символ , чтобы создать условия.

    по умолчанию результат для маршрутизатора набор для плохо
  9. В поле Expression выберите Expression Builder( Конструктор Выражений).

    выберите построитель выражений в тех случаях, недвижимость

    Раскройте следующие узлы  ADF Managed Beans | backing_login | password и выберите переменную value, а затем выберите операнд '==' и напечатайте 'oracle'.

    Настройка ЭЛЬ выражение

    Нажмите кнопку OK.

    В этом примере у нас закодирован oracle как жестко запрограммированное (hard coded) значение для пароля.

  10. Еще в Инспекторе свойств выберите good как результат, так что, если пароль, введенный равен oracle, поток проходит через  поток "good" в поток  emp-update, в противном случае на страницу error .

    Настройка случае исход значение
  11. Теперь нам нужно создать параметр для работы управляемого значения свойства. В диаграмме security-flow, нажмите вкладку Overview, затем вкладку Parameters.

    Вызванный ADF bounded task flow, может принять входные параметры и может передать возвращаемые значения к вызывающей стороне на выход. Показать более или менееПодробнее...

    Чтобы передать входной параметр к ограниченному потоку задач, Вы должны определить один или больше:
    - Входные параметры на действие task flow call. Они определяют, где вызванный task flow сохранит значения параметров.
    - Определения входных параметров на вызванном bounded task flow. Они определяют, где вызванный ограниченный поток задач может получить значения параметров.

    Входное название параметра, определенное для каждой опции, будет тем же, чтобы соответствовать входным значениям параметров в вызванном bounded task flow. Значение для каждого соответствует тому значению, что будет получено в вызывающей стороне и вызванном потоке задачи. Если Вы не определяете значение для входного параметра, значение по умолчанию #{pageFlowScope.parmname}, где parmname - имя Вашего параметра.

    Вы можете уточнить в определении входного параметра( Input Parameter Definitions ) для вызванного bounded task flow, обязателен ли входной параметр. Если обязательный входной параметр не получен, происходит ошибка (которая отмечена во время проектирования, а также во время выполнения). Параметра, который идентифицирован как не требуемый, может быть проигнорирован во время создания действия вызова потока задачи. По умолчанию все объекты переданы ссылкой. Входные параметры действия task flow могут быть переданы ссылкой, только если переданы управляемые объекты бина, а не отдельными значениями. По умолчанию типы примитивов (например, int, long, или boolean) переданы значением.


    выбор параметров вкладка
  12. В Input Parameter Definitions, нажмите кнопку Add зеленый знак плюс.

    входной параметр определения

  13. Установите для этого параметра значения из таблицы ниже, затем сохраните все.

    Свойство Значение
    Name username
    Class java.lang.String
    Value (авто заполнение)
    Required (Отмечен)
    входной параметр определение завершена
  14. Нажмите на login.jsff закладку, чтобы открыть страницу,и перетащите и бросьте компонент Output Text выше password input text.

    добавление вывода текста на странице входа

  15. В Инспекторе свойств выберите Expression Builder... из списка поля Value.

    В JSF Вы используете простой язык выражения (названный EL), чтобы связать с информацией, которую Вы хотите представить и/или изменить. Показать более или менееПодробнее...

    Выражения в качестве примера похожи на #{userInfoBean.principalName}, чтобы сослаться на имя определенного пользователя или #{userInfoBean.principalName eq 'SKING'}, чтобы оценить, является ли имя пользователя SKING или нет. Во время выполнения универсальное средство анализа выражения возвращает String и булево значение этих соответствующих выражений, автоматизируя доступ к отдельным объектам и их свойствам, и не требуя кода.

    Во время выполнения значение определенных компонентов JSF UI определено атрибутом значения. В то время как у компонента может быть статический текст как его значение, обычно атрибут значения будет содержать привязку, которая является выражением EL, которое инфраструктура времени выполнения оценивает, чтобы определить какие данные вывести на экран. Например, outputText компонент, который выводит на экран имя пользователя, кто в настоящее время входит в систему, может иметь в значении атрибута выражение #{userInfoBean.principalName}. Так как любму атрибуту компонента может быть присвоено значение, используя выражение EL, просто создать динамические, управляемые данные пользовательского интерфейса. Например, Вы могли бы скрыть компонент, если пользователь не зарегистрирован, при помощи выражения булевой переменной #{userInfoBean.principalName!=null} в атрибуте "rendered" компонента UI. Если нет никакого principalName в текущей сущности userInfoBean, представленный атрибут оценивается как false, и компонент исчезает со страницы.


    выражение построить для вывода текста
  16. В Expression Builder убедитесь в том, чтобы очистить поле expression, затем разверните ADF Managed Beans | pageFlowScope и выберите username.

    Затем нажмите кнопку OK.

    установка ЭЛ имя пользователя
  17. Нажмите вкладку security-flow, чтобы открыть схему-диаграмму и дважды щелкните на error с целью создания страницы.

    откройте страницу ошибки

    В диалоге Create New JSF Page Fragment, нажмите кнопку OK , чтобы принять значение по умолчанию.

    страница ошибки с пустым шаблоном
  18. Из Палитры Компонентов, перетащите элемент Output Textвывод текста значок на страницу.

    добавление вывода текста на странице ошибки

    В Инспекторе свойств введите Error, wrong password( Ошибка, неверный пароль ) в поле Value.

    установите значение пароль
  19. В Design, нажмите клавишу Enter чтобы добавить новую строку и перетащите компонент Button значок кнопки под текст ошибки.

    добавить новую кнопку на странице

    В Инспекторе свойств, измените Text в Retry( Повторить ) и из списка выберите login как action.

    переименовать кнопку, чтобы повторить
  20. Нажмите на Save Al, чтобы сохранить приложение.

Шаг 8: Создать JSP-Страницу и связать Поток Задач как Регион на странице.

Для создания JSF Страницы, которая использует поток задач, выполните следующие действия:

  1. Щелкните правой кнопкой мыши на ViewController узел в Application Navigator и выберите New из контекста.

    навигатор с contect меню
  2. В New Gallery, выберите Категорию Web Tier и JSF/Facelets пункт Page .

    Затем нажмите кнопку OK.

    новая галерея с jsp-страница выбранной
  3. В окне Create JSF Page, введите master в качестве  File Name и отметив Page Template выберите Oracle Three Column Layout.

    Затем нажмите кнопку OK.

    создание мастер-стр.
  4. Прокрутите туда сюда, чтобы увидеть текущую веб-страницу в редакторе.

    страница с 3 coumn шаблон
  5. Из Палитры Компонентов, перетащите элемент Output Text компонент ouyput текста значок на start facet.

    добавление компонент вывода в первой колонке

    Измените Value на Welcome в Инспекторе свойств.

    установка значения выходного текста ждать

  6. В ViewController | Web Content | WEB-INF узле, перетащите security-flow.xml на Facet center.

    Выберите Регион из меню.

    добавление данных управления на стр.



    Вы можете представить ограниченный поток задачи во фрагменте страницы или страницы JSF (.jsff) при помощи региона ADF. Показать более или менееПодробнее...

    Регион ADF включает в себя следующее:
    - af:region тэг, который появляется на странице или фрагменте страницы, где вы отображаете регион
    - Экземпляр объекта, реализующего RegionModel из следующего пакета: oracle.adf.view.rich.model
    - Привязка потока задач(task Flow) в определении страницы, которая идентифицирует bounded task flow для региона ADF
    .
    При первом появлении, содержание региона ADF - содержание первого действия представления в ограниченном потоке задачи. Действия представления, используемые в ограниченном потоке задачи, должны быть связаны с фрагментами страницы, а не страницами. Вы можете передать значения в регион ADF, используя поток задачи, связывающий входные параметры или контекстные события. Кроме того, Вы можете сконфигурировать свойство parametersMap, чтобы определить, какие входные параметры привязка потока задачи передает из ограниченного потока задачи в регион ADF.

    Регионы ADF могут быть сконфигурированы так, чтобы Вы определили, когда регион активируется или обновляется. Вы можете также сконфигурировать регион ADF и bounded task flow так, чтобы управление навигацией остановилось в bounded task flow и передалось странице, которая содержит регион ADF. Наконец, Вы можете создать динамические регионы (ADF dynamic regions), где привязка потока задачи определяется во время выполнения, что именно bounded task flow отображает в регионе, и сконфигуровать динамическую ссылку региона так, чтобы конечные пользователи могли изменить bounded task flow, который отображается в динамическом регионе ADF во время выполнения.

    создание контекстного меню displayign области

    В Edit Task Flow Binding, в поле Value введите #{'Scott'}.

    поток задач обязательный набор на #{'Скотт'}

  7. Главная страница должна теперь выглядеть следующим образом:

    мастер-страница со всеми отображаемых элементов

  8. Нажмите на Save All сохранить все значок значок, чтобы сохранить приложение.

Шаг 9: Запустить Master -Страницу.

Теперь, когда поток задач интегрирован как регион главной страницы, вы можете запустить его. Чтобы сделать это, выполните следующие шаги:

  1. В редакторе страницы master, щелкните правой кнопкой мыши и выберите Run из контексного меню..

    контекстное меню запуска выбранных
  2. Страница загружается в ваш браузер, отображающий имя переменной (Scott) и, ожидая ввод пароля.

    главная страница работает в браузере

  3. Попробуйте ввести неправильный пароль (который отличается от oracle).

    : введенное в поле " пароль"

    Затем щелкните на login кнопку. Маршрутизатор переведет к странице error.

  4. Нажмите на кнопку Retry для входа в систему с правильным паролем.

    ошибка странице

  5. Снова на странице входа, введите oracle в качестве пароля.

    страница входа с oracle в качестве пароля

    Затем нажмите кнопку login.

  6. Новая страница будет отображать train.

    первая страница потока

  7. На новой странице нажмите кнопку Next или кнопку train.

    alt текст

  8. На втором этапе train, на странице поиска, выберите LastName.
    Введите A% в поле поиска, для получения всех работников, имя которых, начинается с A .

    поиск любой сотрудник, который начинается с

    Нажмите на search кнопку.

  9. В возвращаемом списке, выберите одного сотрудника и затем нажмите кнопку Next.
    Вы можете свернуть панель Search, пока вы не готовы ввести новые критерии.

    вернулся сотрудников

  10. На странице Edit для выбранного сотрудника, обновите заработную плату, затем нажмите Submit.

    редактировать страницы на одного работника

  11. Приложение возвращает вас на страницу login.

    страницы входа

  12. Вернитесь в JDeveloper и откройте Database Navigator (если ее не видно, используйте View | Database | Database Navigator).

    толерантность навигатор, выбранное в меню

  13. Расширьте TaskFlow | HRConn | Tables узлы и дважды щелкните на таблице Employees , чтобы открыть ее.

  14. Нажмите Data

    данные кнопки выбранные

    Нажмите Sort...

    вроде нажата кнопка

  15. Чтобы получить более легко информацию о сотруднике, которого вы ищете, вы можете использовать поле Filter или использовать операцию Sort. Нажмите на кнопку Sort, и в окне Sort Columns, переместите LAST_NAME в список Selected Columns.

    Затем нажмите кнопку OK.

    столбца сортировки панели

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

    обновление записи с новым значением
  17. Вы можете повторить этот последний процесс, чтобы проверить действие Cancel (rollback).

    Вы успешно завершили этот учебник.

Резюме
В этом учебнике вы разработали два независимых потока задач, которые включают  views, returns и routers. В представлениях ( views ), вы добавили привязку данных компонентов и управление транзакциями в потоках задач. Вы научились: Чтобы узнать больше о потоках задач, регионы и маршрутизаторы, обратитесь к:

Закладки Печать Развернуть все | Скрыть все
Назад к началу

Вы нашли эту страницу полезны?



Copyright й 2011 года, Oracle и/или ее филиалами. Все права защищены.
Hosted by uCoz