MEL 到 DataWeave 的转换
MEL to DataWeave conversion
我们正在将 Mule 3 应用程序迁移到 Mule 4,我们遇到了以下 MEL。关于如何将其转换为 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")
所以这个脚本不能原样迁移到 mule 4,因为它使用了 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")
因此,为了在语义上映射这一点,我们需要在您的流程中获得更多上下文。要在语法上映射,可以映射的部分将类似于
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"}
同样,这与 ++
不修改而是创建一个新实例并不完全相同。
我们正在将 Mule 3 应用程序迁移到 Mule 4,我们遇到了以下 MEL。关于如何将其转换为 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")
所以这个脚本不能原样迁移到 mule 4,因为它使用了 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")
因此,为了在语义上映射这一点,我们需要在您的流程中获得更多上下文。要在语法上映射,可以映射的部分将类似于
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"}
同样,这与 ++
不修改而是创建一个新实例并不完全相同。