You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Logic App中将分页获取的Azure AD用户组成员存入数组

解决Logic App中分页用户数据合并到数组的问题

嘿,我完全懂你碰到的这个坑!你用union表达式的时候,以为是在往AllUserInfoArray里追加数据,但其实Logic App里的变量是不可变的——union只是生成了一个新的合并数组,如果你不把这个结果存回原变量,原来的AllUserInfoArray根本不会有任何变化,这就是为什么你只在Compose里看到新数组,而变量本身没更新。

下面是具体的解决步骤,帮你把所有分页用户数据都存进AllUserInfoArray:

  1. 确认变量初始化
    确保你已经在Logic App的初始化步骤里创建了AllUserInfoArray变量,类型设为数组,初始值可以设为空数组[]。

  2. 在循环中更新变量
    每次通过HTTP请求拿到当前页的用户数据后,不要只把union的结果放到Compose里,而是要添加一个Set variable动作:

    • 选择目标变量为AllUserInfoArray
    • 赋值表达式用下面的其中一种:
      • 如果你的分页数据不会有重复用户(正常情况下分页返回的用户是唯一的),用concat更直接:
        concat(variables('AllUserInfoArray'), body('HTTP_-_Request_My_Group_Name_group_members')['value'])
        
      • 如果担心有重复用户需要去重,就用union:
        union(variables('AllUserInfoArray'), body('HTTP_-_Request_My_Group_Name_group_members')['value'])
        

    这个动作的核心就是把合并后的新数组重新赋值给AllUserInfoArray变量,这样每次循环后变量里的数据就会累加。

  3. 循环结束后处理数组
    当没有NextLink退出循环后,AllUserInfoArray就已经包含了所有分页获取到的用户数据(名字、姓氏、UPN等),这时候你就可以直接遍历这个变量来做后续的统一处理了。

额外提醒

  • 要确保HTTP返回的value字段确实是数组类型,如果返回的是其他格式,可能需要用json()表达式把它转换成数组,比如json(body('HTTP_-_Request_My_Group_Name_group_members')['value'])。
  • 循环的顺序要正确:先获取当前页数据,再执行Set variable更新数组,然后再检查NextLink决定是否继续循环。

内容的提问来源于stack exchange,提问作者Martijn Balink

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.14 08:46:36