【问题标题】:Looping in DataWeave in MuleSoft在 MuleSoft 中的 DataWeave 中循环
【发布时间】:2016-05-03 07:04:33
【问题描述】:

我有一个要求,我需要提取 LoadReferenceNumber 并分配给当 LoadReferenceNumberTypeMB 在 mule 中,下面是 xml

<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<CIS>
<LoadReferenceNumberList>
		<LoadReferenceNumberType>MB</LoadReferenceNumberType>
		<LoadReferenceNumber>8070296</LoadReferenceNumber>
	</LoadReferenceNumberList>
	<LoadReferenceNumberList>
		<LoadReferenceNumberType>ACT_SP_DATE</LoadReferenceNumberType>
		<LoadReferenceNumber>20160404T14:12:00</LoadReferenceNumber>
	</LoadReferenceNumberList>
	<LoadReferenceNumberList>
		<LoadReferenceNumberType>SP_DATE</LoadReferenceNumberType>
		<LoadReferenceNumber>20170404T14:12:00</LoadReferenceNumber>
	</LoadReferenceNumberList>
  </CIS>

【问题讨论】:

    标签: mule dataweave


    【解决方案1】:

    下面的示例是一个 dataweave 组件,它从 LoadReferenceNumberList 中提取 LoadReferenceNumber,其中 LoadReferenceNumberType == 'MB':

    <dw:set-variable variableName="LoadReferenceNumber"><![CDATA[%dw 1.0
    %output application/java
    ---
    value: ((payload.CIS.*LoadReferenceNumberList filter $.LoadReferenceNumberType == 'MB')[0].LoadReferenceNumber) default null]]></dw:set-variable>
            </dw:transform-message>
    

    结果是一个 LinkedHashMap,下面的例子是记录 LoadReferenceNumber 的记录器:

    <logger message="#[flowVars.LoadReferenceNumber.value]" level="INFO"
                    doc:name="Logger" />
    

    希望这会有所帮助:)

    【讨论】:

    • 要在 flowVariable 而不是 LinkedHashMap 中获取普通值,请将其更改为以下内容。请注意,我不再将转换分配给“价值”。 -&lt;dw:set-variable variableName="LoadReferenceNumber"&gt;&lt;![CDATA[%dw 1.0 %output application/java --- ((payload.CIS.*LoadReferenceNumberList filter $.LoadReferenceNumberType == 'MB')[0].LoadReferenceNumber) default null]]&gt;&lt;/dw:set-variable&gt; &lt;/dw:transform-message&gt;。转换后,flowVars.LoadReferenceNumber 应该保持值。
    • 试过了,但输出为 NULL。
    • 你能分享你的 mule configuration.xml 吗?以及与上面的 xml 不同的确切有效负载。
    【解决方案2】:

    你使用那个数据编织

    %dw 1.0
    %output application/java
    ---
    value: ((payload.CIS.*LoadReferenceNumberList filter $.LoadReferenceNumberType == 'MB')[0].LoadReferenceNumber) default null
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-29
      • 1970-01-01
      • 2016-02-03
      相关资源
      最近更新 更多