Receiver File Adapter: Problem with NewLine Content Conversion Parameter
On our SAP-XI (SAP NetWeaver 2004s, sp14) I have the scenario to send a price catalogue (IDoc PRICECATALOGUE.PRICECATALOGUE02) from SAP R/3 as csv PRICAT file to a file share.
In the receiver communication channel I have defined
Message Protocol = File Content Conversion
using the following RecordSet:
RecordSet = HeaderRow,MainBody
One header row is followed by one or more main body rows. The csv PRICAT message format demands that there is an empty row (i.e. one carriage return) between header and main body and another carriage return after the last main body row:
<Header Row> carriage return <MainBody 1> <MainBody 2> carriage return
As content conversion parameters I tried to use NewLine ('nl') to create the carriage returns in the file:
HeaderRow.fieldSeparator = , HeaderRow.endSeparator = 'nl' " new line MainBody.fieldSeparator = , MainBody.endSeparator = 'nl'
Using the settings I have been able to created the carriage return at the end of the file but not the one between header and main body.
As workaround I have used the following approach:
" Add the following XSLT mapping between header and body: <SeparatorLine> <value> <xsl:value-of select=" '' "/> </value> </SeparatorLine>
RecordSet and parameters have been changed accordingly:
RecordSet = HeaderRow,SeparatorLine,MainBody
HeaderRow.fieldSeparator = , HeaderRow.endSeparator = 'nl' SeparatorLine.fieldFixedLength = 0,0 " sic! MainBody.fieldSeparator = , MainBody.endSeparator = 'nl'
Has anybody an idea why I failed to receive the first carriage return and has somebody a more elegant solution?