MuleSoft:按行ID汇总行项目和分组

时间:2014-11-19 19:12:56

标签: mule integration mule-studio

我是集成和MuleSoft的新手,所以我需要你的帮助。我有一个平面文件,每个salesID有不同的发票行项目,如下所示:

SalesOrderID    OrderQty    UnitPrice

43659   70  2024.994

43659   70  2024.994

43660   1   419.4589

43660   1   874.794

43661   1   809.76

我想使用Mule在另一个CSV文件中插入总发票金额和数量,如下所示:

SalesOrderID    OrderQty    UnitPrice

43659   140 4049.988

43660   2   1294.4589

43661   1   809.76

我知道如何在informatica中做到这一点,但我试图在MuleSoft中找到一种方法。如何汇总所有订单项并按SalesOrderID对其进行分组?任何帮助/线索将非常感激。 感谢。

2 个答案:

答案 0 :(得分:0)

有很多方法可以做到这一点,让我解释一下我个人最喜欢的假设您正在使用Mule社区版。

使用优秀的库:SuperCSV,它不仅可以解析数据(包括那些点号),还可以对其进行验证并提供有关文件损坏原因的确切报告,以防万一

这可以在变换器中完成,该变换器转换入站流并返回映射映射(或者更好的迭代器来处理整个事情,但这更难)或带有错误报告的自定义异常。

答案 1 :(得分:0)

鉴于这一要求即使在今天仍是面向Mule开发人员的,因此查看基于Mule 4.x运行时和Dataweave 2.x的解决方案非常有用。

  • 如果数据来自文件或其他形式的文本流,请使用splitBy()函数获取文本行数组。

    有效载荷按'\ n'

  • 删除第一行,因为不应计算标题

    payload [1到-1] //这是我最喜欢的方法

  • 现在使用reduce()函数依次遍历每行,每次都更新累加器以考虑数量和价格。

希望有帮助