Mule-Newbie
Mule-Newbie

Reputation: 107

MEL to DataWeave conversion

We are migrating Mule 3 app to Mule 4 where we have encountered below MEL. Any inputs on how to convert it to DataWeave.

mel:prevProperties.get(payload.get("A1 - Roll Number")) == null ? prevProperties.put(payload.get("A1 - Roll Number"), payload.get("M7 - Detailed status")) : duplicateRecords.put(payload.get("A1 - Roll Number"),": Duplicate Name Found By ID")

Upvotes: 0

Views: 168

Answers (1)

machaval
machaval

Reputation: 5059

So this script can not be migrated as is to mule 4 as it uses side effects something that is not allowed in DW.

prevProperties.get(payload.get("A1 - Roll Number")) == null ?
        prevProperties.put(payload.get("A1 - Roll Number"), payload.get("M7 - Detailed status")) : 
        duplicateRecords.put(payload.get("A1 - Roll Number"),": Duplicate Name Found By ID")

So in order to map this semantically we need to get more context on your flow. To map syntactically the parts that can be mapped will be something like

if(prevProperties[payload["A1 - Roll Number"]] == null) 
    prevProperties ++ {(payload["A1 - Roll Number"]): payload["M7 - Detailed status"]}
else duplicateRecords ++ {(payload["A1 - Roll Number"]) : ": Duplicate Name Found By ID"}

And again this is not exactly the same as ++ doesn't modify but rather create a new instance.

Upvotes: 2

Related Questions