为什么在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]) ' )]