在Javascript Step

时间:2018-02-09 05:09:11

标签: pentaho kettle

如何在Javascript步骤中读取和处理从excel读取的所有行。

我有以下转型

enter image description here

第一步是从电子表格中读取所有行,然后将其发布到REST服务。我在等待REST操作是在进入JS脚本之前完成的。在JS步骤中,我希望一次处理所有记录,并将其作为单个记录保存到XML。

为了更清楚地说明我的要求,我将给出一个方案。我有一个包含两列的输入文件。材料号和数量。在JavaScript步骤之后,我需要将从电子表格中读取的数据发布到另一个服务。此服务将返回与输入相关的免费商品。但为了获得自由利益,我需要一种材料组合。例如:如果输入是电视和DVD播放器,我会得到一些免费的东西。但如果我只通过电视或DVD播放器作为输入,我将不会获得任何免费的东西。所以在这种情况下我的数据是:

**Material    Qty**
TV            1
DVD Player    1

我的REST服务具有以下结构。

{
    "items": [
        {  
         "material":"TV",
         "quantity":"1",
        },
        {  
         "material":"DVD Player",
         "quantity":"1",
        }
    ]
}

关于如何实现这一目标的任何意见都非常有价值。谢谢。

1 个答案:

答案 0 :(得分:0)

在转换中解决此问题的一种方法是使用group by。尝试使用unique rows by hashset甚至是group by实用程序。

此步骤将替换阻止步骤,并等待所有行都被处理和分组。

以下是样本(3种方式) Grouping_dataset

例如,Unique Rows (Hashset)可以读取JavaScript中的所有字段,这些字段在读取整个数据集后会使其不同。