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

如何向Logic App传递值数组?ADF FTP文件缺失告警邮件方案求助

解决方案:ADF遍历FTP文件生成告警邮件(For Each+变量追加方式)

一、文件存在性的比较条件

核心用contains()函数做匹配判断:

  • 先通过Get Metadata活动获取FTP目录下的所有文件列表(勾选Child Items选项)
  • For Each循环遍历你预先设定的4个目标文件数组
  • 用以下表达式判断目标文件是否存在于FTP列表中:
    @contains(activity('Get Metadata').output.childItems, item())
    
    表达式返回true时标记为Available,返回false时标记为Unavailable

二、完整实现步骤

  1. 创建目标文件数组变量
    在ADF流水线里新建一个数组类型的变量targetFiles,填入要检查的4个文件名,示例值:
    ["file1.csv", "file2.csv", "file3.csv", "file4.csv"]
    
  2. 获取FTP文件列表
    添加Get Metadata活动,连接到你的FTP数据源,勾选Child Items选项,获取当前FTP目录下的所有文件信息。
  3. 初始化邮件内容变量
    新建一个字符串类型的变量emailContent,初始值设为邮件的HTML表头:
    "<table><tr><th>文件名</th><th>FTP中文件可用性</th></tr>"
    
  4. 配置For Each循环追加内容
    循环对象选择targetFiles数组,在循环内部添加Set Variable活动,用append模式给emailContent拼接行内容:
    @concat("<tr><td>", item(), "</td><td>", if(contains(activity('Get Metadata').output.childItems, item()), 'Available', 'Unavailable'), "</td></tr>")
    
  5. 完成邮件HTML结构
    循环结束后,再用Set Variable活动给emailContent追加"</table>",闭合表格结构。
  6. 调用Logic App发送邮件
    添加Web活动,调用你的Logic App端点,把emailContent作为请求体参数传递过去。Logic App里配置发送邮件的动作,直接使用该参数作为邮件正文(需开启邮件的HTML渲染选项)。

三、关键注意点

  • FTP服务器可能区分文件名大小写,要确保目标文件名和FTP上的文件名完全匹配
  • 如果文件在FTP子目录下,要在Get Metadata里指定正确路径,同时目标文件名需带上对应路径前缀
  • Logic App接收参数时要正确解析字符串类型的HTML内容,避免邮件显示乱码

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 08:07:23