Mule 在Dataweave转换中需要帮助吗

Mule 在Dataweave转换中需要帮助吗,mule,dataweave,Mule,Dataweave,我有oracle数据库表CASH,其中包含以下列: REGISTER DATE CASE BAG TYPE 1234 24-SEP-18 1123 112 A 1234 24-SEP-18 1124 113 S 1234 24-SEP-18 1123 116 S 1234 24-SEP-18 1124 117 A 7895 24-SEP-18 2568 119 A 7895 24-SEP-18

我有oracle数据库表CASH,其中包含以下列:

REGISTER    DATE    CASE    BAG TYPE
1234    24-SEP-18   1123    112 A
1234    24-SEP-18   1124    113 S
1234    24-SEP-18   1123    116 S
1234    24-SEP-18   1124    117 A
7895    24-SEP-18   2568    119 A
7895    24-SEP-18   2568    118 S
其中,收银机编号为收银机,收银机可连接多个箱子,每个箱子可连接多个袋子和类型。我想在Dataweave中将其转换为以下XML:

1234 2018年9月24日 1123 112 A. 116 s 1124 113 s 117 A. 7895 2018年9月24日 2568 119 A. 118 s 你能给我一些建议我如何在dataweave中实现这一点吗


谢谢

假设您已经从数据库中读取了数据,您可以使用以下方法:

%dw 1.0
%output application/xml
---
ROOT: payload groupBy (($.REGISTER as :string) ++ ($.DATE as :string)) mapObject ((entries, number) -> {
    REGISTERS: {
        REGISTER: entries[0].REGISTER,
        DATE: entries[0].DATE as :string {format: "yyyy-MM-dd"},
        (entries groupBy $.CASE map DETAILS: {
            CASE: $.CASE[0],
            ($ map DETAIL: {
                BAG: $.BAG,
                TYPE: $.TYPE
            })
        })
    }
})

感谢Brad的帮助,但登记日期可能会有所不同。如何根据门店编号和日期组合进行分组。我尝试使用++运算符,但出现了一个错误。@user3368821-我已更新了答案。您可以使用“++”,但您需要将表达式包含在括号中,以便在groupByHi Brad之前对其进行计算。我也这样做,将其保留在括号中,但它抛出了错误->有效负载groupBy$.REGISTER++$.DATE mapObject条目,number->{^无法将:对象强制为:字符串。能否提供有关流的详细信息?在此转换之前,您将执行哪些步骤?有效负载是什么类型?等等。在此之前,有一个数据库连接器,其中包含一个简单的select查询。在数据库适配器转换之后这里是我使用上述片段的地方。谢谢