Essbase: Calculation tips

При проектировании расчетов,  всегда встает вопрос какой один из трех способов (расчет по модели, использование формул или скриптов расчета) лучше использовать в том или ином случае. Когда  оправдано использование формулы на элементе, а когда нет.  Ниже мои рекомендации по выбору стиля программирования под EssBase.

Как всегда, нет универсального решения, которое бы перекрыло бы 100% вопросов  возникающих в процессе разработки бизнес правил. Поэтому я выделил  аспекты являющиеся краеугольными при разработке, а затем описал стиль программирования, который удовлетворяет данному аспекту.

1)      Выбираем самый быстрый способ.

Если выбирать тип используемых расчетов исходя из критерия скорости, то ,естественно,  самым быстрым является расчет по иерархии, затем идет формула на элементе, и далее скрипт с расчетами.

2)      Выбираем самый удобный способ.

С моей точки зрения , самый удобный способ расчета элемента, это его расчет с помощью скрипта, так как

  • расчет по иерархии заставляет разработчика при каждом изменении  алгоритма лезть в модель и исправлять и реструктуризировать
  • Формула на элементе, хоть и лишена «достоинств» реструктуризации, но имеет ограничения, в ней нельзя использовать операции по управлению блоками, выгрузками, очисткой срезов

3)      Выбираем самый «регламентированный» способ

С точки зрения парадигмы структурированного программирования («Write once use many» и возможности языка расчетов кубов Essbase, лучший способ это использовать формулу на элементе, ведь в скриптах, в случае если нужно повторить алгоритм с другими входными параметрами,  то , в нужном месте, копируется кусок кода. Такой подход к программированию чреват ошибками при сопровождении, когда «забывают» поправить «везде» где нужно.

4)      Интегрируемся с ASO, BiEE

ASO и BiEE (Sybel Analytics), работают как «ROLAP» сервера, т.е берут данные с нижнего уровня и автоматически генерят  все необходимые «итоги» и «подитоги» отсюда и ограничения

  • На всех направлениях, кроме Account формулы и знаки для расчета по иерархии не имеют смысла, всегда будет конкатенация    («+»)

Даже в таком простой теме одни вопросы, ни одного ответа 😉