Mule 与dataweave中带有局部变量的属性文件值进行比较

Mule 与dataweave中带有局部变量的属性文件值进行比较,mule,dataweave,mulesoft,Mule,Dataweave,Mulesoft,在下面的dataweave代码中,比较对我来说并不正常 属性文件键和值如下所示: domain=销售域、零售域 数据编织代码: %dw 2.0 output application/json var test = 'Sales Domain' --- { result: if(upper(test) != (upper(Mule::p('domain')))) "Not equal" else ("equal") } 您能在这方面提供帮助吗?属性域包含

在下面的dataweave代码中,比较对我来说并不正常

属性文件键和值如下所示:
domain=销售域、零售域

数据编织代码:

%dw 2.0
output application/json
var test = 'Sales Domain'
---
{
result: if(upper(test) != (upper(Mule::p('domain'))))  "Not equal" else ("equal")
}

您能在这方面提供帮助吗?

属性域包含字符串
Sales domain,Retail domain
。与包含字符串
Sales Domain
的变量测试的比较。显然,这两个字符串是不同的,甚至转换成大写(
upper()

如果要检查一个字符串是否包含另一个字符串,可以使用该函数

在DataWeave中,没有用于比较值的不相等运算符。可以使用运算符对表达式的结果求反

例如:

%dw 2.0
output application/json
var test = 'Sales Domain'
---
{
     result: if(upper(Mule::p('domain')) contains upper(test)) "contains" else "not contains"
}

此脚本应返回“不相等”。如果您希望它返回“相等”,请考虑使用<代码>包含函数,而不是<代码>!代码>。。。如果可能的话,你能帮我写下dataweave代码并分享吗?我试过了。结果:如果(upper(test)包含upper(Mule::p('domain'))“contain”else(“notcontain”)但不起作用……当您说它不起作用时,您的意思是比较返回false吗?这是意料之中的,因为较小的字符串不能包含较大的字符串。您应该看到较大的字符串是否包含较小的字符串。是的,结果:if(upper(Mule::p('domain'))包含upper(test))“contain”else(“notcontain”)。这起作用了。。。。您之前的评论是“比较较大的字符串包含较小的字符串”?我们可以在代码中添加NOT contains条件吗。if(upper(Mule::p('domain'))包含upper(test))“contain”else(“notcontain”)。如果是,请修改我的代码并发回好吗?