воскресенье, 3 июня 2007 г.

Развертывание приложений Apex : часть 2 (Import)

Продолжаем рассказ о развертывании приложений Oracle Application Express, начатый в заметке "Развертывание приложений Apex : часть 1 (Export)". После того, как приложение было экспортировано из Apex-репозитария на одном сервере, его необходимо проимпортировать в репозитарий другого сервера...

Импорт выполняется через "Application Builder"->"Import"->"Application", где необходимо указать путь к файлу, в котором находится описание импортируемого приложения, тип информации в файле и кодировку:
start to import apex application
Признаком успешного импорта файла в репозитарий является следующее сообщение:
success apex application import
Последним экраном импорта является описание установок развертывания приложения:
apex application deploy
,где:


  • Current Workspace - Название текущей рабочей области

  • Export File Workspace - Название рабочей области импортируемого файла экспорта

  • Export File Workspace ID - Идентификатор рабочей области импортируемого файла экспорта

  • Export File Application ID - Идентификатор приложения в импортируемом файле экспорта

  • Export File Version - Версия файла экспорта

  • Export File Parse As Schema - В рамках какой Oracle схемы выполнялся экспорт файла

  • Application Origin - Происхождение приложения

  • Parse As Schema - В рамках какой Oracle схемы будет выполнять разбор файла экспорта

  • Build Status - Статус приложения после импорта. "Run Application Only" - с приложением можно только запускать на выполнение. "Run and Build Application" - приложение можно как выполнять, так и изменять

  • Install As Application - Идентификатор для нового приложения. "Auto Assign New Application ID" - автоматическое присвоение нового значения для ID приложения. "Reuse Application ID ... From Export File" - использование того ID приложения, который был у него во время экспорта. "Change Application ID" - изменить ID приложения вручную.

Все загруженные файлы хранятся в отдельном репозитарии, посмотреть который можно в "Application Builder" -> "Export Repository". То есть, даже если после развертывания приложение было удалено по каким - то причинам, его можно по-новой развернуть на сервере без повторного испортирта файл.
Кроме возможности развертывания приложения, в репозитарии есть функция удаления файлов импорта. И если уж сам файл удален из репозитария, то для импорта приложения необходимо будет снова выполнить импорт файла на сервер.

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

This page was exported from a different application or from an application in different workspace.
Page cannot be installed in this application.


то необходимо проверить, что ID рабочей области (Workspace ID), откуда экспортировалось приложение, отличается от ID рабочей области, куда приложение устанавливается. В этом случае, надо просто изменить его в файле экспорта на значение Workspace ID, куда устанавливается приложение. Для этого, необходимо найти в начале файла экспорта следующую строку:
wwv_flow_api.set_security_group_id(p_security_group_id=> _Число_);

И заменить "_число_" на значение "Workspace ID", куда устанавливается приложение. Если вы его по каким-либо причинам его не знаете, то просто экспортируйте что-нибудь из этой рабочей области и в начале файла экспорта, в той же строке, будет нужный идентификатор. То есть, приложения должны переноситься между серверами только в рамках одной и той же рабочей области.

В заключении надо сказать, что Oracle Application Express позволяет экспортировать/импортировать не только приложение, но и отдельные его части: страницы , темы оформления, значения по умолчанию, CSS и т.д. В случае экспорта страницы из приложения, необходимо учитывать так же, что на новом сервере должны совпадать не только ID рабочей области, но ID приложения (документация на OTN).

4 комментария:

Анонимный комментирует...

Честно говоря, бестолковая статья - вся ее информативность в фразе - "экспортировать APEX приложение можно ,нажав пару кнопочек". Статья не раскрывает сути явления "Packaged Application", в ней нет полного описания процесса экспорта/импорта. Для "чайника" она бесполезна, а гуру тем более. Придется писать статью самому....

Timoshinin Evgeny комментирует...

...Статья не раскрывает сути явления "Packaged Application"...
В рамках данной статьи такой цели не преследовалось.

...в ней нет полного описания процесса экспорта/импорта...
А что подразумевается под "полным" описанием? перевод официальной документации? :).

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

Анонимный комментирует...

Огромное спасибо!! очень помогают Ваши советы!!!
Пытаюсь перенести Shared Components из одного приложение в другое, чтоб заново Templates (Type List) не создавать.
И как Вы и писали получаю "These components were exported from a different application or from an application in a different workspace. The components cannot be installed in this application."
ID поменял но результат тотже.
Использую:
Database 11g + Apex 3.1

С Уважением,
Алексей.

petrenkov комментирует...

It is very interesting for me to read this post. Thanx for it. I like such themes and everything connected to this matter. I would like to read a bit more soon.

Best wishes
Alice Tudes