0

我正在设置一个如下的变量:

<set-variable value='#[[]]' doc:name="Set Doc Array" doc:id="bfb46451-ac45-4d73-8189-5b73cdc300b3" variableName="docHashMap"/>

然后我尝试在 foreach 循环中向该列表中添加元素,如下所示:

<ee:transform doc:name="Transform Message" doc:id="ad2a1dd7-0973-4854-b44c-bdfe8eb54778">
    <ee:message>
        <ee:set-payload><![CDATA[%dw 2.0
import * from dw::core::Binaries
output application/java
---

vars.docHashMap.add({
  "Attachment_Document_Type": vars.factIntakeDocPayload.documentId,
  "Attachement_Content_Type": vars.documentMetadata.contentType,
  "Attachment_Content": toBase64(payload)
})]]></ee:set-payload>
    </ee:message>
</ee:transform>

在循环之后,我添加了一个 Logger 组件,并且我正在记录docHashMap变量,如下所示:

<logger level="WARN" doc:name="Logger" doc:id="482034d9-00c2-4ae1-8fd3-e999f8ece196" message="#[vars.docHashMap]"/>

但它是空的,意思是我在控制台上得到的只是[],为什么?我在这里缺少什么?顺便说一句,我是 Mule4 的新手。

4

1 回答 1

2

基本上你需要做的是用新名称再次设置变量。使用集合变量

<ee:transform doc:name="Transform Message" doc:id="ad2a1dd7-0973-4854-b44c-bdfe8eb54778">

            <ee:set-variable variableName="docHashMap"><![CDATA[%dw 2.0
    import * from dw::core::Binaries
    output application/java
    ---

    vars.docHashMap + ({
      "Attachment_Document_Type": vars.factIntakeDocPayload.documentId,
      "Attachement_Content_Type": vars.documentMetadata.contentType,
      "Attachment_Content": toBase64(payload)
    })]]></ee:set-variable>

    </ee:transform>
于 2019-05-29T18:07:42.943 回答