在Mule中设置变量的值时,我具有以下表达式:
#[(message.inboundProperties['message-id'] != null) ? message.inboundProperties['message-id'] : java.util.UUID.randomUUID().toString().replace('-', '')]
基本上,如果邮件尚未分配ID,则将创建一个ID。
我已移至Mule 4和Anypoint 7,此表达式不再起作用。我知道inboundProperties已更改为属性,因此进行了以下更改:
#[(attributes.headers.'message-id' != null) ? attributes.headers.'message-id' : java.util.UUID.randomUUID().toString().replace('-', '')]
对于这两个表达式,我都会收到错误消息“输入'(')没有可行的选择。
如何解决此声明以适用于Mule 4?
谢谢
答案 0 :(得分:3)
#[attributes.headers.'message-id' default (uuid() replace '-' with '')]
表达式在m子4中默认使用Dataweave 2.0,而不是MEL。因此,您不能再使用Java方法调用。而是使用uuid()dataweave函数和replace dataweave函数
您可以使用default代替if else check