Управление фильтрами PerformancePoint с медленно меняющимися размерами
Просто немного справочной информации:
У меня есть таблица измерений, которая использует SCD2 для отслеживания пользовательских изменений в нашей компании (изменения команды, изменения должности и т. Д.). См. Пример ниже:
Я построил куб служб Analysis Services и создал все необходимые иерархии для измерений, и он хорошо работает при навигации и просмотре таблицы фактов.
У меня проблема с фильтрами на панели мониторинга PerformancePoint. Поскольку я использую таблицу User Dimension с несколькими экземплярами пользователей, в списке отображаются дубликаты. Я могу понять почему, поскольку суррогатное удостоверение ссылается на измерение. Но если я выберу первый экземпляр группы A, я увижу все их продажи за определенный период, а если я выберу второй экземпляр, я увижу все их продажи за другой период.
Каков наилучший способ справиться с этим типом поведения? В идеале я хотел бы видеть отдельный список команд в алфавитном порядке, и когда я выбираю название команды, со временем отображаются все их данные.
Я подумал об использовании фильтров запросов MDX, но хотел бы посмотреть, есть ли что-то, о чем я не думал.
Я понимаю, что это не простой и быстрый вопрос, но любая помощь будет признательна!
1 ответ
Ответ был прост после того, как я провел трал через мою таблицу измерений пользователя на кубе.
- Под моим пользовательским измерением я добавил 2 дубликата атрибутов в свой список атрибутов ("Фильтр команды" - это копия "Команда", "Фильтр пользователя" - это копия "Имя пользователя"), они будут использоваться только для фильтрации панели мониторинга.
- В свойствах атрибутов для каждого дубликата я затем устанавливаю AttributeHierarchyOptimizedState в значение "Неоптимизировано", я также устанавливаю для их AttributeHierarchyVisible значение false, поскольку я показал два дублированных атрибута в окне иерархии в середине.
- Разверните куб на сервере и перейдите в PerformancePoint. Создайте новый фильтр MDX (это изображение показывает готовый фильтр)
- Это код, который я использовал, он показывает только элементы измерения, которые имеют против них факт (значительно сокращает список), и, используя allmembers в измерении, он также дает мне возможность показывать "Все" в верхней части списка.,
- Разверните новые фильтры, и теперь вы можете видеть отдельный список пользователей и команд, отлично работает и выбирает каждый экземпляр (независимо от строки SCD2)