Тарифы Услуги Сим-карты

Введение в Oracle Application Express

  • В данной статье мы рассмотрим основные аспекты разработки приложения в Oracle Apex. Перед началом работы нам необходимо создать приложение в Oracle Apex. Для этого заходим в основной интерфейс разработки и нажимаем «Create» на главной странице.
  • Далее выбираем тип приложения. В нашем случае это будет «Desktop» версия приложения.

  • На следующем шаге указываем схему в БД, в которой будет храниться приложение, его название, номер и основную тему.

  • На этапе «Pages» уже можно создать страницы для нашего приложения, но мы рассмотрим их создание отдельным шагом.

  • Shared Components мы пропускаем, т.к. у нас нет компонентов для копирования из других приложений.

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

  • Проверяем основные настройки приложения и подтверждаем его создание.

  • Приложение создано, и мы находимся в разделе его редактирования. Данная среда является основной для дальнейшей разработки и редактирования приложения. Но уже сейчас мы можем запустить наше приложение с помощью кнопки «Run Application».

  • Наше запущенное приложение. Пока что оно пустое, но уже скоро он будет обрастать новыми страницами и компонентами.

Создание страницы в приложении Oracle Apex

  • Наше первое приложение создано, и мы находимся в основном разделе его редактирования. Как видим, в нём уже создано две страницы (домашняя и страница авторизации в приложение). Попробуем создать новую, для этого нажимаем «Create Page».

  • Выбираем тип страницы. Это может быть пустая страницы, отчет, форма, график и т.д. Сейчас создадим пустую страницы, а далее рассмотрим создание регионов на новой странице.

  • Присваиваем имя для страницы.

  • На шаге «Navigation Menu» можно привязать страницу к разделу в навигационном меню.

  • Подтверждаем создание страницы.

  • Теперь список страниц в приложении пополнился новой страницей.
  • Если выберем нашу страницу из списка выше, то попадем в основное меню создания, редактирования и обзор всех компонентов страницы. Для более наглядного редактирования компонентов на странице можно использовать «Page Designer», для этого необходимо перейти в соответствующий раздел.

  • Внешний вид раздела «Page Designer» выглядит следующим образом:


Создание графика (Chart) в Oracle Apex

  • Для создания графика в Oracle Apex на новой странице, в разделе редактирования страницы необходимо создать регион с типом «Chart». Регионом в Oracle Apex является некий контейнер содержащий набор информации (графики, отчеты, кнопки, формы и др.).

  • На следующем этапе выбираем тип отображения графика на странице (Flash/HTML), в нашем случае это будет HTML5 и тип графика – гистограмма.

  • Затем производится настройка атрибутов региона.

  • Указываем название для графика. Также на данном шаге можно выбрать отображение значений на графике, имя аксис, отображение легенды, сетки и цвет заливки графика.

  • На этапе «Source» задаем сам запрос для построения графика. На этом же этапе можно указать максимальное количество выводимых строк для построения графика и сообщение, если данных для построения графика будет не хватать.

  • После того как мы создали регион, в меню «Chart Attributes» можно задать дополнительные настройки графика, такие как размеры графика, цветовые настройки, параметры отображения элементов графика, настройки легенды, создание второй серии графика, а также Drill Down до следующего уровня графика и многое другое.

Создание интерактивного отчёта в Oracle Apex

  • На странице создаем регион с типом «Report».

  • Выбираем тип «Interactive Report», т.к. ряд возможностей работы с ним шире, чем у классического отчета.

  • Задаем название региона.

  • На этапе «Source» задается текст запроса для отчета. Его можно указать как привычным скриптом, так и построить через «Query Builder» выбрав пункт «Table».

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

Работа с оглавлением приложения

  • Для демонстрации создания и редактирования многоуровневого оглавления в приложении Oracle Apex, создадим несколько страниц, где в названии будет указан уровень в оглавлении.

  • В разделе «Shared Components» выбираем раздел «Navigation Menu».

  • На странице «List Details» необходимо добавить запись в меню навигации. Для этого в пункте «Page» выбираем страницу, на которую будет ссылаться раздел меню, а в пункте «List Entry Label» указываем название пункта меню.

  • Для добавления дочерних разделов меню, для новой страницы повторяем предыдущий шаг, но в качестве родительской страницы, в пункте «Parent List Entry», выбираем необходимый раздел.

  • По завершению работы с добавлением разделов меню, в структуре «List Details» мы видим названия разделов, родительский пункт меню и уровень в меню навигации.

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

  • Сертификат Oracle по окончании курса
    Унифицированный во всем мире сертификат Oracle - гарантия качества: при обучении были соблюдены все требования корпорации Oracle, предъявляемые к преподавателю, учебной программе, организации учебного процесса и используемому оборудованию.
  • Качественно поставленный учебный процесс, проверенный годами
    Учебный центр был авторизован Oracle еще в 1995 году, а обучение i2 ведется с 2003 года. Мы подготовили несколько тысяч администраторов баз данных для крупных компаний и предприятий среднего и малого бизнеса.
  • Преподавателей-практиков высочайшего уровня
    Мы стремимся к тому, чтобы преподаватели Учебного центра были специалистами-практиками, параллельно участвующими в реализации реальных проектов по разработке информационных систем и технической поддержке. Двое из наших преподавателей имеют наивысший статус - Oracle Certified Master.
  • Обучение в Москве или ином удобном для Вас месте
    Обучение проводится в Москве. По желанию клиента курсы могут читаться в подмосковных классах, а также на территории заказчиков и партнеров. Преподаватели имеют опыт чтения курсов в регионах от Москвы до Сахалина, а также за рубежом.
  • Индивидуальный подход к заказчику
    Мы всегда придерживаемся гибкого подхода при работе с клиентами, обеспечивая максимальное удобство по схемам оплаты обучения и документообороту, а также учитывая пожелания заказчиков при оформлении договоров.
  • Включение обучения в расходы при учете налогообложения
    Лицензия Департамента Московской области на образовательную деятельность, выданная УЦ, дает заказчикам право включать затраты на обучение в расходы при учете налогообложения. Организации, обучающие своих сотрудников, освобождаются от уплаты налога на добавленную стоимость (НДС).

Зачем нужно авторизованное обучение Oracle?

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

Курсы Oracle для начинающих - единственная возможность быстро освоить большой объем информации на уровне, достаточном для начала самостоятельной работы. В свою очередь, специалистам, имеющим опыт работы с Oracle, авторизованное обучение дает полное представление об изучаемой технологии и систематизацию знаний. Семинары для экспертов будут интересны и полезны широкой аудитории: администраторам баз данных, специалистам служб поддержки, разработчикам приложений.

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

Авторизованное обучение Oracle в Учебном Центре дает следующие преимущества:

  • Программы, методика, объем обучения и учебные пособия разработаны и поставляются самой корпорацией Oracle
  • Унифицированность всех аспектов обучения и сертификатов, выдаваемых слушателям, во всем мире.
  • Курсы Oracle читают только преподаватели, сертифицированные Oracle.
  • Программа курсов полностью соответствует программе тестов для получения сертификации Oracle Certified Professional (OCP). Сертификат OCP можно получить только в случае прохождения авторизованного обучения Oracle.
  • Контроль со стороны Oracle качества чтения каждого курса посредством обязательного анкетирования всех слушателей.

Интернет-магазин сайт, представляет курсы Oracle одного из главных центров авторизованного обучения Oracle в России.

Почему выгодно оформлять заказ на обучение через интернет-магазин сайт?

Главное - это экономия Вашего времени.

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

  • Ознакомиться с программами курсов самых известных Учебных центров России.
  • Выбрать удобную дату проведения курса.
  • Получить квалифицированную консультацию специалиста интернет-магазина .
  • Оплатить обучение 20 способами.
  • Получить скидки.

Что необходимо для этого сделать?:

1. Выбрать в каталоге курсов интересующий Вас курс.

2. Оформить заказ.

  • назначена дата проведения курса : в случае, если назначена дата проведения курса, при оформлении заказа выберите удобную для Вас дату. Все даты проведения курса можно посмотреть в описании курса, если Вы пожелаете зарегистрироваться на более позднию дату или выбрать удобное для Вас время, укажите эту информацию при оформлении заказа.Внимание! Если назначена дата проведения курсов, то для всех слушателей резервирование места производится только после оплаты курсов. Просьба оплачивать заранее, так как группы набираются быстро.
  • не назначена дата проведения курса : в случае, если не назначена дата курса, при оформлении заказа укажите удобное для Вас время проведения данного курса и наш специалист сообщит Вам о возможности его проведения именно в это время, при это Вашему заказу будет присвоен статус "Предварительный заказа"

3. После оформления заказа, Вам будет выслан весь пакет документов.

Корпорация Oracle является одним из ведущих мировых поставщиков бизнес-приложений. Oracle предлагает решения для повышения эффективности управления компанией, сокращения издержек и увеличения прибыльности. Независимо от масштаба Вашего бизнеса и его отраслевой направленности, Oracle предложит решение, максимально соответствующее Вашим стратегическим и операционным задачам.

Oracle Applications – это семейство полнофункциональных систем для эффективного управления всеми аспектами деятельности компании, среди которых: управление финансами, производством, кадрами, закупками, логистикой, маркетингом, продажами, обслуживанием, отношениями с поставщиками и клиентами. Бизнес-приложения Oracle призваны обеспечить глубокое понимание бизнеса и повышение качества управления предприятием. Семейство Oracle Applications сегодня охватывает как горизонтальные приложения, такие как Oracle E-Business Suite, Oracle JD Edwards Enterprise One, так и вертикальные отраслевые.

Рис. 14. «Инструмент администрирования в Oracle Applications ».

Oracle Applications – семейство бизнес-приложений Oracle объединяет полнофункциональные и отраслевые комплексы, среди которых Oracle E-Business Suite, Oracle JD Edwards EnterpriseOne, Oracle Retail, Oracle Utilities, Oracle Siebel CRM и др. Широта охвата и богатство функциональных возможностей этих комплексов знаменуют переломный этап в эволюции отрасли программного обеспечения и корпоративных информационных систем управления. Расширенная за счет стратегических приобретений, семейство бизнес-приложений Oracle позволяет повысить эффективность бизнеса компаниям различных отраслей. Ориентация на вертикальные индустрии и аккумулирование лучших отраслевых практик реализовано в Oracle Siebel CRM - лидирующем в мире решении для управления отношениями с клиентами. Комплекс Oracle Retail обеспечивает уникальную, интегрированную платформу для сферы розничной торговли, а Oracle Utilities - передовые решения широкого круга ИТ-задач на частных и государственных предприятиях сферы ЖКХ. Отраслевая направленность Oracle Applications покрывает также дискретное и процессное производство, нефть и газ, химию и нефтехимию, телекоммуникации, государственный сектор и образование и сферу финансовых услуг.

Рис. 15. «Семейство Oracle Applications ».

Пакет Oracle Applications можно условно разделить на несколько функциональных групп:

    Управление финансами и бухгалтерией.

    Управление производством, снабжением и сбытом.

  1. Администрирование и конфигурирование системы.

В группу Управления финансами и бухгалтерией входят 5 модулей: Главная книга бухгалтера, Книга кредиторов, Книга дебиторов, Закупки, Основные средства.

Все финансовые модули Oracle Applications поддерживают такие возможности, как многовалютность и параллельное ведение учета в соответствии с различными стандартами. Этот «дуализм» финансовых модулей Oracle как нельзя лучше отвечает специфике национальной финансовой системы, в которой фактически имеют хождение две валюты, а официальная система отчетности, обязательная для любого предприятия, не может удовлетворить его руководство. Финановые службы и бухгалтерия современных предприятий все больше уходят от практики получения данных с месячной и квартальной периодичностью. Для современного производства характерны сокращенные циклы обращения ресурсов. Вследствие этого улучшается система предъявления счетов и получения денег, а значит и более эффективно используются денежные средства. Сокращение финансового и отчетного циклов рассматривается многими высокотехнологичными компаниями как ключ к успеху предприятия. Большое внимание в Oracle Financials уделяется функциональности управления бюджетом предприятия. Модули Oracle Financials позволяют значительно повысить эффективность работы предприятий.

К группе Управления производством, снабжением и сбытом относятся следующие модули: Модуль технологических карт, Модуль производственных мощностей, Управление затратами, Модуль опытного производства, Склад, Генеральные планы, Планирование материальных затрат, Заказы, Незавершенное производство.

Эти модули позволяют решить любые задачи не только по производственному планированию, контролю и управлению, но и по распределению готовой продукции и снабжению предприятия сырьем, топливом и комплектующими. Они также обеспечивают материально-техническую поддержку существующих производств и технологий (в том числе автоматизируют учетно-складские операции, обработку заказ-нарядов, накладных и прочей документации), позволяют быстро разрабатывать и внедрять новые виды продукции и новые технологические маршруты и операции. Открытость прикладных программ Oracle и их возможности настройки внешних интерфейсов позволяют осуществить связь и обмен данными с различными специфическими системами, разработанными ранее на предприятии.

Рис . 1 6 . « Список модулей Oracle Applications».

К группе Кадры относятся следующие модули: Отдел кадров, Зарплата.

Комплект модулей «Кадры» позволяет хранить исчерпывающую информацию обо всех сотрудниках. Давая точную статистическую информацию о сотрудниках организации, приложения этой категории позволяют отслеживать и динамические процессы - например, продвижение сотрудника по службе, планируемое повышение его квалификации, заработной платы и т.д. Так как данные базы Oracle могут содержать данные практически любого типа (в том числе аудио, видео и т.д.), то этот модуль способен хранить как фотографические изображения сотрудников, так и образцы подписей.

Рис. 17. «Интерфейс программы Oracle Applications ».

Модули Администрирования и конфигурирования системы : Системный администратор, Управление объектной библиотекой, модуль Предупреждения.

Уникальным инструментом является модуль Предупреждения - Oracle Alert, позволяющий осуществлять так называемое проактивное управление, то есть оперативно отслеживать исключительные, критичные для данного предприятия ситуации и оперативно на них реагировать. При этом пользователь задает критерии, на основе которых Oracle Alert автоматически осуществляет регулярные проверки баз данных на наличие исключительных ситуаций и генерирует ответные действия системы (создание отчета, рассылка сообщений по электронной почте, запуск заданной внешней программы и т.д.).

Всем модулям присущи черты, обеспечивающие высокую эффективность комплексной системы:

    функциональная полнота и завершенность решения;

    быстрое внедрение и высокий уровень окупаемости инвестиций;

    ориентация приложений на динамическую, изменяющуюся деловую структуру - на основе принципов гибкости, модульности и масштабируемости;

    возможность оперативной обработки и архивирования больших массивов данных;

    исключительная гибкость приложений Oracle, позволяющая конфигурировать систему в соответствии со структурой реального предприятия без изменения существующего программного кода;

    переконфигурирование системы осуществляется конечным пользователем в процессе работы, без остановки работающей системы;

    возможность создания отчетов настраиваемого формата и включения их в стандартную систему отчетности;

    наличие нескольких уровней защиты информации от несанкционированного доступа и многоуровневое разграничение привилегий доступа;

    система «ролей» позволяет пользователю легко переключаться между модулями и выполняемыми задачами;

    возможность формирования запросов и сортировки данных в соответствие с несколькими критериями одновременно;

    возможность масштабирования системы - добавления новых серверов баз данных и терминалов пользователей без изменения существующих процедур работы;

    модульный подход при внедрении Oracle Applications, позволяющий заказчику начать с минимального набора модулей (например, Главная книга + Дебиторы + Кредиторы) и постепенно расширять его;

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

    наличие налаженных систем интерактивного обмена данными в режиме реального времени с другими существующими информационными системами;

    возможность загрузки данных из внешних систем; например, загрузка в Главную книгу данных о бухгалтерских проводках может осуществляться прямо из электронных таблиц Excel;

    открытость системы для модификации и дополнения с помощью инструментария разработчика Oracle Forms;

    реализация концепции «клиент-сервер» позволяет оптимально распределить нагрузку по обработке данных приложения между сервером и клиентским компьютером;

    графический интерфейс погружает пользователя в привычную для него Windows-подобную среду, позволяя быстрее освоить новый продукт;

    использование диспетчеров параллельных процессов позволяет запускать ресурсоемкие процессы (например, большой отчет) в фоновом режиме, освобождая терминал пользователя для дальнейшей работы;

    специальная методика внедрения приложений AIM - Application Implementation Methology - позволяет существенно упростить и ускорить процесс внедрения Oracle Applications.

Разработка Oracle Applications существенно расширила программную платформу корпорации Oracle. Сервер базы данных, инструментарий разработчика, приложения и программы поддержки принятия решений - полный и интегрированный пакет программ, позволяющий решить практически любые задачи крупных предприятий. Консалтинг и обучение, предлагаемые компанией Oracle и ее партнерами, облегчают внедрение пакета. Сегодня с уверенностью можно сказать, что Oracle поставляет готовые решения для всех сфер бизнеса.

Рис. 18. « Oracle Applications ».

Данная статья предназначается всем тем, кто плотно работает с Oracle Application Express (в просторечии - APEX, а то и просто апекс). А так же тем, кто что-то слышал и подумывает начать использовать его в работе. После прочтения статьи, я надеюсь, у вас прибавится желания сделать это.

Вводная информация

Предполагается, что читатель знаком (или познакомится вскоре после прочтения) хотя бы в общих чертах со следующими вещами:
  • Что такое SQL и PL/SQL, и чем они друг от друга отличаются
  • Какие объекты бывают в СУБД Oracle и зачем они нужны (таблицы, пакеты, вью)
  • Основные компоненты приложения апекса: страница, регион, итем, процесс и т. д., как их создавать и удалять
  • Основы администрирования апекса: как создать в оракле таблицу, пакет, вью и как потом сделать их доступными для своего приложения
  • Как использовать значение итема в качестве параметра SQL-запроса
Ничего сверхсложного в этих пунктах нет, всеми этими вещами на базовом уровне можно более-менее овладеть за месяц неспешной работы. Пример предназначен для пятой версии апекса, которая вышла чуть меньше года назад.

Что такое плагин региона в апексе и что для него нужно

В апексе можно создавать плагины регионов, итемов, процессов, динамических действий (Dynamic action) и схем аутентификации и авторизации. Что такое плагин региона, думаю, интуитивно понятно. Вы создаете новый тип региона, который умеет делать что-то такое, что не умеют делать стандартные апексовые регионы. Часто самое сложное тут - придумать какую-нибудь действительно стоящую идею для реализации. Я в качестве примера для статьи придумал плагин для создания рубрикации, источником вдохновения послужили алфавитные и предметные указатели в книгах и эта страница на сайте htmlbook.ru. Итак, приступим.

Исходные данные

Для начала, создадим таблицы с данными. У нас будет рубрикатор стран мира, выбранных моей левой пяткой прямо перед написанием статьи. Допустим, мы храним список стран и континентов, а также ссылки на статьи в Википедии об этих странах. Нам надо аккуратно и красиво выводить этот список на экран, и чтобы они были разбиты по рубрикам (рубриками будут соответствующие континенты). Плагин будет также иметь одно кастомное свойство - количество колонок, в которых будут выводиться данные.

Код для создания таблиц и заполнения данными

create table continent (continent_id number primary key, continent_name varchar2(100)); create table country (country_id number primary key, country_name varchar2(100), continent_id number references continent (continent_id), url varchar2(4000)); insert into continent(continent_id, continent_name) values (1, "Europe"); insert into continent(continent_id, continent_name) values (2, "Asia"); insert into continent(continent_id, continent_name) values (3, "North America"); insert into continent(continent_id, continent_name) values (4, "South America"); insert into continent(continent_id, continent_name) values (5, "Australia"); insert into country (country_id, country_name, continent_id, url) values (1, "France", 1, "https://ru.wikipedia.org/wiki/%D0%A4%D1%80%D0%B0%D0%BD%D1%86%D0%B8%D1%8F"); insert into country (country_id, country_name, continent_id, url) values (2, "Greece", 1, "https://ru.wikipedia.org/wiki/%D0%93%D1%80%D0%B5%D1%86%D0%B8%D1%8F"); insert into country (country_id, country_name, continent_id, url) values (3, "Norway", 1, "https://ru.wikipedia.org/wiki/%D0%9D%D0%BE%D1%80%D0%B2%D0%B5%D0%B3%D0%B8%D1%8F"); insert into country (country_id, country_name, continent_id, url) values (4, "Spain", 1, "https://ru.wikipedia.org/wiki/%D0%98%D1%81%D0%BF%D0%B0%D0%BD%D0%B8%D1%8F"); insert into country (country_id, country_name, continent_id, url) values (5, "China", 2, "https://ru.wikipedia.org/wiki/%D0%9A%D0%B8%D1%82%D0%B0%D0%B9%D1%81%D0%BA%D0%B0%D1%8F_%D0%9D%D0%B0%D1%80%D0%BE%D0%B4%D0%BD%D0%B0%D1%8F_%D0%A0%D0%B5%D1%81%D0%BF%D1%83%D0%B1%D0%BB%D0%B8%D0%BA%D0%B0"); insert into country (country_id, country_name, continent_id, url) values (6, "India", 2, "https://ru.wikipedia.org/wiki/%D0%98%D0%BD%D0%B4%D0%B8%D1%8F"); insert into country (country_id, country_name, continent_id, url) values (7, "Japan", 2, "https://ru.wikipedia.org/wiki/%D0%AF%D0%BF%D0%BE%D0%BD%D0%B8%D1%8F"); insert into country (country_id, country_name, continent_id, url) values (8, "USA", 3, "https://ru.wikipedia.org/wiki/%D0%A1%D0%BE%D0%B5%D0%B4%D0%B8%D0%BD%D1%91%D0%BD%D0%BD%D1%8B%D0%B5_%D0%A8%D1%82%D0%B0%D1%82%D1%8B_%D0%90%D0%BC%D0%B5%D1%80%D0%B8%D0%BA%D0%B8"); insert into country (country_id, country_name, continent_id, url) values (9, "Canada", 3, "https://ru.wikipedia.org/wiki/%D0%9A%D0%B0%D0%BD%D0%B0%D0%B4%D0%B0"); insert into country (country_id, country_name, continent_id, url) values (10, "Mexico", 3, "https://ru.wikipedia.org/wiki/%D0%9C%D0%B5%D0%BA%D1%81%D0%B8%D0%BA%D0%B0"); insert into country (country_id, country_name, continent_id, url) values (11, "Brasil", 4, "https://ru.wikipedia.org/wiki/%D0%91%D1%80%D0%B0%D0%B7%D0%B8%D0%BB%D0%B8%D1%8F"); insert into country (country_id, country_name, continent_id, url) values (12, "Uruguay", 4, "https://ru.wikipedia.org/wiki/%D0%A3%D1%80%D1%83%D0%B3%D0%B2%D0%B0%D0%B9"); insert into country (country_id, country_name, continent_id, url) values (13, "Chile", 4, "https://ru.wikipedia.org/wiki/%D0%A7%D0%B8%D0%BB%D0%B8"); insert into country (country_id, country_name, continent_id, url) values (14, "Australia", 5, "https://ru.wikipedia.org/wiki/%D0%90%D0%B2%D1%81%D1%82%D1%80%D0%B0%D0%BB%D0%B8%D1%8F"); create view by_continent as select continent_name rubric, country_name value, url link from continent ct, country cr where ct.continent_id = cr.continent_id order by rubric, upper(value); create view by_alphabet as select upper(substr(country_name, 1, 1)) rubric, country_name value, url link from country cr order by rubric, upper(value);

Плагин

Плагин создается в приложении апекса. Открываем IDE, выбираем необходимое приложение, идем в раздел «Shared Components», там находим раздел «Other Components», а в нем - «Plug-ins». Заходим на страницу плагинов, нажимаем «Create», запускается мастер создания плагинов. Далее по шагам (их всего два): указываем способ создания - «From Scratch», затем указываем свойства. Необходимо указать название(«Name»), внутреннее название («Internal name»), тип плагина («Type» - «Region») и тип поддерживаемых приложений («Supported for») - Desktop и Mobile (поставить галочки напротив необходимых пунктов). Далее нажимаем «Create Plug-in». Плагин создан, теперь его надо немного настроить. Заходим в свойства плагина (для этого надо кликнуть по его названию в списке плагинов), в разделе «Standard Attributes» ставим галочки напротив «Region Source is SQL Statement» и «Region Source Required». Идем в раздел «Custom Attributes», нажимаем на «Add Attribute» (чтобы добавить свойство для задания количества колонок при выводе), заполняем следующие поля:
  • «Scope» - «Component»
  • «Attribute» - «1» (порядковый номер кастомных атрибутов, ниже будет немного о том, что с этим номером потом делать)
  • «Display Sequence» - оставляем умолчательное значение «10»
  • «Label» - «Columns count» (это название будет отображаться в настройках, когда мы будем создавать регион на основе этого плагина)
  • «Type» - «Integer»
  • «Supported for» - «Desktop»
Ложка дёгтя в кастомных атрибутах. Есть там один крайне неприятный косяк: если вы захотите сделать кастомный атрибут типа «Select List», делайте его аккуратно. В интерфейсе отсутствуют кнопки для удаления отдельных записей, а также невозможно отредактировать return value. Вот скриншот этого непотребства:

Как видите, кнопки «Удалить» там нет. И поле «return value» нередактируемое. То есть если вы ошибетесь где-нибудь и не заметите сразу, или решите намного видоизменить список, то вам придется удалить атрибут и пересоздавать его с нуля. Да-да, и все ваши 20 записей для выпадающего списка тоже.

Теперь о самом главном свойстве плагина: на закладке «Callbacks» надо указать «Render Function Name» - название PL/SQL функции, которая будет генерировать HTML-код региона для показа браузером. Согласно документации, функция должна иметь следующую сигнатуру:

Function (p_region in apex_plugin.t_region, p_plugin in apex_plugin.t_plugin, p_is_printer_friendly in boolean) return apex_plugin.t_region_render_result
Кстати, для того, чтобы получить описание этой функции, даже не надо лезть в документацию, достаточно нажать на вопросик напротив поля «Render Function Name» и скопировать текст из встроенной подсказки. И раз уж заговорили о документации - для разработки плагинов вам очень пригодится документация на пакеты APEX_PLUGIN и APEX_PLUGIN_UTIL .
Самое загадочное в этой функции то, что мне не удалось пока найти описание возвращаемого функцией результата и где он используется. Вы можете просто возвращать NULL, и все будет работать.

Render Function

Плагин почти готов, теперь нужно сделать функцию рендеринга. Создадим функцию:

Function render (p_region in apex_plugin.t_region, p_plugin in apex_plugin.t_plugin, p_is_printer_friendly in boolean) return apex_plugin.t_region_render_result is begin return null; end;
Код, генерирующий HTML, как вы уже наверно догадались, надо поместить между строками «begin» и «return null;».
Чтобы сгенерировать регион на основе результата SQL запроса пользователя, надо этот запрос получить и выполнить. Получить запрос просто: читаем описание типа apex_plugin.t_region и обнаруживаем, что текст запроса хранится в поле p_region.source. Осталось только запустить этот запрос, но не спешите хвататься за EXECUTE IMMEDIATE, потому что тут он вам не поможет! Дело в том, что пользователь в запросе может указать параметры, которые движком апекса ассоциируются со страничными полями. Движок апекса умеет их определять и заполнять данными. Сделать такое самому практически невозможно, придется писать свой парсер запросов. Как же тогда выполнить запрос? Можно запретить пользователю использовать запросы с параметрами, а можно покопаться в недрах документации и найти семейство функций APEX_PLUGIN_UTIL.GET_DATA (две функции GET_DATA и две - GET_DATA2, за подробностями - см. документацию пакета). Эти функции принимают на вход SQL-код запроса, парсят его, определяют параметры, находят соответствующие итемы на странице и т. д. Результат возвращается в виде коллекции, ее описание есть на той же странице документации. В той же переменной p_region (которая является записью - RECORD) содержатся атрибуты с названиями attribute_01… attribute_25. Эти числа соответствуют номерам кастомных атрибутов, указанных в поле «Attribute» в процессе создания.

И последнее. HTML-код вставляется на страницу с помощью процедуры htp.p (не путать с http!). То есть код

Htp.p("Всем привет!");
Выведет на страницу надпись «Всем привет!» жирным шрифтом. Полный код функции для нашего плагина будет ниже.

Я тоже хочу попробовать!

Плагин вместе со всем необходимым можно взять . В комплекте идут следующие файлы:
  • region_type_plugin_rubrikator.sql - файл экспорта плагина
  • render_plugin_rubrikator.pls - заголовок пакета с функцией рендеринга
  • render_plugin_rubrikator body.pls - тело пакета с функцией рендеринга
Установка плагина (выполнять не нужно, если вы выполнили все шаги по созданию плагина из данной статьи): заходим в IDE, открываем нужное приложение, импортируем файл с плагином (region_type_plugin_rubrikator.sql). Указываем File Type - Plug-in, нажимаем Next, Next, Install Plug-in.

Установка пакета: компилируем пакет из файлов render_plugin_rubrikator.pls и render_plugin_rubrikator body.pls.

Пакет содержит функцию рендеринга (render) и две процедуры (prepare_demo и drop_demo), которые, соответственно, создают и удаляют таблицы и вью для демонстрации (код, выполняемый процедурой prepare_demo, приведен в начале статьи; если вы уже выполнили его, вызывать процедуру prepare_demo не нужно). Выполните процедуру prepare_demo после установки:

Begin render_plugin_rubrikator.prepare_demo; end; /
Теперь создайте новую страницу, на ней создайте два региона. Тип региона укажите - Plug-ins, в списке плагинов выберите «Rubrikator». В качестве источника данных укажите:

Для первого региона:

Select * from by_continent
Для второго:

Select * from by_alphabet
Здесь by_continent и by_alphabet - два вью, созданных процедурой prepare_demo. В текущей версии плагина требования к запросу-источнику такие: первый столбец должен содержать заголовки рубрик, второй - пункты внутри рубрик, третий - ссылки. Если ссылка равна NULL, запись будет показана на странице без тега <а>.

Значение поля Columns count в плагине выберите на свой вкус. В моей демо-версии будет 2 для первого и 3 для второго.
Результат первого запроса, для примера:

А если запустить страницу, то наш плагин преобразует это к такому виду:

Первый регион:

Ну вот и я собрался писать блог, посвященный Oracle APEX. Информация рассчитана в основном на новичков, только начинающих осваивать APEX.

В первом посте - общая информация. Что такое APEX, с чем его едят, а так же где и как.

Что это?

APEX - это IDE для веб-разработки. Разработчик - Oracle. Полное название - Application Express. В настоящий момент доступна версия 4.1, IDE бесплатна и входит в дистрибутив Oracle Database 11g. Когда-то давно (до второй версии включительно) носила название "HTML DB", с версии 2.2 получила свое теперешнее название.
Ближайшим широко известным аналогом APEX является MS Access. APEX точно также позволяет сделать простенький интерфейс для хранения данных в базе, и точно также почти не требует познаний в программировании, если нужно сделать что-то совсем простое. Есть графический построитель запросов - возможно, даже чуть-чуть более удобный, чем в Access. Для тех, кто уже давно не новичок в веб-разработке или в разработке баз данных, есть возможность расширить функциональность приложения с помощью PL/SQL или JavaScript и добавить интерактивности с помощью AJAX.
Есть стандартные элементы управления для ввода данных: поля для ввода, выпадающие списки, календари и т. п.
Есть огромное количество стандартных форм - отчетные формы, формы для редактирования одной записи из таблицы, формы для редактирования нескольких записей одновременно, master-detail формы, пустые формы, содержимое которых можно генерировать с помощью PL/SQL кода, средства для рисования графиков и диаграмм и многое многое другое.


Как это попробовать?

Самый простой способ: зайти на apex.oracle.com , зарегистрироваться, заполнить форму, в которой указать имя, email и зачем вам нужен доступ к APEX (говорят, можно писать практически что угодно - в пределах разумного). Через несколько часов вам на email придет ответ, в котором будет указан ваш логин, временный пароль и workspace. Объем выделяемого места небольшой - 5 МБ, но на первое время и для ознакомления хватит. Если вы не будете проявлять никакой активности, то через 2 месяца workspace будет удален, а за неделю до удаления вы получите уведомление.

Способ чуть сложнее - можно установить APEX у себя. Скачайте с сайта Oracle VirtualBox , зарегистрируйтесь и скачайте готовый образ системы для виртуальной машины. Качать придется 4 ГБ, но зато вы получите уже готовую к использованию систему, состоящую из Oracle Linux, Oracle Database 11g Release 2 Enterprise Edition, Oracle APEX (правда, только версии 4.0) и кучи средств разработки.
По умолчанию в этой системе заведен один пользователь, имя и пароль - "oracle".
Для начала нужно будет только запустить консоль, зайти в папку с APEX (/home/oracle/apex), запустить sqlplus:
/sqlplus / as sysdba
и выполнить скрипт для сброса пароля администратора APEX:
@apxchpwd.sql;
Все. APEX установлен и готов к бою.
Лицензионное соглашение разрешает использовать эту систему только для ознакомления и разработки, для промышленной эксплуатации - либо покупайте лицензии, либо переходите на экспресс-версию.

Способ еще чуть сложнее - установить Oracle самостоятельно. Гугл вам в помощь - я слишком ленив для этого и ни разу сам не пробовал ставить (да и незачем, в общем-то, пробовать).


Где про это почитать?

Книги. На русском нет - увы. Да и на английском всего четыре штуки:
1. "Beginning Oracle Application Express", автор - Rick Greenwald, ISBN: 978-0-470-38837-2.
2. "Pro Oracle Application Express", авторы - John Edward Scott и Scott Spendolini, ISBN-10 (pbk): 1-59059-827-X, ISBN-13 (pbk): 978-1-59059-827-6, ISBN-13 (electronic): 978-1-4302-0205-9.
3. "Oracle APEX 4.0 Cookbook", авторы - Marcel van der Plas и Michel van Zoest, ISBN: 978-1-849681-34-6.
4. "Expert Oracle Application Express", авторы - их много, всех перечислять не буду. Подробнее о книге - .

Форумы.
На английском: форум на сайте Oracle .
На русском: на sql.ru есть подфорум по Oracle APEX . Другие мне не известны.

Блоги.
Oracle заботится о развитии сообщества специалистов: вот есть список блогов, посвященных Oracle APEX (меня там пока нет;)). В табличке на данный момент перечислено 73 блога, а также указан язык, на котором ведется блог (есть один русскоязычный). Ссылка на этот список есть в самом апексе - прямо на странице логина.
Из неуказанных там есть этот блог и еще два сайта: "Русскоязычное сообщество Oracle APEX" и applicationexpress.ru . На последнем есть 17 видеоуроков. Информации в целом немного, но посетить стоит обязательно.


Хостинги.

Да, они есть! Цены в среднем по больнице - от 50 долларов за минимальный аккаунт (у русскоязычного хостера примерный рублевый эквивалент этой суммы - 1500 рублей). Есть один хостинг, у которого цены начинаются с 10 долларов (им-то я и пользуюсь;)). Список хостингов можно спросить у гугла, а можно поискать и на сайте Oracle . Ссылки на прочие интересные вещи есть .