PowerApps中Office365Users.SearchUserV2无法显示AD全部用户求助
问题解决方案
核心原因
你遇到的问题源于Office365Users.SearchUserV2依赖的Microsoft Graph API /search/users端点的两个限制:
- 返回条数上限:即便设置
top:99999,该接口实际最多仅返回999条结果; - 无序返回:未指定排序规则时,接口返回的用户顺序无固定逻辑,恰好你的环境中前999条用户的名称集中在以"I"及之前字母开头的范围。
解决方案
方案1:改用ListUsersV2分页获取全量用户(推荐)
SearchUserV2是搜索导向的接口,适合精准检索;若需获取所有符合条件的用户,改用ListUsersV2并通过分页加载全量用户到集合,再在本地过滤更可靠。
- 在App的
OnStart属性中添加以下代码,加载所有用户到集合:
ClearCollect(colAllUsers, Office365Users.ListUsersV2({top:999}).value); Set(varNextLink, Office365Users.ListUsersV2({top:999}).odata.nextLink); DoUntil(IsBlank(varNextLink), Collect(colAllUsers, Office365Users.ListUsersV2({nextLink:varNextLink}).value); Set(varNextLink, Office365Users.ListUsersV2({nextLink:varNextLink}).odata.nextLink) )
- 将下拉控件
DataCardValue10的Items属性修改为:
Filter( colAllUsers, AccountEnabled = true, !IsBlank(JobTitle), StartsWith(DisplayName, Trim(Self.SearchText)) )
方案2:调整SearchUserV2参数(快速临时解决)
如果不想加载全量用户,可以给SearchUserV2指定排序规则,确保结果按名称有序返回,避免只显示到"I"开头的用户:
Filter( Office365Users.SearchUserV2( { SearchTerm: Trim(Self.SearchText), isSearchTermRequired: false, top: 999, orderBy: "DisplayName" } ).value, AccountEnabled = true, !IsBlank(JobTitle) )
注意:此方案仍受999条结果上限限制,若符合条件的用户超过999,仍会出现截断。
内容的提问来源于stack exchange,提问作者Amre
相关产品推荐
相关产品推荐

