DAX использует функцию имени пользователя в поиске таблицы

Мне нужно создать таблицу на основе поиска. Проблема в том, что в CALCULATETABLE я не могу использовать функцию username ().

CALCULATETABLE (
    LOOKUPVALUE ( 'User Table'[SOC], 'User Table'[username], USERNAME () ),
    'User Table'[username] = USERNAME ()
)

Кто-нибудь знает, как я могу продолжить?

Я бы хотел иметь таблицу со списком компаний для вошедшего в систему пользователя.


person power83    schedule 06.11.2020    source источник


Ответы (3)


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

Что вы можете сделать, так это создать визуальные элементы с мерами, которые фильтруются по имени пользователя и / или использовать имена пользователей как часть Фильтрация на уровне строк.

person Alexis Olson    schedule 06.11.2020

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

Посетите: https://www.kasperonbi.com/dynamic-security-made-easy-with-ssas-2016-and-power-bi/.

person BOUBRIT Nacim    schedule 06.11.2020

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

Я мог бы создать вторую таблицу и отфильтровать ее с безопасностью на уровне строк.

Спасибо

person power83    schedule 10.11.2020