如何在ADF管道中用ForEach活动迭代处理查询得到的ID数组
解决ADF管道ForEach无法迭代ID列表的问题
核心问题
你在ForEach活动内部直接通过固定索引rows[0].id获取ID,导致每次循环都只能拿到结果集的第一个ID,无法遍历整个列表。ForEach迭代的关键是使用当前循环项来引用迭代元素,而非固定索引。
具体修改步骤
确认ForEach的Items配置
当前设置的@activity('Script1').output.resultSets[0].rows是正确的,它会将Script活动查询到的所有ID行作为迭代集合。修改管道变量活动的赋值表达式
将原表达式:activity('Script1').output.resultSets[0].rows[0].ID替换为:
@item().id注:如果SQL查询返回的字段名是大写
ID,则改为@item().ID,必须与结果集的字段名完全匹配。修改Copy Data活动的请求体表达式
将原表达式:@concat('{"id":[', '"', activity('Script1').output.resultSets[0].rows[0].id, '"', ']}')替换为:
@concat('{"id":[', '"', item().id, '"', ']}')同样注意字段名的大小写匹配。
完成以上修改后,ForEach活动就会遍历Script活动返回的所有ID,每次循环使用当前迭代的ID进行后续处理。
内容的提问来源于stack exchange,提问作者db_dora_1234
相关产品推荐
相关产品推荐

