[英]Need help in Dataweave Transformation
我有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
其中收銀機號碼是可以鏈接多個CASE的收銀機,每個CASE可以附加一個以上的BAG和Type。 我想將其轉換為Dataweave中的以下XML:
<ROOT>
<REGISTERS>
<REGISTER>1234</REGISTER>
<DATE>24-SEP-2018</DATE>
<DETAILS>
<BAG>1123</BAG>
<DETAIl>
<BAG>112</BAG>
<TYPE>A</TYPE>
</DETAIl>
<DETAIl>
<BAG>116</BAG>
<TYPE>S</TYPE>
</DETAIl>
</DETAILS>
<DETAILS>
<BAG>1124</BAG>
<DETAIl>
<BAG>113</BAG>
<TYPE>S</TYPE>
</DETAIl>
<DETAIl>
<BAG>117</BAG>
<TYPE>A</TYPE>
</DETAIl>
</DETAILS>
</REGISTERS>
<REGISTERS>
<REGISTER>7895</REGISTER>
<DATE>24-SEP-2018</DATE>
<DETAILS>
<BAG>2568</BAG>
<DETAIl>
<BAG>119</BAG>
<TYPE>A</TYPE>
</DETAIl>
<DETAIl>
<BAG>118</BAG>
<TYPE>S</TYPE>
</DETAIl>
</DETAILS>
</REGISTERS>
</ROOT>
您能給我一些指示,如何在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
})
})
}
})
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.