Основные виды расчетов в Essbase

Расчеты в Essbase могут проводиться различными способами:

  1. Консолидация на основе структуры измерений
  2. Формулы элементов
  3. Расчетные скрипты (Calculation scripts)
  4. Бизнес-правила (Business Rules)

Консолидация на основе структуры измерений

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

При создании измерений элементу присваивается тип консолидации по умолчанию Сумма (+), означающий, что он войдёт в расчет родительского элемента со знаком «+».

В этом виде расчета ключевую роль играет порядок элементов в измерении: расчет ведется сверху вниз, от первого до последнего элемента сегмента.

Тип консолидации можно изменить на один из следующих:

(+)  элемент  прибавляется к текущему результату

(–)  элемент вычитается из текущего результата

(*)  текущий результат умножается на значение элемента

(/)  текущий результат делится на значение элемента

(%)  элемент делится на текущий результат и умножается на 100

(~)  элемент не участвует в консолидации по данной иерархии

(^)  элемент не участвует в консолидации по всей модели

На примере ниже Measures = Profit (Inventory и Ratios в расчет не попадают) = Margin – Total Expenses  = (Sales – COGS) – Total Expenses

Формулы элементов

Этот тип расчетов также относится к элементам измерений и позволяет рассчитывать их значения через заданную формулу. Относительное положение элементов роли не играет.

Формулы, помимо описанных выше арифметических операций, могут также содержать дополнительные функции.

На следующем примере Variance = @VAR(Actual, Budget) – разница между значениями в Actual и Budget, а Variance % = @VARPER(Actual, Budget) – та же разница в процентном выражении.

Иногда более эффективным оказывается не хранение предрасчитанного результата, а выполнение динамического расчета при запросе к элементу (свойство Dynamic Calc).

Особенностью первых двух видов расчета является то, что они работают при полном пересчете куба. Для более сложных расчетов существуют Calc scritps.

Calculation scripts

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

Для разработки скриптов в Essbase есть специальный инструмент, Calculation Script Editor, который предоставляет возможность визуального выбора элементов измерений, стандартных команд и функций, а также обеспечивает проверку и подсветку синтаксиса.

Расчетные скрипты хранятся и выполняются отдельно для каждого приложения или куба. Для приложений, содержащих несколько кубов (как, например, у приложений Hyperion Planning), используется ещё более серьёзный способ описания вычислений – бизнес-правила (Business Rules).

Business Rules

Это, по сути, те же расчетные скрипты, но с расширенными возможностями. Они находятся в отдельном узле дерева объектов Essbase Administration Services Console:

Для создания бизнес-правил используется Rules Editor:

Бизнес-правила обладают следующими преимуществами перед Calc Scripts:

  • Запрос входных значений переменных
  • Представление бизнес-правил в графическом виде
  • Использование Макросов (Macro) – выделенных в отдельную сущность часто используемых частей расчетного скрипта
  • Выстраивание последовательностей бизнес-правил (Business Rules Sequences) с сохранением значений входных элементов по умолчанию
  • Более тонкая настройка прав доступа пользователей к расчетам (как индивидуально к каждому правилу/последовательности, так и к Проектам (Projects), объединяющим произвольный набор бизнес-правил)
  • Возможность запуска напрямую из командной строки без необходимости написания дополнительных MaxL/Esscmd скриптов, необходимых для автоматизации запуска Calc Scripts

В то же время, имеются и некоторые недостатки:

  • Логи запуска и выполнения бизнес-правил гораздо скуднее, чем логи расчетных скриптов
  • Отсутствие в Business Rules Editor таких приятных мелочей Calculation Script Editor как поиск с заменой, отмена последнего действия и отсутствие необходимости сохранения скрипта перед запуском его валидации

Подробнее о расчетах в Essbase можно почитать в DBAG и в TechRef (команды, функции).
Настройка расчетов в Essbase

Какой тип расчета  подойдет для меня ?