Hi everyone,
Use case: download file from FTP, split (stream mode) and process each of
them. I need to produce file with only error occurred during processing.
This is route to manage Report Builder:
<route>
<from uri="direct:appendToReport" />
<onCompletion>
<onWhen>
<simple>${in.header.CamelSplitComplete}
== 'true'</simple>
</onWhen>
<log message="On Completion: moving
ERR_${file:name.noext}-${in.header.ImportDateTime}.csv in Ready." />
<setHeader headerName="MoveURI">
<simple>{{local.work.directory.report.log}}?fileName=ERR_${file:name.noext}-${in.header.ImportDateTime}.csv&fileExist=Move&moveExisting=Ready</simple>
</setHeader>
<recipientList><header>MoveURI</header></recipientList>
</onCompletion>
<log message="ReportBuilder_FileAppender_Route receiving
${in.header.CamelSplitIndex}/${in.header.CamelSplitComplete}/${in.header.Result}"
/>
<choice>
<when>
<simple>${in.header.Result} == 'ERROR'
|| ${in.header.Result} ==
'FAILURE' || ${in.header.Result} == 'SKIPPED'</simple>
<marshal ref="LoggerDataFormat" />
<setHeader headerName="OutputUriReport">
<simple>{{local.work.directory.report.log}}?fileName=ERR_${file:name.noext}-${in.header.ImportDateTime}.csv&fileExist=Append</simple>
</setHeader>
<log
message="ReportBuilder_FileAppender_Route append discarded row:
${in.header.OutputUriReport}" />
<recipientList>
<header>OutputUriReport</header>
</recipientList>
</when>
</choice>
</route>
At the end of the process, I have a complete error report log in Ready
folder and another file with single row related to last of main file
processed in localWork report log Dir.
I tried with TryRename but when received last result it override all.
How to avoid writing of last single row?
Any idea?
Thanks in advance.
Best regards
Michele
--
View this message in context:
http://camel.465427.n5.nabble.com/File-Issue-Append-and-Move-file-on-completion-whole-process-tp5785634.html
Sent from the Camel - Users mailing list archive at Nabble.com.