Power Automate遍历Planner任务清单项失败,如何修正循环逻辑?
Planner计划克隆中清单项遍历问题的修正方案
问题根源
你用@createArray(outputs('Parse_JSON_testing'))作为循环输入,本质是把整个解析后的对象包装成了单元素数组,所以循环只会执行一次。而checklist内的清单项是动态键值对结构,并非标准数组,必须直接遍历这些键值对才能逐个处理清单项。
具体修正步骤
调整For Each循环的输入源
直接在循环输入框中使用表达式,指向解析后的checklist结构:@outputs('Parse_JSON_testing')?['checklist']Power Automate会自动将键值对结构转换为可遍历的数组,每个元素包含
key(原清单项ID)和value(清单项的具体属性,如标题、完成状态)。在循环内调用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']} } } }可选:用Select动作标准化数组结构
如果需要先整理清单项数据,可添加Select动作:- 输入源选择
outputs('Parse_JSON_testing')?['checklist'] - 映射字段:
- Title:
@{item()?['value']?['title']} - IsChecked:
@{item()?['value']?['isChecked']}
之后将Select的输出作为For Each循环的输入,循环内直接引用映射后的字段即可。
- Title:
- 输入源选择
关键注意事项
- 确保Graph API权限包含
Tasks.ReadWrite,否则Patch动作会返回权限错误。 - 新任务的ID需正确传递,可通过之前复制任务的动作输出获取(如
@{outputs('Create_task')?['body']?['id']})。
内容的提问来源于stack exchange,提问作者Dedany
相关产品推荐
相关产品推荐

