簡體   English   中英

我們如何將 Mule 4 dataweave 2.0 代碼轉換為 Mule 3 dataweave 1.0?

[英]How can we convert Mule 4 datawevae 2.0 code to Mule 3 dataweave 1.0?

我在 Mule 4 中有以下 dataweave 2.0 代碼,我在 Mule 3 dataweave 1.0 中需要此代碼。 有人可以幫我如何將此代碼轉換為 dw 1.0 嗎?

    Dataweave step 1

%dw 2.0
output application/json
fun prepareList(list:Array, maxSize: Number) = if(sizeOf(list) >= maxSize )
list
else
prepareList(list ++ [(sizeOf(list) + 1) as Number],maxSize)
---
(payload map (row, index) -> ({
    dummy : prepareList([],sizeOf(row))  map (irow, icounter) -> {

        ((row[icounter] splitBy "=")[0]) : (row[icounter] splitBy "=")[1] 
    } 

})) 



Dataweave step 2

%dw 2.0
output application/json
---
((payload reduce ((item, acc) -> acc ++ item)).*dummy map (row, index) -> ({
    index : row reduce ((item2, acc2) -> acc2 ++ item2)
})).*index

大多數操作,如 map、reduce、splitBy 在 DataWeave 1.0 中的工作方式基本相同,可能需要很少或不需要更改。 *選擇器是相同的。

您必須將if...else...替換為when...otherwise...

您還必須更改---分隔符之前的聲明以匹配 DataWeave 1.0 約定。

例子:

%dw 1.0
%output application/json
%function prepareList(list, maxSize) 
              list when ( sizeOf(list) >= maxSize ) 
                   otherwise prepareList(list ++ [(sizeOf(list) + 1) as Number],maxSize)
---

你不能。 它看起來很相似,但 DW 2 比 DW 1 強大得多。就像將 C++ 更改為 C 一樣。 看起來一樣,但概念不同。

相反的方式是正確的。 https://simpleflatservice.com/mule4/Mule3toMule4Transformation.html

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM