Приветствую.
Делаю планирование счета в BPS. Эксперимент
Итак у меня есть транзакционный куб в котором следующие признаки:
номер счета, филиал, версия. Показатель - остаток на счете. Каждый филиал планирует в соответствии с собственной версионностью. "Наверх" необходимо от каждого филиала только последнюю версию. Для этих целей решил скопировать последнюю версию каждого филиала в новую строку со значением признака версия равную "LV".
Сразу скажу что задачу решил, но мне кажется что "что то здесь не так":lol: .
Итак:
1 Как я полагаю задача должна была бы быть решена(если бы это работало):
В функции планирования выставляю в поля для изменения версию бюджета и филиал.
Код делаю следующий:
DATA VER TYPE 0BUD_VERSN.
DATA MAXVER TYPE 0BUD_VERSN.
DATA FILIAL TYPE R_ZB_FIL.
FOREACH FILIAL.
FOREACH VER.
IF VER > MAXVER AND NOT VER CA "LV".
MAXVER = VER.
ENDIF.
ENDFOR.
{LV,FILIAL}= {MAXVER,FILIAL}.
MAXVER = 001.
ENDFOR.
Работает это дело следующим образом:
Он плюет на филиал а выбирает максимальную версию для каждого счета.
2 Как она была решена(хотя на мой взгляд - какая то ерунда:)) )
Итак в функции планирования открываю на изменение признаки версию и номер счета(вместо филиала).
Код следующий(тупо замещены филиалы на счета).
DATA VER TYPE 0BUD_VERSN.
DATA MAXVER TYPE 0BUD_VERSN.
DATA ACCOUNT TYPE R_ZB_ACC.
FOREACH ACCOUNT.
FOREACH VER.
IF VER > MAXVER AND NOT VER CA "LV".
MAXVER = VER.
ENDIF.
ENDFOR.
{LV,ACCOUNT}= {MAXVER,ACCOUNT}.
MAXVER = 001.
ENDFOR.
То бишь фактически поменял местами филиал и счет, теперь "хожу по счетам" но работает именно как мне надо, то есть для каждого филиала выбирает максимальную версию.
Возникает ощущение что он оставляет "фиксированной" имено тот признак которого нет в перечне полей на изменение.
В общем мне необходимо понять где моя логика несовподает с логикой fox.
