【问题标题】:Pentaho Data Integration setVariable not workingPentaho 数据集成 setVariable 不起作用
【发布时间】:2018-09-18 07:07:19
【问题描述】:

我在 PDI 7.0 上,并且在转换中有一个“修改的 Java 脚本值”步骤,如下所示:

var numberOfDays = 100;
Alert(numberOfDays);
setVariable("NUMBER_OF_DAYS", numberOfDays, "r");
Alert(getVariable("NUMBER_OF_DAYS", ""));

但是,当我运行转换时,第一个 Alert 正确抛出 100,但下一个 Alert 为空白(意味着未设置变量)。

这里有什么问题?

【问题讨论】:

    标签: variables pentaho kettle pentaho-spoon


    【解决方案1】:

    作为经验法则,您应该永远不要设置变量并在相同的转换中读取它.

    在设置 Set Variables 步骤时看到 Spoon 中弹出的警告:

    也就是说,如果你真的坚持要通过 Java Script 设置,你可以做的是以下设计:

    在哪里

    1) 设置变量变换用于设置值:

    var numberOfDays = 100;
    Alert(numberOfDays);
    setVariable("NUMBER_OF_DAYS", numberOfDays, "r");
    

    2) 获取变量transformatoin只读取它

    Alert(getVariable("NUMBER_OF_DAYS", ""));
    

    两种转换都使用相同的步骤,但它们有不同的任务。

    【讨论】:

    • 如果我们右键单击spoon中的setVariable特殊功能并单击Sample,他们提供的示例确实setVariable然后警告......他们应该改变这个不要混淆像我这样的新手......
    • 我在下一个转换中有一个 Generate Rows 步骤,我想使用在我的第一个转换中设置的变量。如上所述,我在第一步中设置了 NUMBER_OF_DAYS 和 START_DATE...我想在下一个转换的 Generate Rows 步骤中使用 NUMBER_OF_DAYS 作为 Limit,并将 START_DATE 作为 Generate Rows 步骤中的一个字段的值...我试过 ${ NUMBER_OF_DAYS} 和 ${START_DATE} 但它不起作用..我错过了什么吗?
    • 生成行的 KTR 是否创建了空白参数?而且,您需要使用“将先前的结果复制到参数”+“为每个输入行执行”。看看这是否有效。我回答了一个类似的问题,那里有一个示例,您可能可以使用和适应。 link
    • 您提出的@Nik 问题是另一个主题,将在 StackOverflow 上发布更多详细信息。
    猜你喜欢
    • 1970-01-01
    • 2017-04-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-22
    • 1970-01-01
    • 1970-01-01
    • 2021-12-09
    相关资源
    最近更新 更多