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

Modified JavaScript步骤输出字段为空,如何传递字符串至后续步骤?

问题原因及解决方法

核心原因

  1. 数据流字段未配置映射:Modified JS步骤的测试脚本仅验证代码逻辑中的变量值,但如果未将变量映射为输出字段,数据流不会携带这些值到后续步骤,导致预览/运行时字段为空。
  2. 变量作用域不匹配:元数据注入步骤通常读取的是Kettle全局环境变量,而非数据流字段;若你仅在JS中定义局部变量或未配置的数据流字段,元数据注入无法直接读取。

针对性解决方法

场景1:传递为数据流字段(若后续步骤需通过数据流接收)

  • 打开Modified JS步骤,切换到**「字段」标签页**
  • 点击「添加」,依次配置3个输出字段:
    • 字段名称:自定义(如str_var1)
    • JavaScript:填写你赋值的变量名(如my_str1)
    • 数据类型:选择String
  • JS代码示例:
    var my_str1 = "目标字符串1";
    var my_str2 = "目标字符串2";
    var my_str3 = "目标字符串3";
    
  • 配置完成后,再次预览转换,数据流中会包含这3个字段及对应值。

场景2:传递为Kettle环境变量(适配元数据注入步骤)

元数据注入步骤依赖Kettle全局环境变量,需用Kettle API直接设置:

  • Modified JS步骤的代码修改为:
    // 第三个参数"Y"表示全局生效,作业/后续步骤均可读取
    setVariable("STR_VAR1", "目标字符串1", "Y");
    setVariable("STR_VAR2", "目标字符串2", "Y");
    setVariable("STR_VAR3", "目标字符串3", "Y");
    
  • 无需配置「字段」标签页的输出映射
  • 在元数据注入步骤中,直接用${STR_VAR1}格式引用变量即可

排查注意事项

  • 检查变量名拼写:JS中的变量名和输出字段/环境变量名必须完全一致
  • 确认步骤执行顺序:Modified JS步骤需在元数据注入步骤之前执行
  • 环境变量测试:可在JS脚本末尾添加print(getVariable("STR_VAR1"));,运行脚本时查看控制台输出验证是否设置成功

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 13:47:19