0
votes

I am using Mule's datamapper to write data from a database to a csv file. I am using the streaming option on the database, the datamapper and the file ouput. I want to be able to log the amount of records written by the datamapper. Is there a way to get this data? I am running mule server 3.5.2 and have anypoint studio version 5.2.0.

2

2 Answers

1
votes

Not out of the box. You can use an outputArgument and increase a counter if you are NOT using streaming.

If you are using streaming then you can pass an input argument of a counter class. And from the script component of Datamapper you can increment the counter and return the counter as part of the payload to get access to it:

        <data-mapper:transform config-ref="Pojo_To_JSON_1" doc:name="Pojo To JSON" stream="true">
            <data-mapper:input-arguments>
                <data-mapper:input-argument key="counter">#[new Counter()]</data-mapper:input-argument>
            </data-mapper:input-arguments>
        </data-mapper:transform>

Datamapper script:

//MEL
//START -> DO NOT REMOVE
output.__id = input.__id;
//END -> DO NOT REMOVE

output.text = inputArguments.counter.increment();
1
votes

I know this is an old thread but still below could help -

 <byte-array-to-object-transformer doc:name="Byte Array to Object"/>
 <set-variable variableName="Orig_Rows" value="#[payload.length]" doc:name="Variable"/>