Как разобрать FlatFile в mulesoft - PullRequest
0 голосов
/ 04 июня 2018

Я новичок в Mulesoft.У меня есть один плоский файл -

RHR001NTT PQR  2018090920180505
STR0010057830DFLT     74253J461000490
STR0020000000000000000000000000000000

Я хочу перебрать каждую строку, а затем я хочу взять каждую строку, чтобы получить подстроку из одной позиции в другую позицию.Например, в первой строке я хочу подстроку из 6-го столбца в 12-й столбец.

Я пытаюсь сделать что-то новое.Я разделил каждую строку, используя компонент сплиттера с #[StringUtils.split(message.payload, '\n\r')] , и теперь я хочу взять подстроку из каждой строки из одной позиции в другую.Понятия не имею, что мне теперь делать?Есть ли другой путь?Я слышал о компоненте For-Each. У меня нет никакого опыта или идеи относительно компонентов For-Each и Splitter.Пожалуйста, помогите мне.Спасибо заранее!

1 Ответ

0 голосов
/ 06 июня 2018

Эта конфигурация может помочь.Это будет проходить по каждой строке, и трансформатор разделится на "".Это даст вам массив.Остерегайтесь полезной нагрузки в For-Each пребывания в foreach и не будет существовать вне его.

http://www.springframework.org/schema/beans/spring-beans-current.xsd http://www.mulesoft.org/schema/mule/core http://www.mulesoft.org/schema/mule/core/current/mule.xsd http://www.mulesoft.org/schema/mule/file http://www.mulesoft.org/schema/mule/file/current/mule-file.xsd http://www.mulesoft.org/schema/mule/ee/dw http://www.mulesoft.org/schema/mule/ee/dw/current/dw.xsd">

<flow name="xyzFlow">
    <set-payload value="#[StringUtils.split(message.payload, '\n\r')]" doc:name="Set Payload"/>
    <foreach collection="#[payload]" doc:name="For Each">
        <dw:transform-message doc:name="Transform Message">
            <dw:set-payload><![CDATA[%dw 1.0
%output application/java
---
payload splitBy " "]]></dw:set-payload>
        </dw:transform-message>
    </foreach>
</flow>

...