01 марта 2012

Как я проходил аудит FDM и HFM

Работаю в крупной группе компаний, имеющей в своем составе российские и иностранные компании. Поэтому мы готовим отчетность по МСФО стандартам с помощью FDM и HFM, получая данные факта из выгрузок и загрузочных файлов Excel.
Пришла пора пройти аудит. Проверяющими стали специалисты компаний из Большой четверки.
Поскольку мы готовим отчетность в информационной системе, то аудит, в том числе, проводится и самой системы.

Аудитором пока понадобились:
  • Данные об учетных записях пользователей, выделяя деактивированных (неиспользуемых). Предоставил аудит и провижн отчеты
  • Отчет по мэппингу из FDM (который, как я понимаю, они хотят повторить и проверить в Excel). Я выгрузил правила мэппинга в Excel (доступно в системе), отдал последнюю удачную загрузку и файл-результат мэппинга по нужной компании за нужный период
  • Отчет об изменениях артефактов приложения HFM. Файл может быть получен из системы по этой инструкции вендора
  • Отчет об изменениях артефактов приложения FDM. Файл не может получен по инструкции вендора, т.к. экспорт отчета не предусмотрен. Для этого можно сделать из Excel запрос (простой SELECT) к таблице tLogActivity БД приложения FDM
  • Скриншоты всех проделанных администраторских действий в системе. Все действия аудиторы просят провести при них и практически для каждого шага сделать скриншот. 
И сильно повезет тем, чьи аудиторы представляют структуру и знают функционал EPM (FDM, HFM, HP). Иначе чтение краткого углубленного курса по этим продуктам Вам гарантировано! Предлагаю Oracle проводить обучение (ознакомление) этим продуктам специалистов аудиторских контор, благо офис с некоторыми из них находятся в одном здании.

28 февраля 2012

Экспорт метаданных из приложения HFM, созданного через EPMA 11.1.2.0


Для экспорта метаданных приложения HFM и Planning, созданных через EPMA, используется утилита EPM Architect File Generator. Однако в релизе 11.1.2.0 для HFM он «из коробки» не работает.
Чтобы заставить его трудиться на благо Родине, необходимо:
  1. Убедиться, что на сервере с EPMA в IIS Manager установлена используемая версия ASP.NET для DefaultAppPool - ASP.NET 2.0.5. Если нет, исправить на такую версию, перезагрузить IIS (cmd: iisreset) и перезапустить сервисы EPMA (учесть зависимость с другими сервисами EPM!)
  2. Сформировать верный запрос в EPM Architect File Generator (пример для HFM):

    где - epma-server-with-IIS - это имя (или IP) сервера с установленными EPMA и IIS,
    а верный запрос к серверу: http://epma-server-with-IIS/hyperion-bpma-server

27 февраля 2012

Oracle Essbase Release 11.1.2.2.000 PSU

Внезапно на Oracle.com появилась документация на Oracle Essbase Release 11.1.2.2.000 PSU
Особенно интересен раздел про Новые фичи:
  • Параллельные реструктуризация и вычисления
  • Управление максимальным количеством транзакций
  • Параллельный экспорт/импорт данных
  • Размеры кэшей смогут превысить 4ГБ (для x64)
  • и проч.
Судя по всему, к новому релизу линейки EPM Oracle подойдет с обновленным Essbase. С одной стороны хочу радоваться... но пока боюсь.

UPD: Скачать можно на support.oracle.com. Patch ID: 4611548 (win x64) включает в себя

  • Essbase Server (Patch ID 11865143)
  • Essbase Client (Patch ID 11865133)
  • Common Runtime Client (Patch ID 12911847)
  • Может быть применен к релизу 11.1.2.1+


Копирование созданных в CalcMngr правил без LCM


      В продолжение поста о копировании приложения Planning, использующего EPMA 11.1.2.0 и Calculation Manager (далее – CalcMngr), опишу как можно скопировать созданные в CalcMngr правила из одного приложения Planning в другое, поскольку LCM в релизе 11.1.2.0 эту задачу не выполняет: 
  1. Выгрузить правила (а если используются Rulesets, то работать далее с ними; но не забыть повторить процедуру для тех правил, которые не попали в Rulesets) существующего приложения в CalcMngr. Для этого выделить все Rules (Rulesets) в исходном приложении, затем File Export.
  2. Исправить в полученном XML-файле с помощью Notepad++ все значения с именем старого приложения на имя нового приложения Planning по маскам:

    property name="application">староеИмя
    на property name="application">новоеИмя
    property name="scope">староеИмя.имяКуба
    на property name="scope">новоеИмя.имяКуба

    для Rulesets добавится еще одна маска замены
    property name="launch_application">староеИмя
    на property name="launch_application">новоеИмя

  3. (опционально) С именами кубов поступить аналогично. Маски просты и доступны в XML.
  4. Импортировать обновленные по пп. 2-3 правила. Для этого в CalcMngr перейти File Import. В опциях операции лучше установить параметры: Skip Exisitng Objects и Update Location Details (выбрать целевое приложение Planning и его куб).
  5. Деплоить эти правила (наборы правил). Переменные (и правила в случае Rulesets) уже будут импортированы.
  6. Проверить наличие всех необходимых переменных для правил, сравнив с исходным приложением Planning.В случае необходимости скопировать используемые в правилах переменные по инструкции вендора. Чтобы ускорить этот процесс, можно выделить все необходимые переменные Ctrl+Left Click, Right Click - Copy, а затем вставить их в целевое приложение и сохранить.

26 февраля 2012

Деплой приложения Planning в EPMA 11.1.2.0

В EPMA 11.1.2.0 есть такой баг в отношении приложений Planning: Невозможно задеплоить/передеплоить приложение Planning после добавления атрибутивного измерения.
Причины проблемы описаны в Deploy Aborts When Deploying Planning Attribute Dimension (1118393.1).

В моем случае было необходимо сделать копию приложения Planning на EPMA, в котором есть такие измерения, на том же инстансе. Порядок решения проблемы:
  1. Скопировать приложение Planning в Application Library (DuplicateAs New Appliction).
  2. Создать новый датасорс в Application Library (Tools Manage Planning Data Source).
  3. С помощью EPM Architect File Generator выгрузить метаданные из существующего (оригинального) приложения.
  4. Удалить привязанные к элементам направлений UDA ссылки на HSP_UDF.  Для этого сделать копию файла из п.3 и с помощью Notepad++ заменой удалить все упоминания HSP_UDF, сохранив файл в UTF-8.
  5. Загрузить в новое приложение метаданные (File Import Dimensions) из файла по п.4. В профайле импорта смело устанавливаем Merge (тип обновления) и опцию Remove Target Value for Missing Source Properties для НЕатрубутивных измерений.
  6. Удалить в новом приложении проблемное атрибутивное измерение. Ассоциации с другими измерениями удаляться автоматически.
  7. Сделать деплой приложения и рефреш Application Library.
  8. Накатить метаданные оригинального приложения Planning аналогично п.5, используя оригинальный файл метаданных из п.3.
  9. Сделать деплой приложения и рефреш Application Library.
  10. С помощью LCM накатить остальные артефакты приложения. Про перенос правил расчетов CalcMngr написал отдельно. Формы данных переносить после переноса правил. Какие данные накатывать в Essbase – решать по задаче.
Трудозатраты: 1,5 часа.

25 января 2012

Please, don't kill me!

Не убивайте свои системы EPM 11.1.2.0, они сделают это сами :) ):


Бага оказалась небанальной:

Симптомы
Недоступность системы для работы пользователей.
Во время работы пропал доступ к сервису Reporting & Analysis Framework, ответственного за формирование отчетов Financial Reporting и Web Analysis. Cервис Reporting & Analysis Framework в свою очередь связан с модулем Workspace – основной точкой входа во все приложения CIBRIS (Hyperion Planning, Hyperion Financial Consolidation). Риска потери данных в системе не было.

Диагностика
1. Неработоспособность Reporting & Analysis Framework привела к неработоспособности Workspace. Кроме того, была обнаружена неявная ошибка: компонент Reporting & Analysis Framework не мог записывать данные в свой лог-файл (баг вендора), из-за чего также не работал корректно.
2. SmartView не работал, т.к. использует протокол http через workspace.
3. Анализ лога WebLogic Server (WLS) указал на множество накопленных «мертвых», неиспользуемых объектов системы, в частности Reporting & Analysis Framework, из-за чего запросы выполнялись дольше установленного таймаута, что не позволяло возвращать результаты по запросу в установленное время.
4. Антивирус на сервере не настроен в соответствии с рекомендациями вендора Recommendations Regarding Antivirus Settings for Enterprise Performance Management (EPM) System Products [ID 1315173.1].

Лечение
Никогда не оставляйте включенным утюг опцию Change Ownership Event в этой версии здесь:
Workspace - Navigate - Administer - Reporting & Analysis - Event Tracking
и беспощадно убейте этот лог-файл:
Middleware_Home\user_projects\epmsystem1\diagnostics\logs\ReportingAnalysis\rafservletsUTBackup.log
Все подробности в документе Raframework Web Application Crashes Due to Usage Tracking. [ID 1334441.1].

23 января 2012

Оптимизация БД EPMA для EPM 11.1.x

Со временем сильно увеличивается БД EPM Architect, что негативно сказывается на скорости работы этого компонента. А в некоторых случаях, веб-сервер не успевает получить ответ в установленный таймаут, и возникает проблема, когда приложение (наример, Planning) может остаться в подвешенном состоянии.

Ниже представлено решение этой проблемы для EPM 11.1.3+
  1. Остановить службу EPMA Process Manager
  2. Сделать полный бэкап БД EPM Architect
  3. Запустить службу EPMA Process Manager
  4. Запустить утилиту database_cleanup_utility.exe, которая находится
    либо здесь для 11.1.1.x: \Hyperion\products\Foundation\BPMA\AppServer\DimensionServer\ServerEngine\bin\
    либо здесь для 11.1.2.x: \Oracle\Middleware\EPMSystem11R1\products\Foundation\BPMA\AppServer\DimensionServer\ServerEngine\bin
  5. Использовать администраторский логин/пароль EPM
  6. Запустить очистку для записей старше 45-60 дней
  7. Либо почистить БД EPM Architect скриптом (пример для Oracle DB 10g+):
    SELECT TO_CHAR(SYSDATE,'Dy DD-Mon-YYYY HH24:MI:SS') AS "Current Time 1" FROM DUAL;

    CREATE TABLE tmp_DS_MaxTransactions NOLOGGING AS
    SELECT a.i_application_id, MAX(i_transaction_id) AS i_transaction_id
      FROM DS_Transaction_History a
      JOIN DS_Application b
      ON a.i_library_id = b.i_library_id
      AND a.i_application_id = b.i_application_id
      JOIN DS_Library c
      ON a.i_library_id = c.i_library_id
      WHERE c.b_master = 1
      AND a.i_application_id IS NOT NULL
      AND (b.i_first_deploy_transaction_id IS NOT NULL OR b.b_master = 1)
      AND i_transaction_id >= COALESCE(b.i_last_deployed_transaction_id, b.i_first_deploy_transaction_id, 0)
      AND e_transaction_action = 'OrderChildren'
      GROUP BY a.i_application_id;
    COMMIT;

    SELECT TO_CHAR(SYSDATE,'Dy DD-Mon-YYYY HH24:MI:SS') AS "Current Time 2" FROM DUAL;

    -- Keep newest OrderChildren row for each application.  Logging resumes for this table
    -- after it is created and populated by this statement.
    CREATE TABLE tmp_DS_Transaction_History NOLOGGING AS
      SELECT a.* FROM DS_Transaction_History a
        JOIN tmp_DS_MaxTransactions b
        ON a.i_transaction_id = b.i_transaction_id;
    COMMIT;

    SELECT TO_CHAR(SYSDATE,'Dy DD-Mon-YYYY HH24:MI:SS') AS "Current Time 3" FROM DUAL;

    DROP TABLE tmp_DS_MaxTransactions;

    SELECT TO_CHAR(SYSDATE,'Dy DD-Mon-YYYY HH24:MI:SS') AS "Current Time 4" FROM DUAL;

    ALTER TABLE tmp_DS_Transaction_History NOLOGGING;

    SELECT TO_CHAR(SYSDATE,'Dy DD-Mon-YYYY HH24:MI:SS') AS "Current Time 5" FROM DUAL;

    -- Add back all non-OrderChildren rows.
    INSERT INTO tmp_DS_Transaction_History
      SELECT * FROM DS_Transaction_History
      WHERE e_transaction_action != 'OrderChildren';
    COMMIT;

    SELECT TO_CHAR(SYSDATE,'Dy DD-Mon-YYYY HH24:MI:SS') AS "Current Time 6" FROM DUAL;

    DROP TABLE DS_Transaction_History;

    SELECT TO_CHAR(SYSDATE,'Dy DD-Mon-YYYY HH24:MI:SS') AS "Current Time 7" FROM DUAL;

    RENAME tmp_DS_Transaction_History TO DS_Transaction_History;

    SELECT TO_CHAR(SYSDATE,'Dy DD-Mon-YYYY HH24:MI:SS') AS "Current Time 8" FROM DUAL;

    ALTER TABLE DS_Transaction_History
      ADD CONSTRAINT PK_TranHist PRIMARY KEY (i_transaction_id, i_detail_id);

    SELECT TO_CHAR(SYSDATE,'Dy DD-Mon-YYYY HH24:MI:SS') AS "Current Time 9" FROM DUAL;

    CREATE INDEX IdxTranHist01 ON DS_Transaction_History(i_library_id, i_dimension_id, i_member_id);

    SELECT TO_CHAR(SYSDATE,'Dy DD-Mon-YYYY HH24:MI:SS') AS "Current Time 10" FROM DUAL;

    CREATE INDEX IdxTranHist02 ON DS_Transaction_History(i_library_id, d_created);

    SELECT TO_CHAR(SYSDATE,'Dy DD-Mon-YYYY HH24:MI:SS') AS "Current Time 11" FROM DUAL;

    ALTER TABLE DS_Transaction_History LOGGING;

    SELECT TO_CHAR(SYSDATE,'Dy DD-Mon-YYYY HH24:MI:SS') AS "Current Time 12" FROM DUAL;

12 января 2012

Utilities for Troubleshooting Oracle Hyperion Enterprise Performance Management

(1) A new troubleshooting tool introduced in Oracle EPM 11.1.2.1 is \Oracle\Middleware\user_projects\epmsystem1\bin\ziplogs.bat|.sh file. The output of this is generated in \Oracle\Middleware\user_projects\epmsystem1\diagnostics\ziplogs\EPM_logs__11.1.2.1.0.zip

(2) Oracle Configuration Manager (OCM) is an advanced tool which collects and evaluates settings from configuration files (but not Hyperion Registry) and stores them in a central database administered by Oracle. It was first introduced into EPM in version 11.1.2.0

(3) Remote Desktop Assistant (RDA) collects and zips up a large amount of information concerning the software and hardware environments of Oracle products. If Perl 5.1 or later is installed on the computer and accessible from the command line (test: perl -version), then run: \Oracle\Middleware\ohs\rda\rda.cmd from the command line to access the RDA tool. Alternately, precompiled RDA executables are available for several platforms.

(4) Configuration settings have been moved from configuration files to a database repository associated with Shared Services. These may be extracted to an HTML formatted file by running \Oracle\Middleware\user_projects\epmsystem1\bin\epmsys_registry.bat|.sh without parameters from the command line. The output is generated to file \Oracle\Middleware\user_projects\epmsystem1\diagnostics\reports\registry.html The username/login/jdbc URL for the Hyperion/HSS registry are kept in \Oracle\Middleware\user_projects\epmsystem1\config\foundation\11.1.2.0\reg.properties file.

(5) A much enhanced validation tool is available in \Oracle\Middleware\user_projects\epmsystem1\bin\validate.bat. In EPM 11.1.2.1 the output files are of the form \Oracle\Middleware\user_projects\epmsystem1\diagnostics\reports\instance_report_20YYMMDD_######.html (where YY is the year, MM is the month, DD is the day, and ###### is a unique integer). It also runs the tool under (1) and gives the output of that tool.

(6) Individual log files may be found in subdirectories under (those 'starred' are not collected by ziplogs):
\Oracle\Middleware\user_projects\domains\EPMSystem\servers\\logs *
\Oracle\Middleware\logs *
\Oracle\Middleware\wlserver_10.3 *
\Oracle\Middleware\user_projects\epmsystem1\tmp *
\Oracle\Middleware\ohs\cfgtoollogs\opatch *
\Oracle\Middleware\EPMSystem11R1\diagnostics\logs
\Oracle\Middleware\user_projects\epmsystem1\diagnostics\logs\
\Program Files\Oracle\Inventory\logs
C:\Users\\Oracle\oradiag_\diag\
C:\Users\\.oracle\logs\

(7) Some debug tools (*) can be activated if under http://:19000/workspace/index.jsp > Navigate > Administration > Workspace Server Settings > Client Debug Enabled: is set to Yes (then click 'OK' button, close all browser windows, and restart browser).
* http://hostname:19000/workspace/debug/configInfo.jsp
* http://hostname:19000/workspace/debug/userInfo.jsp
* http://hostname:19000/workspace/debug/userGroupQuery.jsp


Other tools are available at these URLs (largely derived from validate.bat output). A non-Error response indicates that the web service of each particular application is active.:
http://hostname:19000/workspace/status
http://hostname:19000/workspace/BPMContext
http://hostname:8600/mappingtool/faces/info.jspx
http://hostname:10080/easconsole/console.html
http://hostname:16000/WebAnalysis
http://hostname:6373/oracle-epm-fm-webservices/ApplicationService
http://hostname:8300/HyperionPlanning/
http://hostname:13080/aps/APS
http://hostname:8200/hr/status.jsp
http://hostname:19091/awb/conf/AwbConfig.xml
http://hostname:8500/calcmgr/index.htm

10 января 2012

Internet Explorer 7 (IE7) and Internet Explorer 8 (IE8) Recommended Settings for Oracle Hyperion Products

1. Configure browser to check for new version every time user visits a page

•Open Internet Explorer
•Go to Tools > Internet options > General

•In 'Browsing history' section select 'Every time I visit the webpage'

•Click Ok, then Apply.
2. Disable default pop-up blocking

•Open Internet Explorer
•Go to Tools > Internet options > Privacy tab

•Uncheck 'Turn on Pop-up Blocker'
3. Add workspace URL to trusted sites

•Open Internet Explorer
•Go to Tools > Internet options > Security tab

•Select Trusted sites from Select a zone to view or change security settings.

•Type your workspace URL in form http://workspaceserver:portnumber in 'Add this website to the zone'
•Uncheck 'Require server verification (https:) for all sites in this zone'
•Click Add, then Close.
•Click Ok and Apply.
4. Minimize security setting for trusted sites

•Open Internet Explorer
•Go to Tools > Internet options > Security tab
•Select Trusted Sites from select a zone to view or change security settings

•Select custom level

•From Reset to list select Low
•Click Ok
•Click Apply, then Ok
5. Customize security settings

•Open Internet Explorer
•Go to Tools > Internet options > Security Tab > Custom Level
•In 'Miscellaneous' section enable the option "Allow script-initiated windows without size or position constraints"
•In 'ActiveX controls and plug-ins' section enable “Run ActiveX controls and plug-ins” and “Script ActiveX controls marked safe for scripting.”
6. Enable option "Always allow session cookies".

•Open Internet Explorer
•Go to Tools > Internet options > Privacy Tab > Advanced > Check the "Override automatic cookie handling" and accept the first and third party cookies and check the "Always allow session cookies" option.
7. Disable option "Enable Native XMLHTTP".

•Open Internet Explorer
•Go to Tools > Internet options > Advanced Tab > Uncheck the option "Enable Native XMLHTTP".