如何在Power Apps中获取当前登录用户Delve的Cost Center ID
在Power Apps中获取Delve附加信息里的Cost Center ID的解决方法
Delve里的「附加信息」板块的Cost Center ID通常存储在Azure AD的用户扩展属性中,而非Office365Users.UserProfileV2返回的基础属性里,以下是可行的解决步骤:
1. 确认Cost Center ID对应的Azure AD属性字段
首先需要明确Cost Center ID实际映射到Azure AD的哪个属性:
- 打开Microsoft Graph Explorer,登录后调用
GET https://graph.microsoft.com/v1.0/me - 在返回的JSON数据中查找包含Cost Center值的字段,常见的是
onPremisesExtensionAttributes下的extensionAttribute1至extensionAttribute15中的一个,或者是自定义格式的扩展属性(如extension_<应用ID>_CostCenterID)
2. 使用Microsoft Graph连接器获取属性
Office365Users连接器通常不返回扩展属性,建议使用Microsoft Graph连接器:
- 在Power Apps编辑器中,添加「Microsoft Graph」连接器(需配置
User.Read权限) - 根据找到的属性字段,使用对应公式:
- 如果是
extensionAttribute3:Set(varCostCenter, MicrosoftGraph.Me().onPremisesExtensionAttributes.extensionAttribute3) - 如果是自定义扩展属性:
(将Set(varCostCenter, MicrosoftGraph.Me()['extension_xxxxxxxxxx_CostCenterID'])xxxxxxxxxx替换为实际的应用ID,CostCenterID替换为自定义属性名)
- 如果是
3. 备选:使用Office365Users V1版本连接器
部分场景下,Office365Users的V1接口可能返回扩展属性,可以尝试:
Set(varCostCenter, Office365Users.GetUserProfile(User().Email).extensionAttributes.extensionAttribute3)
注意事项
- 确保Power Apps使用的连接器拥有读取用户扩展属性的权限,需在Azure AD中为对应的应用注册配置
User.Read或User.ReadBasic.All权限 - 如果Cost Center ID是在Delve中手动添加的,需确认该值已同步到Azure AD的对应属性中
内容的提问来源于stack exchange,提问作者Sanjyot Walunj
相关产品推荐
相关产品推荐

