如何在ADF事件触发器参数中传递数组并获取文件名
从事件触发器提取所有文件名到数组参数的正确写法
问题分析
你之前的写法存在两个核心问题:
- 语法错误:
@triggerBody().["fileName"]不符合表达式规范,正确的属性访问应为triggerBody()?['fileName']或triggerBody().fileName - 逻辑偏差:若触发器返回多个文件的数组,直接用
join会把所有文件名拼成单个字符串,再转数组只会得到单元素数组,无法匹配数组参数的需求
正确实现方式
假设事件触发器返回的结构中,文件列表是名为files的数组(每个元素包含fileName字段),直接用map函数提取所有文件名到数组:
@map(triggerBody()?['files'], item()?['fileName'])
将该表达式直接赋值给file_list参数即可。
补充说明
- 若触发器返回的文件列表字段名不是
files,替换为实际字段名即可(比如value) - 使用
?是做空值保护,避免因字段不存在导致流程报错 - 若触发器仅返回单个文件(非数组),用
@array(triggerBody()?['fileName'])就能将单个文件名转为数组,适配file_list的数组类型
内容的提问来源于stack exchange,提问作者Akshay
相关产品推荐
相关产品推荐

