cancel
Showing results for 
Search instead for 
Did you mean: 

Problems in File Content Conversion

0 Kudos

Hello,

I am trying to convert a text file to an XML using File Content Conversion in XI 3.0.

The incoming text file gets picked up but no message is sent and hence no message is received in the monitor.I get the following log-

<b>Success</b> Channel FILE_SENDER_XML_1: Entire file content converted to XML format

<b>Warning</b> Channel FILE_SENDER_XML_1: Empty document found. Proceed without sending message

<b>Success</b> File "C:\xi_public\i033066\dme_in.txt" deleted after processing

Can somebody help me on this

Thanks

Sandeep

Accepted Solutions (0)

Answers (1)

Answers (1)

MichalKrawczyk
Active Contributor
0 Kudos

hi,

when you try to send an empty message it just gets deleted

it doens't go to the integration engine I believe

fom sap note 821267

"31. Empty File Processing

Q: How does the File Adapter handle empty files and messages with a zero-sized payload?

A: Empty files in the sender adapter will not trigger the creation of a message. If an empty message is sent to a receiver channel, no output file will be created."

Regards,

michal

0 Kudos

Hello Michal,

Thanks for the feedback.I have given the Processing Mode as 'Delete'.Hence it is deleting.I don't get any log on Monitor(SXMB_MONITOR).I think message itself did no reach there.

But my other scenario of converting XML to TXT works without problems.

Regards,

Sandeep

MichalKrawczyk
Active Contributor
0 Kudos

but is your file empty (has no data) ?

if it's empty it will not reach the XI

Regards,

michal

bhavesh_kantilal
Active Contributor
0 Kudos

Hi Sandeep,

<i>Success Channel FILE_SENDER_XML_1: Entire file content converted to XML format

Warning Channel FILE_SENDER_XML_1: <b>Empty document found.</b> Proceed without sending message

Success File "C:\xi_public\i033066\dme_in.txt" deleted after processing</i>

Your error msg clearly states that you are passing an empty file. As mentioned by michal, an empty file will be ingnored by the file adapter and wil not be sent to the integration engine and hence no entry in SXMB_MONI.

Regards,

Bhavesh

0 Kudos

Hello,

I am not sure of why the empty Payload is created.

I have the following TXT file -

<b>LINE 1</b> 01 22 Sandeep ASKDJKLASD HDFC Bank 12342 asdasd 123569

<b>LINE 2</b> 02 22 Sagar 23123 ICICI 4234 ASDASD 254636 12304 ASDAsdqwe

<b>LIME 3</b> 03 22 1 12304

Ignore 'Lines' above.They are not part of the file.

I have given the following parameters -

<b>Document Name -</b> SampleMessageType

<b>Document Namespace -</b> http://sandeep/xi/bpm_example

<b>Recordset Name -</b> Header,Item,Trailer

<b>Recordset Namespace -</b> http://sandeep/xi/bpm_example

<b>Record Structure -</b> Header,,Item,,Trailer,*

<b>Recordset Sequence -</b> Ascending

<b>Key Field Name -</b> Record Type

<b>Key Field Type -</b> String(Case Sensitive)

<b>Header.fieldFixedLengths</b> 3,4,15,20,15,15,20,10

<b>Header.fieldNames</b> RecordType,RecordLength,CompanyName,CompanyAddress,BankName,BankCode,BankAddress,AccountNumber

<b>Header.processFieldNames</b> fromConfiguration

<b>Header.keyFieldValue</b> 01

<b>Header.lastFieldsOptional</b> YES

<b>Item.fieldFixedLengths</b> 3,4,15,20,15,15,15,10,6,10

<b>Item.fieldNames</b> RecordType,RecordLength,BeneficiaryName,BeneficiaryAddress,BankName,BankCode,BankAddress,AccountNumber,Amount,NoteToPayee

<b>Item.processFieldNames</b> fromConfiguration

<b>Item.keyFieldValue</b> 02

<b>Item.lastFieldsOptional</b> YES

<b>Trailer.fieldFixedLengths</b> 3,4,6,6

<b>Trailer.fieldNames</b> RecordType,RecordLength,TotalRecords,TotalAmount

<b>Trailer.processFieldNames</b> fromConfiguration

<b>Trailer.keyFieldValue</b> 03

<b>Trailer.lastFieldsOptional</b> YES

If I don't give these parameters then channel will give me errors.I don't know what other parameter to give to create a file.

I had tried the same thing with the following and it worked

<b>Document Name -</b> SampleMessageType

<b>Document Namespace -</b> http://sandeep/xi/bpm_example

<b>Record Structure -</b> Substr,*

<b>Recordset Sequence -</b> Ascending

<b>Key Field Name -</b> Record Type

<b>Key Field Type -</b> String(Case Sensitive)

<b>Substr.fieldFixedLengths</b> 3,4,15,20,15,15,20,10,3,4,15,20,15,15,15,10,6,10,3,4,6,6

<b>Substr.fieldNames</b> RecordType,RecordLength,CompanyName,CompanyAddress,BankName,BankCode,BankAddress,AccountNumber,RecordType,RecordLength,BeneficiaryName,BeneficiaryAddress,BankName,BankCode,BankAddress,AccountNumber,Amount,NoteToPayee,RecordType,RecordLength,TotalRecords,TotalAmount

<b>Substr.processFieldNames</b> fromConfiguration

<b>Substr.keyFieldValue</b> 01

<b>Substr.lastFieldsOptional</b> YES

But the problem here is my mapping has the Header,Item and Trailer as the structure names but he XML created here will be like

<?xml version="1.0" encoding="utf-8" ?>

- <ns:SampleMessageType xmlns:ns="http://sandeep/xi/bpm_example">

- <Recordset>

- <Substr>

<RecordType>21</RecordType>

<RecordLength>22</RecordLength>

<CompanyName>Sandeep</CompanyName>

<CompanyAddress>ASKDJKLASD</CompanyAddress>

<BankName>HDFC Bank</BankName>

<BankCode>12342</BankCode>

<BankAddress>asdasd</BankAddress>

<AccountNumber>123569</AccountNumber>

</Substr>

- <Substr>

<RecordType>02</RecordType>

<RecordLength>22</RecordLength>

<CompanyName>Sagar</CompanyName>

<CompanyAddress>23123</CompanyAddress>

<BankName>ICICI</BankName>

<BankCode>4234</BankCode>

<BankAddress>ASDASD 25463</BankAddress>

<AccountNumber>6 12304</AccountNumber>

<RecordType>AS</RecordType>

<RecordLength>DAsd</RecordLength>

</Substr>

- <Substr>

<RecordType>03</RecordType>

<RecordLength>22 1</RecordLength>

</Substr>

</Recordset>

</ns:SampleMessageType>

In this case my mapping fails

Thanks,

Sandeep

0 Kudos

Hello,

I am not sure of why the empty Payload is created.

I have the following TXT file -

<b>LINE 1</b> 01 22 Sandeep ASKDJKLASD HDFC Bank 12342 asdasd 123569

<b>LINE 2</b> 02 22 Sagar 23123 ICICI 4234 ASDASD 254636 12304 ASDAsdqwe

<b>LIME 3</b> 03 22 1 12304

Ignore 'Lines' above.They are not part of the file.

I have given the following parameters -

Document Name - SampleMessageType

Document Namespace - http://sandeep/xi/bpm_example

Recordset Name - Header,Item,Trailer

Recordset Namespace - http://sandeep/xi/bpm_example

Record Structure - Header,,Item,,Trailer,*

Recordset Sequence - Ascending

Key Field Name - Record Type

Key Field Type - String(Case Sensitive)

Header.fieldFixedLengths 3,4,15,20,15,15,20,10

Header.fieldNames RecordType,RecordLength,CompanyName,CompanyAddress,BankName,BankCode,BankAddress,AccountNumber

Header.processFieldNames fromConfiguration

Header.keyFieldValue 01

Header.lastFieldsOptional YES

Item.fieldFixedLengths 3,4,15,20,15,15,15,10,6,10

Item.fieldNames RecordType,RecordLength,BeneficiaryName,BeneficiaryAddress,BankName,BankCode,BankAddress,AccountNumber,Amount,NoteToPayee

Item.processFieldNames fromConfiguration

Item.keyFieldValue 02

Item.lastFieldsOptional YES

Trailer.fieldFixedLengths 3,4,6,6

Trailer.fieldNames RecordType,RecordLength,TotalRecords,TotalAmount

Trailer.processFieldNames fromConfiguration

Trailer.keyFieldValue 03

Trailer.lastFieldsOptional YES

If I don't give these parameters then channel will give me errors.I don't know what other parameter to give to create a file.

I had tried the same thing with the following and it worked

Document Name - SampleMessageType

Document Namespace - http://sandeep/xi/bpm_example

Record Structure - Substr,*

Recordset Sequence - Ascending

Key Field Name - Record Type

Key Field Type - String(Case Sensitive)

Substr.fieldFixedLengths 3,4,15,20,15,15,20,10,3,4,15,20,15,15,15,10,6,10,3,4,6,6

Substr.fieldNames RecordType,RecordLength,CompanyName,CompanyAddress,BankName,BankCode,BankAddress,AccountNumber,RecordType,RecordLength,BeneficiaryName,BeneficiaryAddress,BankName,BankCode,BankAddress,AccountNumber,Amount,NoteToPayee,RecordType,RecordLength,TotalRecords,TotalAmount

Substr.processFieldNames fromConfiguration

Substr.keyFieldValue 01

Substr.lastFieldsOptional YES

But the problem here is my mapping has the Header,Item and Trailer as the structure names but he XML created here will be like

<?xml version="1.0" encoding="utf-8" ?>

- <ns:SampleMessageType xmlns:ns="http://sandeep/xi/bpm_example">

- <Recordset>

- <Substr>

<RecordType>21</RecordType>

<RecordLength>22</RecordLength>

<CompanyName>Sandeep</CompanyName>

<CompanyAddress>ASKDJKLASD</CompanyAddress>

<BankName>HDFC Bank</BankName>

<BankCode>12342</BankCode>

<BankAddress>asdasd</BankAddress>

<AccountNumber>123569</AccountNumber>

</Substr>

- <Substr>

<RecordType>02</RecordType>

<RecordLength>22</RecordLength>

<CompanyName>Sagar</CompanyName>

<CompanyAddress>23123</CompanyAddress>

<BankName>ICICI</BankName>

<BankCode>4234</BankCode>

<BankAddress>ASDASD 25463</BankAddress>

<AccountNumber>6 12304</AccountNumber>

<RecordType>AS</RecordType>

<RecordLength>DAsd</RecordLength>

</Substr>

- <Substr>

<RecordType>03</RecordType>

<RecordLength>22 1</RecordLength>

</Substr>

</Recordset>

</ns:SampleMessageType>

In this case my mapping fails

Thanks,

Sandeep

Former Member
0 Kudos

Hi sandeep,

try repeating the same thing but delete

Recordset Name - Header,Item,Trailer and the corresponding name space.

parameter from the content conversion.

so the content conversion will be

Document Name - SampleMessageType

Document Namespace - http://sandeep/xi/bpm_example

Record Structure - Header,,Item,,Trailer,*

Recordset Sequence - Ascending

Key Field Name - Record Type

Key Field Type - String(Case Sensitive)

Header.fieldFixedLengths 3,4,15,20,15,15,20,10

Header.fieldNames RecordType,RecordLength,CompanyName,CompanyAddress,BankName,BankCode,BankAddress,AccountNumber

Header.processFieldNames fromConfiguration

Header.keyFieldValue 01

Header.lastFieldsOptional YES

Item.fieldFixedLengths 3,4,15,20,15,15,15,10,6,10

Item.fieldNames RecordType,RecordLength,BeneficiaryName,BeneficiaryAddress,BankName,BankCode,BankAddress,AccountNumber,Amount,NoteToPayee

Item.processFieldNames fromConfiguration

Item.keyFieldValue 02

Item.lastFieldsOptional YES

Trailer.fieldFixedLengths 3,4,6,6

Trailer.fieldNames RecordType,RecordLength,TotalRecords,TotalAmount

Trailer.processFieldNames fromConfiguration

Trailer.keyFieldValue 03

Trailer.lastFieldsOptional YES

regards

jithesh

Former Member
0 Kudos

not sure if this works....but you can give a try

Change field lengths as below for the test purposes...

fieldFixedLengths 3(change it to 2),4(change it to 5),15,20,15,15,20,10

since you have defined key field as 3 characters and may be content conversion is trying to do string comparision ie comparing '01' with '01 '.

Make sure there are no leading spaces at the begining of the file.

Also try changing key field type to integer.

Regards

Anand