Mule DataWeave 2.0根据同对象布尔字段动态赋值其他字段报错如何解决
错误原因
你写的代码存在两处核心问题:
sampleRecord2字段的赋值true/false是非法语法,DataWeave没有这种布尔值表示方式,你可以根据实际需求替换为固定布尔值、入参中的布尔字段,或是返回布尔结果的逻辑表达式。- DataWeave构造对象时是并行求值的,同一对象内无法直接引用刚刚定义的其他字段,直接写
sampleRecord2会被判定为未定义变量,触发报错。
可行解决方案
最简洁的实现方式是提前将sampleRecord2的取值定义为变量,两个字段共同引用该变量即可:
%dw 2.0 output application/json --- var sampleRecord2Val = true // 此处可替换为你实际的布尔值来源,比如 payload.xxx、vars.xxx 等 { "sampleRecord1" : "Test1", "sampleRecord2" : sampleRecord2Val, "sampleRecord3" : if(sampleRecord2Val) 5 else 10 }
优化提示
布尔值在if判断中不需要额外加==true判断,直接使用变量即可,代码更简洁易读。
内容的提问来源于stack exchange,提问作者Sfdc_1184
相关产品推荐
相关产品推荐

