Mulesoft Dataweave - 不能在 "otherwise" 子句中使用 "Using" 运算符中定义的变量
Mulesoft Dataweave - can't use variable defined in "Using" operator in an "otherwise" clause
为什么这在 Dataweave 1.0 中不起作用?
dw( ' using (zone="Z1,Z2") (zone splitBy ",")[0] when "NJ,NY" contains "MA" otherwise (zone splitBy ",")[1] ' )
如果我输入 contains "NJ"
或 contains "NY"
,它会毫无问题地执行 when
子句,但是 otherwise
在引用我的时会产生错误zone
变量。
这是一个范围界定的事情吗? zone
不适用于 otherwise
子句?
我在 using
上找不到任何像样的文档。
您在本地化声明(即 zone
)之后缺少一组括号来指示其范围。
我在 Transform Message 处理器中尝试了您的代码,正确缩进后应该是这样的:
%dw 1.0
%output application/dw
---
using (
zone="Z1,Z2"
) (
(zone splitBy ",")[0] when "NJ,NY" contains "MA" otherwise (zone splitBy ",")[1]
)
总是这样写using
:using (<declarations>) (<expression>)
你的代码应该这样写:
#[dw( ' using (zone="Z1,Z2") ((zone splitBy ",")[0] when "NJ,NY" contains "MA" otherwise (zone splitBy ",")[1]) ' )]
这是文档所在的位置:https://docs.mulesoft.com/mule-runtime/3.9/dataweave-language-introduction#scoped-variables
为什么这在 Dataweave 1.0 中不起作用?
dw( ' using (zone="Z1,Z2") (zone splitBy ",")[0] when "NJ,NY" contains "MA" otherwise (zone splitBy ",")[1] ' )
如果我输入 contains "NJ"
或 contains "NY"
,它会毫无问题地执行 when
子句,但是 otherwise
在引用我的时会产生错误zone
变量。
这是一个范围界定的事情吗? zone
不适用于 otherwise
子句?
我在 using
上找不到任何像样的文档。
您在本地化声明(即 zone
)之后缺少一组括号来指示其范围。
我在 Transform Message 处理器中尝试了您的代码,正确缩进后应该是这样的:
%dw 1.0
%output application/dw
---
using (
zone="Z1,Z2"
) (
(zone splitBy ",")[0] when "NJ,NY" contains "MA" otherwise (zone splitBy ",")[1]
)
总是这样写using
:using (<declarations>) (<expression>)
你的代码应该这样写:
#[dw( ' using (zone="Z1,Z2") ((zone splitBy ",")[0] when "NJ,NY" contains "MA" otherwise (zone splitBy ",")[1]) ' )]
这是文档所在的位置:https://docs.mulesoft.com/mule-runtime/3.9/dataweave-language-introduction#scoped-variables