【问题标题】:Condition checking in DataWeave componentDataWeave 组件中的条件检查
【发布时间】:2015-09-23 07:54:03
【问题描述】:

输入 XML:

 <Orders>
 <Order>
   <sample id="a">23435</sample>
   .
   .
   .
  <sample id="x">D123</sample>
     .
      .
  <sample id="y">5346</sample>
  <sample id="z"></sample>
  .
  .
  </Order>
 <Order>
   <sample id="a">23435</sample>
   .
   .
   .
  <sample id="x">D345</sample>
     .
      .
  <sample id="y">5346</sample>
  <sample id="z">D217</sample>
  .
  .
  </Order>
 <Order>
   <sample id="a">23435</sample>
   .
   .
   .
  <sample id="x">D1235</sample>
     .
      .
  <sample id="y">5346</sample>
  <sample id="z"></sample>
  .
  .
  </Order>

要求:

如果属性='z'的'sample'元素没有值,那么我需要将属性'x'的'sample'元素映射到'ProId';否则,如果它有价值,那么我不应该将任何值传递给“ProFeed”地图。 (对于每个“订单”元素,我需要创建一个“ProFeed”地图)

输出:

 [ProFeed={ProId="",Lang="eng",CatId="AU"},ProFeed={ProId="",Lang="eng",CatId="AU"},ProFeed={ProId="",Lang="eng",CatId="AU"}]

DataWeave 配置:

%input application/xml 
%output application/java
.(some configuration code)
.
.

请帮我配置DataWeave组件。

【问题讨论】:

  • 如果您需要对要求进行任何澄清,请发表评论。我对 dataweave 很陌生。
  • 我可以在配置中使用它吗? %输入应用程序/xml %输出应用程序/json
  • @RalphRimorin 请发布您的配置,我可以验证它是否有效。
  • 请回答这个问题,因为这是我的重要要求之一
  • 你还在吗?对不起,我没有回复。

标签: mule mule-studio dataweave


【解决方案1】:

您可以尝试增强此功能:

这里唯一的问题是$,它应该能够返回带有属性“x”的样本的值。我不知道如何嵌套何时/否则

【讨论】:

  • 你得到了 1+,因为虽然我没有同样的问题,但你的样本帮助我解决了我的问题。
【解决方案2】:

以下应该是你的逻辑。 为您的场景填写它

%dw 1.0
%output application/json
---

payload.Orders map {
  ProId: $.id when $.@id != null otherwise $.sample,
  .....
}

【讨论】:

  • 我不确定你是否理解这个要求。我再次评论了这个要求。另外,根据您提到的 $ ,我相信它将指向 Order 元素
  • 我认为这是使用条件的基础,您可以为您的解决方案应用类似的方法,然后让我知道它是否有效?它可能不是一个完整的脚本,您可以复制和粘贴它并使其适用于您的输入,但应该对您的组件进行修改
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多