CurrentMember (MDX) игнорирует размер слайсера

Я использую функцию CurrentMember в выражении CellData роли, чтобы ограничить доступ к кубу через определенное измерение. Это работает, как и ожидалось, с одним исключением. Даже если измерение среза используется для фильтрации данных, которые роль не имеет права видеть, строка '#N/A' отображается во всех ячейках.

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

Мне кажется, что функция CurrentMember игнорирует измерение среза. Это тот случай? Как мне подойти к этой проблеме?

2 ответа

Решение

Мой совет, если серьезно, избегать кубов, которые требуют от вас ограничения доступа, используя значения кубов. Быть там, сделать это, потратило слишком много времени и все равно получило нестабильное решение.

Определенно НЕ используйте "роли" в OLAP.

Это зависит от того, как вы делаете свой запрос с фильтрами. Если вы генерируете подзапрос (используя верхнюю область фильтра в SSMS или BIDS), то currentMember вернет элемент All - именно так были разработаны подзапросы для работы. Если вы используете нижний запрос в SSMS или BIDS, он будет использовать предложение WHERE, и вы должны увидеть ожидаемые результаты.

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

Другие вопросы по тегам