我正在使用dataweave,由于每个州的销售税,我需要将特定状态的每个客户分配给预定义的用户。
但是,当我在dataweave中创建它时,最终将其作为XML:
<Customer>
<Number>
<Number>
<Number>
<Number>WEB002</Number>
</Number>
</Number>
</Number>
我只需要在“客户”节点下面的一个“数字”节点。
这是我的数据编织:
Customer:{
Number: 'WEB001' when payload.order.billing_address.state == 'Indiana' otherwise
Number: 'WEB002' when payload.order.billing_address.state == 'Kentucky' otherwise
Number: 'WEB003' when payload.order.billing_address.state == 'Illinois' otherwise
Number: 'WEB004'
},
试图将我的条件放在方括号内,没有喜悦,试图将每个条件都包裹在方括号中,没有喜悦。
有一个更好的方法吗?
最佳答案
您可以将状态和数字之间的映射放在映射/字典中,这样可以提高可读性,如下所示:
%var numbers = {
Indiana: 'WEB001',
Kentucky: 'WEB002',
Illinois: 'WEB003'
}
这就是您的数据编织的外观:
%dw 1.0
%output application/xml
%var defaultNumber = 'WEB004'
%var numbers = {
Indiana: 'WEB001',
Kentucky: 'WEB002',
Illinois: 'WEB003'
}
---
Customer: {
Number: numbers[payload.order.billing_address.state]
default defaultNumber
}
这是一个包含示例数据和预览结果的屏幕截图:
关于mule - Dataweave中的条件时,Mule ESB Multiple,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43399156/