Essbase: Calculation tips

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

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

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

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

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

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

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

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

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

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

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

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

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

  • Pingback: Oracle Hyperion Performance Lab » Основные виды расчетов в Essbase()

  • Guest

    u041fu043eu0437u0432u043eu043bu044cu0442u0435 u043du0435 u0441u043eu0433u043bu0430u0441u0438u0442u0441u044f u0441 u0432u0430u043cu0438 u043au043eu043bu043bu0435u0433u0430,nu041fu0440u0430u043au0442u0438u043au0430 u043fu043eu043au0430u0437u044bu0432u0430u0435u0442 u0447u0442u043e u0431u044bu0441u0442u0440u0435u0435 u0440u0430u0431u043eu0442u0430u044eu0442 u0441u043au0440u0438u043fu0442u044b, u043eu0441u043eu0431u0435u043du043du043e u0435u0441u043bu0438 u044du0442u043e 64 u0431u0438u0442u043du0430u044f u043cu0430u0448u0438u043du0430 u0438 u0432u044b u043du0435 u0437u0430u0431u044bu043bu0438 u0443u043au0430u0437u0430u0442u044c CALC PARALLEL 8. u0421u043bu0435u0434u0443u044eu0449u0438u043c u043fu043e u0441u043au043eu0440u043eu0441u0442u0438 u0438u0434u0435u0442 u0440u0430u0441u0447u0435u0442 u043fu043e u0438u0435u0440u0430u0440u0445u0438u0438, u0438 u0441u0430u043cu044bu0435 u043cu0435u0434u043bu0435u043du043du044bu0435 u044du0442u043e u0444u043eu0440u043cu0443u043bu044b.

  • NoFog

    u0415u0432u0433u0435u043du0438u0439, u0445u043eu0442u0435u043b u0431u044b u0443u0442u043eu0447u043du0438u0442u044c u043fu0440u043e u00abu0440u0435u0433u043bu0430u043cu0435u043du0442u0438u0440u043eu0432u0430u043du043du044bu0439u00bb u0441u043fu043eu0441u043eu0431. u0415u0441u0442u044c u0442u0430u043au0430u044f u0432u0435u0449u044c, u043au0430u043a Macros, u043au043eu0442u043eu0440u0430u044f u043fu043eu0437u0432u043eu043bu044fu0435u0442 u043eu0447u0435u043du044c u0445u043eu0440u043eu0448u043e, u0445u043eu0442u044c u0438 u043du0435 u043fu043eu043bu043du043eu0441u0442u044cu044e u0440u0435u0430u043bu0438u0437u043eu0432u0430u0442u044c u0443u043fu043eu043cu044fu043du0443u0442u044bu0439 u00abWrite once use manyu00bb u043fu0440u0438u043du0446u0438u043f.nnhttp://download.oracle.com/docs/cd/E17236_01/epm.1112/esb_dbag/frameset.htm?dcaudms.html#dcaudms465062nnu0410 u0432u043eu0442 u0441 u0441u0430u043cu044bu043c u0443u0434u043eu0431u043du044bu043c u0441u043fu043eu0441u043eu0431u043eu043c u044f u0430u0431u0441u043eu043bu044eu0442u043du043e u0441u043eu0433u043bu0430u0441u0435u043d!

    • u0414u0430 u043cu0430u043au0440u043eu0441u044b u0445u043eu0440u043eu0448u0438, u043fu0440u0430u0432u0434u0430 u0443 u043cu0435u043du044f u043du0435 u0441u043bu043eu0436u0438u043bu043eu0441u044c u0441 u0438u0445 u0438u0441u043fu043eu043bu044cu0437u043eu0432u0430u043du0438u0435u043c, u0432u0438u0434u0438u043cu043e u043fu043eu0442u043eu043cu0443 u0447u0442u043e u044du0442u043e u043eu0442u0434u0435u043bu044cu043du0430u044f u0441u0443u0449u043du043eu0441u0442u044c, u043au043eu0442u043eu0440u0443u044e u043du0443u0436u043du043e u043du0435 u0437u0430u0431u044bu0432u0430u0442u044c u043fu0435u0440u0435u043du043eu0441u0438u0442u044c u043cu0435u0436u0434u0443 u0441u0440u0435u0434u0430u043cu0438 .

      • Vvsprog

        u0410 u0440u0430u0437u0432u0435 u0442u0430u043c u043du0435 u043eu0434u0438u043d u0444u0430u0439u043b nESSDATAappPlansessfunc.xml u043fu0440u043eu0441u0442u043e u043du0443u0436u043du043e u043fu0435u0440u0435u043du043eu0441u0438u0442u044c?

    • Vvsprog

      u041cu0430u043au0440u043eu0441u044b u044du0442u043e u0445u043eu0440u043eu0448u043e, u0442u043eu043bu044cu043au043e u0432u043eu0442 u043fu0440u043eu0441u0442u043eu0433u043e if u0442u0430u043c u0441u0438u043bu044cu043du043e u043du0435 u0445u0432u0430u0442u0430u0435u0442:(nu0412u0440u043eu0434u0435 u0431u044b u043fu0440u043eu0441u0442u0430u044f u043au043eu043du0441u0442u0440u0443u043au0446u0438u044f:nif(@ISMBR(“Budget”))n…nelsen…nendif;

  • Pingback: Oracle Hyperion Performance Lab » EPMA Calculation Manager()