Настройка дополнительных фильтраций в Управляющем Деше

При использовании конструкции filters() с указанием различных полей, если поля не были перечислены в рамках куба, то они не будут учитываться при выполнении select.

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

Рассматриваемый пример:

Раздел “Кубы” —> Редактирование куба, в котором мы прописываем результат требуемой функции.

Пример в подразделе SQL:

select num, order, val
from (
select 1 num, 'Заказ' order, sum(E.SECONOMY) val
from PARUS.EXEC E
where ${filters()}
union all
select num, order, val
from (
select 2 num, 'Результат' order, sum(E.FACT) val
from PARUS.EXEC E
where ${filters(NDOC_YEAR, SDOC_QUART,SQ_MONTH, DEPART_1, DEPART_2)}
)

В результате выполнения такого запроса данные не передаются в filters()
Для решения данной проблемы необходимо перейти в раздел с деменшенами куба, в рамках которого строим select и создаем новую размерность.

Заполняем размерность:

  • Название - как одно из полей для фильтрации - SDOC_QUART
  • ID - также SDOC_QUART
  • SQL выражение - SDOC_QUART

Для LuxmsBI - 8

Для LuxmsBI - 9

.
.
Т.е. потребуется создать размерности с теми же типами в рамках куба, которые мы указали в фильтрах в УД.

После выполнения данных действий для каждой ранее не созданного деменшена в фильтрации - фильтры начнут корректно отрабатывать в запросе.