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

Power Automate遍历Planner任务清单项失败,如何修正循环逻辑?

Planner计划克隆中清单项遍历问题的修正方案

问题根源

你用@createArray(outputs('Parse_JSON_testing'))作为循环输入,本质是把整个解析后的对象包装成了单元素数组,所以循环只会执行一次。而checklist内的清单项是动态键值对结构,并非标准数组,必须直接遍历这些键值对才能逐个处理清单项。

具体修正步骤

  1. 调整For Each循环的输入源
    直接在循环输入框中使用表达式,指向解析后的checklist结构:

    @outputs('Parse_JSON_testing')?['checklist']
    

    Power Automate会自动将键值对结构转换为可遍历的数组,每个元素包含key(原清单项ID)和value(清单项的具体属性,如标题、完成状态)。

  2. 在循环内调用Graph API创建清单项
    HTTP Patch动作的请求URL需指向新任务的详情端点:

    https://graph.microsoft.com/v1.0/planner/tasks/@{variables('new_task_id')}/details
    

    请求体使用以下格式,用@guid()生成新的清单项ID(避免与模板ID冲突):

    {
      "checklist": {
        "@{guid()}": {
          "title": "@{items('Apply_to_each')?['value']?['title']}",
          "isChecked": @{items('Apply_to_each')?['value']?['isChecked']}
        }
      }
    }
    
  3. 可选:用Select动作标准化数组结构
    如果需要先整理清单项数据,可添加Select动作:

    • 输入源选择outputs('Parse_JSON_testing')?['checklist']
    • 映射字段:
      • Title: @{item()?['value']?['title']}
      • IsChecked: @{item()?['value']?['isChecked']}
        之后将Select的输出作为For Each循环的输入,循环内直接引用映射后的字段即可。

关键注意事项

  • 确保Graph API权限包含Tasks.ReadWrite,否则Patch动作会返回权限错误。
  • 新任务的ID需正确传递,可通过之前复制任务的动作输出获取(如@{outputs('Create_task')?['body']?['id']})。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.17 19:46:13