Существует куб со следующими измерениями:
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
Комментариев нет:
Отправить комментарий