Oracle applications описание. Введение в Oracle Application Express

Oracle applications описание. Введение в Oracle Application Express

04.04.2019
  • В данной статье мы рассмотрим основные аспекты разработки приложения в 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 Apex довольно удобная и простая, что простыми действиями позволяет создавать интересные приложения. Следите за новостями на – будет еще много полезных статей.

Корпорация 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 ».

5 - представления

Представления - это хранимые в БД запросы на выборку данных. Для поиска, вывода данных из нескольких таблиц ничего лучше представлений не придумано.

А вот пробуем для мобильных устройств qr-код для ссылки на видео. На смартфоне необходимо скачать и установить приложение для считывания QR кода. Запустите его и отсканируйте QR код с помощью встроенной камеры. Программа декодирует этот код и выведет его содержимое на дисплей смартфона.

4 - вводим данные в таблицы

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

Как эти данные внести в таблицу Oracle?

Рассмотрим 1 способ, самый легкий. Если структура вашей таблицы в БД Oracle совпадает со структурой таблицы в БД Access или Excel, то можно просто импортировать таблицу из одной БД в другую. Выполните команды

  • Далее требуется выбрать куда (Load to) закачивать данные: если таблица уже существует в БД Oracle, то выбираем Existing Table. Если создаем новую таблицу - New Table.
  • Потом выбираем, откуда загружать данные (Load from) : из файла (Upload file) или копируем через буфер обмена Windows (Copy and paste).
Предположим, мы решили копипастить данные в новую таблицу.Выберем обе нижние радиокнопки и нажмем кнопку NEXT.
  • На следующем шаге импорта мастер предлагает вставить данные из буфера в окошко, расположенное в центре страницы. Сначала откроем таблицу в Access, выделим все строки и нажмем клавиши Ctrl+C (копировать). Затем щелкнем мышью в окошке на страницу APEX и нажмем CTRL+V (вставить). В окне появятся данные из вашей таблицы. Проверьте самую первую строчку: там должны быть названия столбцов.
  • Если имена полей совпадают в обеих базах, то жмите кнопку NEXT. Но если вы предполагаете переименовать поля, то сначала исправьте их названия в окошке со вставленными данными, чтобы они совпадали с именами полей в БД Oracle Apex.
На следующем шаге мастер выводит всю структуру таблицы и данные. Здесь нужно ввести имя таблицы, проверить и исправить тип, длину и имена полей. Если какие-то столбцы не нужны, можно выбрать No в строке Upload.

В нашем примере изменим русские имена полей на латиницу, уменьшим до 15 символов длину полей с телефоном. Затем переходим к следующему шагу.
Здесь мы выбираем первичный ключ (можно также создать новый) так же, как в предыдущем уроке. Наконец, жмем кнопку Load Data.


Появляется список всех загруженных таблиц, где можно просмотреть результаты импорта, например, возможные ошибки. Если загрузка данных прошла успешно, то щелкнув по имени таблицы, мы переходим на страницу Object Brouser с открытой структурой таблицы. Выберите Data в списке команд над таблицей - и вы увидите свои данные.


Теперь можно редактировать данные, щелкнув по значку в столбце Edit в строке, которую нужно изменить. Apex не позволяет изменять данные прямо в табличном формате, как вы привыкли в Access. Вместо этого он открывает анкетную форму для редактируемой записи.

Посмотрите видео (по-английски) о том, к ак импортировать данные с помощью SQL Workshop (https://www.youtube.com/watch?v=pfG3r6A1Wx8).

Задание 1. Выберите одну из таблиц в БД Access и импортируйте данные из неё в БД APEX.

Итак, мы плавно перешли ко второму способу ввода данных в таблицы: сразу после входа в APEX выполните
SQL Workshop Object Browser.

Выберите нужную таблицу в левом столбце, выполните команду Data. Затем введите несколько строк, как рассказано чуть выше.

Задание 2. Введите несколько строк в небольшую таблицу путем прямого ввода данных в APEX.

Наконец, третий способ ввода данных - это SQL-команда INSERT. Рекомендую использовать SQL-скрипт, в котором написать все команды для ввода исходных тестовых данных в вашу БД. Для этого выполните команду
SQL Workshop SQL Scripts / Create.

На открывшейся странице запишите несколько команд, как на рисунке:


Вы можете добавлять данные сразу в несколько таблиц. Начните с родительских, а в конце добавьте команды заполнения дочерних таблиц. Когда вы закончите, не забудьте придумать и ввести имя скрипта, затем нажмите кнопку RUN.
Вы увидите список выполненных скриптов, где выберите последний выполненный скрипт и нажмите на значок в самой правой колонке (View Results). Apex выводит результаты выполнения каждой команды скрипта. Если имеются ошибки, то выводится сообщение и код ошибки. Детально увидеть каждую команду и ее результаты можно, выбрав режим Detail, как на рисунке:

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

Задание 3. Составьте SQL-скрипты для ввода данных в каждую таблицу в БД APEX. На каждую таблицу сделайте отдельный скрипт. Проведите отладку скриптов, Сохраните текст скриптов во внешнем текстовом файле.

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

3 - анализируем структуру БД и создаем таблицы

Рассмотрим, как настроить структуру базы данных на примере схемы, показанной на рисунке


Схема БД Access "Прием заказов и их анализ"

Голубым цветом выделена часть БД, которая нужна приемщику заказов, желтым цветом - часть схемы для пользователя - аналитика, а серым - общие для обоих таблицы. Примерно так вы можете разделить между собой работу по созданию таблиц в Oracle APEX. Значит, первое задание:

разделить таблицы БД между разработчиками проектов, в соответствии с темой проекта. Общие таблицы поделите на двоих, либо работайте над ними вместе.


Например:

Тип поля Access

Тип поля Oracle

Числовой, все форматы, в том числе:

Счетчик, длинное целое,

Действительное

Денежный

NUMBER — числовые данные

Текстовое

VARCHAR 2 — текстовые строки переменной длины до 4000 байт.

Поле MEMO

LONG — текстовые строки длиной до 2 ГБ

CLOB – тексты длиной до 4 Гб

Дата / время

DATE — даты

TIME - время

Чтобы не запутаться в таблицах своей базы данных, мы можем а) создать несколько схем БД в одной рабочей области или б) имена объектов одного проекта начинать с одного и того же префикса. Воспользуемся вариантом Б: три первые буквы вашего логина будем писать перед именем каждой таблицы, например: spo_zakaz, res_zakaz и т.д. То же самое касается представлений, приложений и прочих объектов в вашей БД.

Пользуясь приведенной таблицей и соглашением об именах таблиц, выполните второе задание:

Напечатайте схему своей БД, напишите на схеме типы полей Oracle, названия полей и таблиц (без пробелов и все английскими буквами)

Разберемся с ключами . Первичный ключ таблицы в БД Oracle легче всего делать из объекта Sequence (секвенция), это что-то вроде отдельно живущего счетчика. Можно создать по счетчику для каждой таблицы, тогда выбирайте populated from a new sequence . Если вам нужен составной ключ или ключ без автоматического наращивания значения, то выбирайте последний вариант Not poulated.

Внешние ключи (foreign key) и связи между таблицами описываем также сразу во время создания таблицы. Внешний ключ должен ссылаться на первичный ключ в другой таблице. Поэтому создание БД н ачните с родительских таблиц: тех, от которых отходит связь с мощностью 1, так как при создании дочерних таблиц вам придется указывать ссылку на поле родительской таблице. Например, когда вы начнете делать таблицу ЗАКАЗ, таблицы КЛИЕНТЫ и ТИПЫ_ДОКУМЕНТОВ уже должны быть созданы.

При описании таблиц мы сразу же вводим и ограничения целостности: обязательные поля (NOT NULL), уникальные поля (Unique), диапазон допустимых значений поля (длина и точность, а также условие проверки Check), каскадное действие при удалении.

Задание третье:

подчеркните на схеме БД простые первичные ключи, подчеркните волнистой линией внешние ключи. Если есть составной первичный ключ - добавьте дополнительное поле ИД_данной сущности и сделайте его ключом. Не забудьте заменить внешние ключи в дочерних таблицах на это новое поле.

Напоследок советую посмотреть видео урок , где рассказано, как создать простейшее приложение. Нам из этого урока достаточно понаблюдать за технологией создания таблиц.
Пользуемся диалоговым режимом APEX, который похож на "Конструктор таблиц" Access: выполните команду SQL WorkShop / Create Data Base Object / Table - и вперед! Теперь вы полностью готовы к созданию таблиц.


Задание четвертое:

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


17.02.2013

2 - логинимся

В каждом посте мы продвинемся на шаг вперед. И в конце Вы увидите, что мы сделали это! Если вдруг у вас что-то не выходит - пишите вопросы и пробуйте ответить на вопросы других. Мы можем также делиться друг с другом сообщениями прямо в Oracle Apex!

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

Существует несколько версий системы:
1) во-первых, вы можете бесплатно скачать дистрибутив, установить СУБД Oracle и приложение APEX на своем компьютере и обходиться без интернета, однако тут вам потребуется детальнее разобраться в установке и сопровождении СУБД Oracle 11g, так как она является основой среды разработки. Все сбои, резервирование и восстановление системы вы будете делать сами. После окончания проектирования, для сдачи проекта вам нужно продемонстрировать его работу преподавателю. При этом либо вы не выключаете свой домашний компьютер, чтобы получить к нему доступ из университета, либо публикуете свой проект на каком-либо стороннем хостинге, либо приносите проект вместе с ноутбуком.
Этот вариант хорош, так как вы получаете дополнительный опыт, но есть опасность не успеть его выполнить из-за технических трудностей. Рекомендую этот вариант для уверенных в себе и желающих в дальнейшем получить высокооплачиваемую работу администратора БД Oracle, а также для тех, у кого очень плохой интернет.
2) во-вторых, вы используете облачную версию APEX и тогда вам НЕ нужна установка и обслуживание ничего, кроме браузера. Правда, требуется высокоскоростной доступ в интернет, так как и база данных, и средства ее разработки находятся в "облаке".
Сейчас существует два облачных сервера APEX:

  • бесплатная демонстрационная версия 5.0: https://apex.oracle.com , р екомендую этот вариант для всех. В этом варианте ограничивается объем базы данных и не разрешено коммерческое использование.
  • коммерческий облачный сервер базы данных (вместе с APEX ) - https ://cloud .oracle .com /database , минимальная стоимость сервиса – 600 долларов в месяц. Это для тех, кто думает делать свой бизнес вместе с Oracle.
  • Загрузка автономной версии: http://www.oracle.com/technetwork/developer-tools/apex/downloads/index.html .

Рассмотрим, как начать работать с облаком APEX 5.0.
Сначала зайдите на главную страницу APEX:


Рисунок 1
Нажмите на большую кнопку "Request a free workspace " (см. рисунок) и зарегистрируйтесь: вам нужно выбрать цель использования сервиса (Application Development), ввести имя, фамилию, работающий email и наименование вашей рабочей области, затем ввести обозначение схемы БД (schema name), попросить 10 или 25 Мб места, а на следующем экране ответить на анкету (что вам нужно от APEX, как давно вы его используете, готова ли ваша организация ссылаться на APEX и готовы ли вы связываться с Oracle по поводу применения APEX). Далее читаете соглашение и подтверждаете его.
На указанную вами почту придет подтверждение регистрации, подтвердите его - и можете работать. Сделайте на рабочем столе компьютера ярлык для быстрого входа в APEX , скопировав URL из адресной строки браузера.
На странице авторизации APEX вы вводите c учетом регистра идентификатор рабочей области, логин и пароль (советую сразу записать их в блокноте, на телефоне, на стене или там, где вы их не потеряете!!!)

Рисунок 2 - меню APEX

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

Пощелкайте по кнопкам и посмотрите, что тут к чему. Например:

  • смените пароль, выбрав в меню Administation / Manage User and Groups/Change My Password;
  • добавьте пользователей вашей базы данных: р азличают 3 группы пользователей: администратор сайта (он может всё, в том числе он должен описать всех остальных), разработчики (они могут изменять проект сайта), гости – открывают готовое веб-приложение.
  • попробуйте создать и поиграть с одним из множества типовых демонстрационных приложений (рисунок 4):

Ну вот и я собрался писать блог, посвященный 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 . Ссылки на прочие интересные вещи есть .

Данная статья предназначается всем тем, кто плотно работает с 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 для второго.
Результат первого запроса, для примера:

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

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



© 2024 beasthackerz.ru - Браузеры. Аудио. Жесткий диск. Программы. Локальная сеть. Windows