SSAS 表格模型 - 使用 DAX 查找值创建角色以查找多个列



我才开始使用DAX和表格建模,因此希望得到任何可能的帮助/建议。

我已经创建了我的第一个模型,并希望创建动态安全角色。 我已经在一个简单的规模上实现了这个目标,如果我想根据过滤的表检查我创建的安全表,它会检查列是否匹配 - 并且只返回那些匹配的列的结果。

例如: 我的安全表称为 ReportAccessPermissions 此表当前包含与该员工一致的域登录名、emp ID、销售区域、不同领导信息。它看起来像这样:

ID   Domain     Mgr1ID  Mgr2ID  MGr3ID  SalesRegion
1234 TESTuser1 2222    NULL    NULL    NULL    
1234 TESTuser1 NULL    5555    NULL    NULL    
1234 TESTuser1 NULL    NULL    NULL    APJ     
1234 TESTuser1 NULL    NULL    NULL    EMEA  

当我针对 EMP 表添加过滤器时 - 因为我只想过滤和返回具有相同销售区域的用户,所以我一直在使用它,我已经对此进行了测试,它似乎运行良好。

='EMPLOYEE'[SalesRegion]= LOOKUPVALUE ('ReportAccessPermmisions'[SalesRegion],'ReportAccessPermmisions'[DomainLogin],USERNAME(),'ReportAccessPermmisions'[SalesRegion],'EMPLOYEE'[SalesRegion])

但是,我希望也能够过滤领导者信息。这样我就可以对照 emp 表检查销售区域和领导者信息。是否可以使用一个 DAX 查询查找来执行此操作?还是需要为每个列检查创建单独的角色?

理想情况下,我不希望为模型创建很多安全角色,因为我认为随着创建更多的模型、添加用户和应用过滤器,维护将是离谱的。我希望是否可以创建一个角色,但让它检查此安全表中的不同列,以便仅针对 emp 表返回相同的结果。

谢谢 P

尝试以下模式:

=OR(
'EMPLOYEE'[SalesRegion]= LOOKUPVALUE ('ReportAccessPermmisions'[SalesRegion],'ReportAccessPermmisions'[DomainLogin],USERNAME(),'ReportAccessPermmisions'[SalesRegion],'EMPLOYEE'[SalesRegion]),
'EMPLOYEE'[Mgr1ID]= LOOKUPVALUE ('ReportAccessPermmisions'[Mgr1ID],'ReportAccessPermmisions'[DomainLogin],USERNAME(),'ReportAccessPermmisions'[Mgr1ID],'EMPLOYEE'[Mgr1ID])
)

最新更新