Mulesoft Dataweave-不能在“ otherwise”子句中使用在“使用”运算符中定义的变量

问题描述 投票:0回答:1

为什么在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上找不到任何合适的文档。

mule mule-studio dataweave
1个回答
0
投票

您在本地化声明(即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]
)

总是如下写usingusing (<declarations>) (<expression>)

您的代码应编写如下:

#[dw( ' using (zone="Z1,Z2") ((zone splitBy ",")[0] when "NJ,NY" contains "MA" otherwise (zone splitBy ",")[1]) ' )]
© www.soinside.com 2019 - 2024. All rights reserved.