条件表达式在Mule 4中不起作用

条件表达式在Mule 4中不起作用,mule,anypoint-studio,dataweave,Mule,Anypoint Studio,Dataweave,在Mule中设置变量值时,我有以下表达式: #[(message.inboundProperties['message-id'] != null) ? message.inboundProperties['message-id'] : java.util.UUID.randomUUID().toString().replace('-', '')] 基本上,如果消息尚未分配id,则将创建一个id 我已经转移到Mule 4和Anypoint 7,这个表达式不再有效。我知道inboundProper

在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

谢谢

  • 表达式在mule 4中使用Dataweave 2.0作为默认值,而不是MEL。因此,您不能再使用java方法调用。而是使用uuid()Dataweave函数和replace Dataweave函数

  • 您可以使用默认值而不是if-else检查

  • 表达式在mule 4中使用Dataweave 2.0作为默认值,而不是MEL。因此,您不能再使用java方法调用。而是使用uuid()Dataweave函数和replace Dataweave函数

  • 您可以使用默认值而不是if-else检查

  • #[attributes.headers.'message-id' default (uuid()  replace '-' with '')]