【问题标题】:MuleSoft - Running Batch job using XML arrayMuleSoft - 使用 XML 数组运行批处理作业
【发布时间】:2021-03-23 23:13:14
【问题描述】:

我正在尝试使用 XML 数组运行批处理作业。我的 XML 结构如下所示。

<file>
  <data>
    <deliveryOrder>
      <deliveryMethod>TRUCK1</deliveryMethod>
    </deliveryOrder>
    <deliveryOrder>
      <deliveryMethod>TRUCK21</deliveryMethod>
    </deliveryOrder>
    <deliveryOrder>
      <deliveryMethod>TRUCK2</deliveryMethod>
    </deliveryOrder>
  </data>
</file>

目前我的批处理步骤只对整个 xml 运行一次。我的要求是为每个“deliveryOrder”运行批处理步骤。一种解决方案是将其转换为 JSON,效果很好。但是,我不想这样做,因为目标系统使用 xml 接口。

如果有办法直接在 XML 项目上运行批处理,请告知。

谢谢

【问题讨论】:

    标签: mule4


    【解决方案1】:

    Batch 不知道 JSON 或 XML,它知道消费可迭代输入。 JSON 有数组的概念,这可能就是它起作用的原因。 XML 没有数组的概念。它具有嵌套元素,某些实现可能会将其视为数组。将 XML 转换为 JSON 仅用于批处理是非常低效的,因为负载需要被解析并转换为内部表示两次。

    另一种方法是仅使用 DataWeave 将要处理的元素转换为 Java 数组:

    %dw 2.0
    output application/java
    ---
    payload.file.data.*deliveryOrder
    

    这会返回一个包含 file.data 下所有 DeliverOrder 元素的数组。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-11-14
      • 1970-01-01
      • 2023-01-25
      • 1970-01-01
      • 2021-01-15
      • 2015-07-30
      • 1970-01-01
      • 2014-06-20
      相关资源
      最近更新 更多