我正在使用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-LMLPHP

关于mule - Dataweave中的条件时,Mule ESB Multiple,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43399156/

10-10 22:26