Удаление приложения из EPMA

Задача

Удалить приложение Planning из EPMA.


Решение

Необходимо использовать стандартную функцию удаления приложения.

В EPMA, в Application Library щелкнуть правой кнопкой мыши по приложению, выбрать “Delete”. Дождаться положительного результата.

Что делать, если процесс удаления приложения завершился с ошибкой или был срублен, например, перезагрузкой или ночным бекапом? В этом случае приложение остается в состоянии “Delete pending…” и воспользоваться стандартной функцией удаления нет возможности, так как пункт “Delete” недоступен для выбора. Можно на свой страх и риск воспользоваться решением, описанным ниже:

1.  Запустить sql-скрипт удаления приложения из реляционных таблиц (см. ниже).

2. На сервере, на котором установлен EPMA:

  • остановить сервис “Hyperion EPM Architect – Process Manager”;
  • найти файл:

%HYPERION_HOME%\products\Foundation\BPMA\AppServer\DimensionServer\ServerEngine\bin\BPMA_Server_Config.xml

  • заменить время запуска процесса очистки baseline на текущее время + 10 минут (в 24-часовом формате, HH24:MI:SS):

<AutoBaselineStartTime>03:00:00</AutoBaselineStartTime>

<PurgeBaselineStartTime>03:00:00</PurgeBaselineStartTime>

  • Запустить  сервис “Hyperion EPM Architect – Process Manager”.
  • Мониторить “Event Viewer”, пока появятся следующие 2 сообщения:
    • Source: HyS9BPMA_DimensionServer; Description: [Scheduler] INFO  Выполнение запланированной задачи ‘Purge Non Associated Baselines’»
    • Source: HyS9BPMA_DimensionServer; Description: [Scheduler] INFO  Выполнение задачи Purge Non Associated Baselines завершено. Время следующего выполнения 03.12.2010 03:00:00

3.  Войти в Application Library, проверить результат.

/* В скрипте изменить схемы hyptest и hyptest_hss, а также имя приложения на свои */

 delete from hyptest.ds_property_application_array d
where d.i_application_id in (select a.i_application_id
                             from hyptest.ds_application a
                             where a.c_application_name = 'YourApplicationName');
                              
delete from hyptest.ds_property_application_ref d
where d.i_application_id in (select a.i_application_id
                             from hyptest.ds_application a
                             where a.c_application_name = 'YourApplicationName');

delete from hyptest.ds_property_dimension d
where d.i_application_id in (select a.i_application_id
                             from hyptest.ds_application a
                             where a.c_application_name = 'YourApplicationName');

delete from hyptest.ds_property_dimension_array d
where d.i_application_id in (select a.i_application_id
                             from hyptest.ds_application a
                             where a.c_application_name = 'YourApplicationName');

delete from hyptest.ds_property_dimension_memo d
where d.i_application_id in (select a.i_application_id
                             from hyptest.ds_application a
                             where a.c_application_name = 'YourApplicationName');

delete from hyptest.ds_property_dimension_ref d
where d.i_application_id in (select a.i_application_id
                             from hyptest.ds_application a
                             where a.c_application_name = 'YourApplicationName');

delete from hyptest.ds_property_member d
where d.i_application_id in (select a.i_application_id
                             from hyptest.ds_application a
                             where a.c_application_name = 'YourApplicationName');

delete from hyptest.ds_property_member_array d
where d.i_application_id in (select a.i_application_id
                             from hyptest.ds_application a
                             where a.c_application_name = 'YourApplicationName');

delete from hyptest.ds_property_member_dimension d
where d.i_application_id in (select a.i_application_id
                             from hyptest.ds_application a
                             where a.c_application_name = 'YourApplicationName');

delete from hyptest.ds_property_member_memo d
where d.i_application_id in (select a.i_application_id
                             from hyptest.ds_application a
                             where a.c_application_name = 'YourApplicationName');

delete from hyptest.ds_property_relationship d
where d.i_application_id in (select a.i_application_id
                             from hyptest.ds_application a
                             where a.c_application_name = 'YourApplicationName');

delete from hyptest.ds_property_relationship d
where d.i_application_id in (select a.i_application_id
                             from hyptest.ds_application a
                             where a.c_application_name = 'YourApplicationName');

delete from hyptest.ds_property_application d
where d.i_application_id in (select a.i_application_id
                             from hyptest.ds_application a
                             where a.c_application_name = 'YourApplicationName');

delete from hyptest.ds_application d
where d.c_application_name = 'YourApplicationName';

delete from hyptest.ds_view d
where d.c_view_name = 'YourApplicationName';

delete from hyptest.or_object d
where d.c_object_id in (select TO_CHAR (a.i_library_id) || '_' || TO_CHAR (a.i_application_id)
                        from hyptest.ds_application a
                        where a.c_application_name = 'YourApplicationName'
                              and a.i_library_id = 1);

delete from hyptest_hss.product_application_map d
where d.application_id in (select aa.application_id a
                           from hyptest_hss.application a
                           where a.display_name = 'YourApplicationName');

delete from hyptest_hss.application d
where d.display_name = 'YourApplicationName';

commit;