Существует куб со следующими измерениями:
Account Acc1 Acc2 Acc3 Period YearTotal Q1 Jan Feb ... Year FY09 FY10 FY11
Необходимо создать функцию XXPRIOR которая умеет "перескакивать" через год т.е.
XXPRIOR(Jan->FY10) = Dec->FY09
Решение:
Создаем макрос в MaxL:
create or replace macro '@XXPRIOR' (SINGLE) as '( (@ISMBR(Jan) * @@1->Dec->@CURRMBRRANGE("Years", LEV, 0, -1,-1)) + (@ISMBR(Feb:Dec) * @PRIOR (@@1)) )'
Перестартовываем приложение в Essbase.
Используем макрос в calc-сриптах:
FIX(FY10, Jan:May) Acc2 = @XXPRIOR(Acc1); /* Macro */ Acc3 = @PRIOR(Acc1); /* Standart Function */ ENDFIX
Этот пример показывает результат работы скрипта:
Dec Jan Feb Mar Apr May FY09 FY10 FY10 FY10 FY10 FY10 === === === === === === Acc1 1100 1200 1000 1300 1300 1400 Acc2 #MI 1100 1200 1000 1300 1300 Acc3 #MI #MI 1200 1000 1300 1300
Для детального изучения смотрите Technical Reference: Custom-Defined Macros
Комментариев нет:
Отправить комментарий