CurrentMember (MDX) игнорирует размер слайсера
Я использую функцию CurrentMember в выражении CellData роли, чтобы ограничить доступ к кубу через определенное измерение. Это работает, как и ожидалось, с одним исключением. Даже если измерение среза используется для фильтрации данных, которые роль не имеет права видеть, строка '#N/A' отображается во всех ячейках.
Только после включения измерения, к которому роль имеет ограниченный доступ по оси, значения ячейки отображаются должным образом.
Мне кажется, что функция CurrentMember игнорирует измерение среза. Это тот случай? Как мне подойти к этой проблеме?
2 ответа
Мой совет, если серьезно, избегать кубов, которые требуют от вас ограничения доступа, используя значения кубов. Быть там, сделать это, потратило слишком много времени и все равно получило нестабильное решение.
Определенно НЕ используйте "роли" в OLAP.
Это зависит от того, как вы делаете свой запрос с фильтрами. Если вы генерируете подзапрос (используя верхнюю область фильтра в SSMS или BIDS), то currentMember вернет элемент All - именно так были разработаны подзапросы для работы. Если вы используете нижний запрос в SSMS или BIDS, он будет использовать предложение WHERE, и вы должны увидеть ожидаемые результаты.
И вам может быть лучше использовать вкладку данных измерения вместо данных ячейки, если вы просто фильтруете по элементам измерения.