Вопрос относительно синтаксиса Mule 4 и DWL.
У меня есть прослушиватель файлов, который ожидает CSV-файл.
скажем, файл в этом формате
значение1, значение2, значение3, значение4
Затем у меня есть процессор сообщений "var", и ему нужно присвоить значение value3 (третье поле) переменной.
Как я могу это сделать?
Ваша помощь приветствуется.
На данный момент у меня есть только одна строка в файле.





Если у вас есть только одна строка, вы можете получить доступ к первой строке, используя индекс 0: [0], а затем получить доступ к третьему полю, используя индекс 2 [2]. Индексы начинаются с 0.
Примечание, если в вашем CSV НЕТ строки заголовка, обязательно добавьте ее в файл: слушатель outputMimeType = "application/csv;header=false", чтобы сообщить dw, что строки заголовка нет:
<flow name = "csv">
<file:listener directory = "/path/to/dir" outputMimeType = "application/csv;header=false" >
<scheduling-strategy >
<fixed-frequency frequency = "100000" />
</scheduling-strategy>
</file:listener>
<logger level = "INFO" message = "#[payload]" />
<set-variable value = "#[output application/java --- payload[0][2] as String]" variableName = "myVar" />
<logger level = "INFO" message = "#[vars.myVar]" />
</flow>
Также обратите внимание, что вы можете использовать компонент transform для установки переменных и для более сложных преобразований, где требуется лучшее форматирование:
<ee:transform>
<ee:variables>
<ee:set-variable variableName = "myVar" ><![CDATA[%dw 2.0
output application/java
---
payload[0][2] as String]]></ee:set-variable>
</ee:variables>
</ee:transform>
CSV обычно представляет собой список. Вам нужны все значения 3 из CSV или только первое?