Mule 在Dataweave转换中需要帮助吗
我有oracle数据库表CASH,其中包含以下列: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
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查询。在数据库适配器转换之后这里是我使用上述片段的地方。谢谢