【问题标题】:Kettle's GUI variable scope vs "Modified Java Script Values" setVariable() scopeKettle 的 GUI 变量范围与“修改后的 Java 脚本值”setVariable() 范围
【发布时间】:2015-08-09 00:57:51
【问题描述】:

我正在使用修改后的 Java 脚本值步骤来调用 setVariable(my_var, my_val, "r");"r" 表示变量的“根”范围)

这很好用,除非我的作业调用另一个为其定义了参数的作业,其中这些参数与setVariable var 名称中指定的名称相同。

例如:

  • 主要作业步骤
    1. 转型
      • 有步骤调用setVar("my_var", "2", "r");
    2. 辅助作业(具有参数my_var,其默认值为“1”)
      • 转型
        • 读取my_var 的值为“1”,而不是“2”

但是,如果我在运行 Primary Job 之前从 GUI 中指定 my_var 的值,它将正确设置为我在 GUI 中指定的任何值。

GUI 中指定的变量是否分配在高于“Root”的范围内?这些变量如何传递到我的辅助作业,但在通过setVariable() 分配变量时却没有?

【问题讨论】:

    标签: pentaho kettle


    【解决方案1】:

    在 Javascript 步骤中设置变量或使用设置变量步骤以相同的方式工作。

    还有一个更全局的范围,即“在 JVM 中有效”,当您通过 Edit/Edit Environment Variables 菜单选项定义变量时使用它。

    【讨论】:

    • 我知道编辑/编辑环境变量选项。 “运行”对话框中定义的变量是否也有可能在“JVM 中有效”的范围内?这些变量的工作方式似乎与我调用 setVariable() 时设置的不同
    • 我通常不在运行窗口设置变量;但可能是它们被定义为在 JVM 中有效,是的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-01
    • 2015-08-08
    相关资源
    最近更新 更多