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

Azure Data Factory Foreach活动表达式解析失败求助

Azure Data Factory Foreach活动Items表达式运行时解析失败问题排查

问题场景

在Azure Data Factory的管道中配置了Foreach活动,为其Items属性编写了表达式,逻辑是检查GetReplies活动是否生成数据集:有数据则返回该数据集,无数据则返回空数组。表达式如下:

@if(not(empty(activity('GetReplies').output.resultSets)), activity('GetReplies').output.resultSets[0].rows, array([]))

表达式在构建器里没有语法错误,管道能正常保存、验证和发布,但运行时触发**"Unable to parse"**错误。哪怕简化成@array([]),同样报解析失败。

问题原因

Foreach活动的Items要求必须是一维数组,而array([])生成的是二维空数组(数组里嵌套了另一个空数组),ADF运行时没法把二维数组解析成可迭代的一维集合,所以触发了解析错误。

解决方案

把返回的空数组改成一维空数组,用createArray()函数,或者给array()传空参数(不要嵌套数组):

修正后的表达式

@if(not(empty(activity('GetReplies').output.resultSets)), activity('GetReplies').output.resultSets[0].rows, createArray())

或者等价写法:

@if(not(empty(activity('GetReplies').output.resultSets)), activity('GetReplies').output.resultSets[0].rows, array())

验证说明

  • createArray()或者无参数的array()生成的是一维空数组[],完全符合Foreach活动对Items的迭代要求
  • 当GetReplies活动有返回结果时,resultSets[0].rows本身就是一维数组(每行数据作为一个元素),可以正常被Foreach迭代

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 13:52:35