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

ADF Copy Activity动态表达式求助:修改Sink文件名(替换前缀+移除时间戳)

ADF Copy Activity 文件名修改动态表达式解决方案

需求回顾

原文件名:epackage - Sell In and Sell Out - Master - NS CBEC_20240711164411.xlsx
目标文件名:eCommerce - Sell In and Sell Out - Master - CN_CBEC.xlsx
核心操作:

  • 替换前缀 epackage 为 eCommerce
  • 将 NS CBEC 修改为 CN_CBEC
  • 移除下划线后的时间戳(_20240711164411)

原表达式错误原因

  1. 表达式1、3:仅实现了移除时间戳,未处理前缀替换和NS到CN的修改,不符合最终需求。
  2. 表达式2:包含无意义的<em>标签匹配逻辑,与实际文件名结构完全不符,必然报错。

正确动态表达式

@{concat(
    replace(
        replace(
            substring(item().name, 0, lastIndexOf(item().name, '_')),
            'epackage',
            'eCommerce'
        ),
        'NS CBEC',
        'CN_CBEC'
    ),
    '.',
    split(item().name, '.')[1]
)}

表达式逻辑拆解

  1. 移除时间戳:通过substring(item().name, 0, lastIndexOf(item().name, '_'))截取文件名中最后一个下划线之前的内容,得到epackage - Sell In and Sell Out - Master - NS CBEC。
  2. 替换前缀:用replace()函数将epackage替换为eCommerce。
  3. 修改区域标识:再次用replace()函数将NS CBEC替换为CN_CBEC。
  4. 拼接后缀:通过split(item().name, '.')[1]获取原文件的扩展名(xlsx),与处理后的文件名主体拼接。

验证建议

在ADF的动态表达式调试器中输入原文件名,测试表达式输出是否符合目标格式,确认无误后再应用到Sink的文件名设置中。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.21 07:22:37