Как добавить строку в список Java в компоненте Transform Message?

Я устанавливаю такую ​​переменную, как:

<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.


person ReynierPM    schedule 29.05.2019    source источник


Ответы (1)


По сути, вам нужно снова установить переменную с новым именем. Используйте установочную переменную

<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>
person machaval    schedule 29.05.2019
comment
set-variable не допускается внутри элемента transform и поэтому генерирует ошибки при компиляции - person ReynierPM; 29.05.2019
comment
Извините, забыл удалить тег сообщения - person machaval; 30.05.2019
comment
Да, преобразование поддерживает набор переменных, набор атрибутов и набор полезных данных. Проблема заключалась в том, что он был обернут тегом сообщения, когда в случае переменной-установки он переходит непосредственно в преобразование. Надеюсь, что это работает - person machaval; 31.05.2019
comment
Вы были правы, я сделал это из пользовательского интерфейса, но в XML я вижу точно такое же определение. Суть в том, что речь шла о полезной нагрузке, и я хотел быть в переменной docHashMap. Спасибо - person ReynierPM; 31.05.2019