【问题标题】:Pentaho/Kettle Javascript: Calling a field dynamicallyPentaho/Kettle Javascript:动态调用字段
【发布时间】:2016-04-06 14:02:49
【问题描述】:

我正在尝试检索字段的值,但我需要动态构建字段的名称。

想象一下,我将去年按天出生的人列在名为天数的列中。因此,您有 DAY_1、DAY_2、DAY_3 等列。值是 5, 12, 33... 我想对所有这些值进行循环,为此我构建了字段名称:

var column_name = "DAY_"+i

所以稍后我可以将我的循环一一增加。

问题是 javascript 无法将 DAY_i 识别为有效的输入字段,因此我无法检索该字段的值,Pentaho 将其作为字符串处理。

【问题讨论】:

    标签: javascript pentaho kettle


    【解决方案1】:

    在javascript步骤中有一个数组变量row。您可以使用getInputRowMeta().indexOfValue("DAY_" + i) 查找列的索引,然后使用该索引获取当前行中字段的值:

    var column_name = "DAY_" + i;
    var column_index = getInputRowMeta().indexOfValue(column_name);
    var column_value = row[column_index];
    

    请注意,column_value 将引用某种 Java 类型的对象(例如 java.lang.String),因此 javascript String 方法不适用于该值。您需要将值转换为 javascript 类型或使用 java 方法。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-12-23
      • 2015-06-27
      • 2019-02-22
      • 1970-01-01
      • 2014-04-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多