Главная > OA Framework > Что такое Oracle Application Framework (OAF)


Что такое Oracle Application Framework (OAF)

Oracle Application Framework (OA Framework) – служит для разработки и кастомизации HTML страниц Oracle E-Business Suite.

OA Framework основан на стандарте J2EE и использует шаблон проектирования Model–View-Controller (MVC).


Model – отвечает за бизнесс логику, использует Oracle Business Components for Java (BC4J) : AM (Application Module), VO (View Object), EO (Entity Object)

View — отвечает за отображение информации (пользовательский интерфейс).

Controller — интерпретирует данные, введённые пользователем, и информирует модель и представление о необходимости соответствующей реакции. Прочитать больше про контроллер.

Похожие записи:

  1. Sand
    4 Август 2011 в 06:07 | #1

    Здравствуйте.
    Не подскажете, есть табличка с результатами поиска(Region Style — table), на каждой записи есть кнопка… есть ли возможность как нибудь активировать/деактивировать эту кнопку в зависимости от данных в каком нибудь поле на этой записи, например флаг какой нибудь?

  2. rudev
    4 Август 2011 в 06:27 | #2

    @Sand
    Можно.
    1) Для этого добавляется поле типа Boolean в ViewObject (на котором построена таблица), которое, в зависимоcти от значений строки, равно TRUE or FALSE.
    2) В свойства нужного элемента прописываем ссылку на добавленное поле ${oa.ViewInstanceName.ViewAttributeName}

  3. Sand
    4 Август 2011 в 06:29 | #3

    А значение поля устанавливать в VORowImpl?

  4. rudev
    4 Август 2011 в 07:36 | #4

    @Sand
    Значение устанавливаем на элемент страницы. Например OAMessageChoiseBean или OALinkBean.

    Если страница кастомная, то прямо в свойствах поля. Если стандартная, то через контроллер.

  5. Sand
    4 Август 2011 в 08:26 | #5

    Это понятно, я имел в виду
    «1) Для этого добавляется поле типа Boolean в ViewObject (на котором построена таблица), которое, в зависимоcти от значений строки, равно TRUE or FALSE.»
    Как установить значение поля для каждой строки?
    Пытаюсь сделать в VORowImpl классе, не получается, значение устанавливается одно для всех строк

    public Boolean getFlag()
    {
    //return (Boolean)getAttributeInternal(FLAG);
    String transferred = (String)getAttributeInternal(TRANSFERRED);
    System.out.println(«transferred = » + transferred);
    if (transferred != null && transferred.equals(«Y»))
    return new Boolean(false);
    else
    return new Boolean(true);
    }

  6. Sand
    4 Август 2011 в 08:27 | #6

    У меня 2 строки, в одной getAttributeInternal(TRANSFERRED) = ‘Y’ в другой — NULL, в итоге всегда получаю null

  7. rudev
    4 Август 2011 в 10:14 | #7

    @Sand
    Я бы данное условие прописал прямо в запрос VO

    … case when .. then ‘TRUE’ else ‘FALSE’ end

  8. Sand
    4 Август 2011 в 11:15 | #8

    rudev :
    @Sand
    Я бы данное условие прописал прямо в запрос VO
    … case when .. then ‘TRUE’ else ‘FALSE’ end

    К сожалению типы не совпадают, нельзя char привести к Boolean, возникает exception, осталось выяснить, где именно происходит инициализация строк при поиске, и там выставить значение атрибуту. Буду копать..

  9. rudev
    4 Август 2011 в 11:29 | #9

    @Sand
    Где то вы, что то не так сделали видимо. У меня все отрабатывает хорошо.
    Тип атрибута надо указать Boolean.

  10. Sand
    4 Август 2011 в 12:38 | #10

    Победил, все оказалось гораздо проще, используется элемент — switcher, который интерпретирует любые данные, не только boolean. Я использовал String, все работает на ура

  11. rudev
    4 Август 2011 в 13:17 | #11

    @Sand
    Есть такое. Но его чаще используют, если надо показать различные типы полей.
    Например, вместо поля для ввода, делаем выпадающий список.

  12. Sand
    4 Август 2011 в 13:47 | #12

    rudev :
    @Sand
    Где то вы, что то не так сделали видимо. У меня все отрабатывает хорошо.
    Тип атрибута надо указать Boolean.

    Интересно… А не кинете исходник примерчика, с полем типа Boolean?

  13. rudev
    5 Август 2011 в 07:00 | #13

    @Sand
    Позже, я сделаю пример и выложу его на блог.

  14. Sand
    15 Август 2011 в 06:01 | #14

    rudev :
    @Sand
    Можно.
    1) Для этого добавляется поле типа Boolean в ViewObject (на котором построена таблица), которое, в зависимоcти от значений строки, равно TRUE or FALSE.
    2) В свойства нужного элемента прописываем ссылку на добавленное поле ${oa.ViewInstanceName.ViewAttributeName}

    Победил и это. Я временно реализовал данный функционал через switcher item, тоже неплохо работает, более того, стандартные оракловые страницы используют такой подход для отображения картинок-ссылок(например в модуле XDO, XML Pubisher)

    Теперь делаем с использованием SPEL
    В VO добавляем Transient атрибут, типа Boolean, ставим галку «selected in query», пишем условие, например (case when = 5 then 1 else 0 end) testField, тип поля ставим Number и в нужном свойстве нужного поля(Rendered, например) в таблице ставим ${oa.current.testField} и все, все работает. ViewInstanceName в данном случае некорректно, так как мы работаем на уровне строки

    Надеюсь кому нибудь поможет, кто начинает работать с OAF.

  15. aser
    15 Февраль 2017 в 15:28 | #15

    Приветствую. Не подскажете как сделать так, чтобы при приклеплении файла грузились только pdf файлы?

  1. Пока что нет уведомлений.