cancel
Showing results for 
Search instead for 
Did you mean: 

Wrong Payload / mapping error

Former Member
0 Kudos

Hi Experts,

I get an mapping error on one of my interfaces. Below is the payload from the message:

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

<ns:MT_MRO_INVOICE xmlns:ns="http://carlsberg.com/aurora/MRO/invoice">

<ns:MT_MRO_INVOICE xmlns:ns="http://carlsberg.com/aurora/MRO/invoice">

<Header>

<Tag>01</Tag>

<ArchiveId>LE02132</ArchiveId>

<Date>071031</Date>

<Time>154906</Time>

<NumRecs>00005</NumRecs>

<Partnr>MRO</Partnr>

<SapInv>-SAP Invoice Extract</SapInv>

</Header>

<Head>

<Tag>05</Tag>

<SUPNR>A982713</SUPNR>

<LEDCO>PP</LEDCO>

<PONR>4734713</PONR>

<SERNR>311007</SERNR>

<INVDAT>071031</INVDAT>

<GAMOUNT>000000000209002+</GAMOUNT>

<VAT>000000000031128+</VAT>

<TERMCD></TERMCD>

<DUEDAT></DUEDAT>

<MADAT>071031</MADAT>

<VATCDE>STD</VATCDE>

<REFNR>RIVER311007A</REFNR>

<OUTLET></OUTLET>

<BATNR>00311007</BATNR>

</Head>

<Item>

<Tag>06</Tag>

<SUPNR>A982713</SUPNR>

<LEDCO>PP</LEDCO>

<PONR>311007</PONR>

<INVNR>0001</INVNR>

<POLNR>0001</POLNR>

<COSTC>PP5362</COSTC>

<EXPCDE>27262</EXPCDE>

<MATKEY>MRO ITEMMECHAH</MATKEY>

<UOM></UOM>

<DESC></DESC>

<QNTY>000000000010000+</QNTY>

<UPRICE>000000177874000+</UPRICE>

</Item>

</ns:MT_MRO_INVOICE>

<ns:MT_MRO_INVOICE xmlns:ns="http://carlsberg.com/aurora/MRO/invoice">

<Head>

<Tag>05</Tag>

<SUPNR>E980233</SUPNR>

<LEDCO>PP</LEDCO>

<PONR>4734714</PONR>

<SERNR>311007</SERNR>

<INVDAT>071031</INVDAT>

<GAMOUNT>000000000976895+</GAMOUNT>

<VAT>000000000145495+</VAT>

<TERMCD></TERMCD>

<DUEDAT></DUEDAT>

<MADAT>071031</MADAT>

<VATCDE>STD</VATCDE>

<REFNR>RIVER311007B</REFNR>

<OUTLET></OUTLET>

<BATNR>00311007</BATNR>

</Head>

<Item>

<Tag>06</Tag>

<SUPNR>E980233</SUPNR>

<LEDCO>PP</LEDCO>

<PONR>311007</PONR>

<INVNR>0001</INVNR>

<POLNR>0001</POLNR>

<COSTC>PP5362</COSTC>

<EXPCDE>27262</EXPCDE>

<MATKEY>MRO ITEMINSTDN</MATKEY>

<UOM></UOM>

<DESC></DESC>

<QNTY>000000000100000+</QNTY>

<UPRICE>000000054390000+</UPRICE>

</Item>

<Item>

<Tag>06</Tag>

<SUPNR>E980233</SUPNR>

<LEDCO>PP</LEDCO>

<PONR>311007</PONR>

<INVNR>0002</INVNR>

<POLNR>0002</POLNR>

<COSTC>PP5362</COSTC>

<EXPCDE>27262</EXPCDE>

<MATKEY>MRO ITEMINSTAV</MATKEY>

<UOM></UOM>

<DESC></DESC>

<QNTY>000000000050000+</QNTY>

<UPRICE>000000057500000+</UPRICE>

</Item>

</ns:MT_MRO_INVOICE>

</ns:MT_MRO_INVOICE>

I have tried copying the payload to IR and test it but it fails with the fault:

12:18:48 Start of test

Call method execute of the application Java mapping com.sap.xi.tf._MM_MRO_INVOICE_

Cannot produce target element /ns1:FIDCCP01/IDOC. Check xml instance is valid for source xsd and target-field mapping fulfills requirements of target xsd

12:18:48 End of test

If I remove all but the outer namespace so that the payload looks like:

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

<ns:MT_MRO_INVOICE xmlns:ns="http://carlsberg.com/aurora/MRO/invoice">

<Header>

<Tag>01</Tag>

<ArchiveId>LE02132</ArchiveId>

<Date>071031</Date>

<Time>154906</Time>

<NumRecs>00005</NumRecs>

<Partnr>MRO</Partnr>

<SapInv>-SAP Invoice Extract</SapInv>

</Header>

<Head>

<Tag>05</Tag>

<SUPNR>A982713</SUPNR>

<LEDCO>PP</LEDCO>

<PONR>4734713</PONR>

<SERNR>311007</SERNR>

<INVDAT>071031</INVDAT>

<GAMOUNT>000000000209002+</GAMOUNT>

<VAT>000000000031128+</VAT>

<TERMCD></TERMCD>

<DUEDAT></DUEDAT>

<MADAT>071031</MADAT>

<VATCDE>STD</VATCDE>

<REFNR>RIVER311007A</REFNR>

<OUTLET></OUTLET>

<BATNR>00311007</BATNR>

</Head>

<Item>

<Tag>06</Tag>

<SUPNR>A982713</SUPNR>

<LEDCO>PP</LEDCO>

<PONR>311007</PONR>

<INVNR>0001</INVNR>

<POLNR>0001</POLNR>

<COSTC>PP5362</COSTC>

<EXPCDE>27262</EXPCDE>

<MATKEY>MRO ITEMMECHAH</MATKEY>

<UOM></UOM>

<DESC></DESC>

<QNTY>000000000010000+</QNTY>

<UPRICE>000000177874000+</UPRICE>

</Item>

<Head>

<Tag>05</Tag>

<SUPNR>E980233</SUPNR>

<LEDCO>PP</LEDCO>

<PONR>4734714</PONR>

<SERNR>311007</SERNR>

<INVDAT>071031</INVDAT>

<GAMOUNT>000000000976895+</GAMOUNT>

<VAT>000000000145495+</VAT>

<TERMCD></TERMCD>

<DUEDAT></DUEDAT>

<MADAT>071031</MADAT>

<VATCDE>STD</VATCDE>

<REFNR>RIVER311007B</REFNR>

<OUTLET></OUTLET>

<BATNR>00311007</BATNR>

</Head>

<Item>

<Tag>06</Tag>

<SUPNR>E980233</SUPNR>

<LEDCO>PP</LEDCO>

<PONR>311007</PONR>

<INVNR>0001</INVNR>

<POLNR>0001</POLNR>

<COSTC>PP5362</COSTC>

<EXPCDE>27262</EXPCDE>

<MATKEY>MRO ITEMINSTDN</MATKEY>

<UOM></UOM>

<DESC></DESC>

<QNTY>000000000100000+</QNTY>

<UPRICE>000000054390000+</UPRICE>

</Item>

<Item>

<Tag>06</Tag>

<SUPNR>E980233</SUPNR>

<LEDCO>PP</LEDCO>

<PONR>311007</PONR>

<INVNR>0002</INVNR>

<POLNR>0002</POLNR>

<COSTC>PP5362</COSTC>

<EXPCDE>27262</EXPCDE>

<MATKEY>MRO ITEMINSTAV</MATKEY>

<UOM></UOM>

<DESC></DESC>

<QNTY>000000000050000+</QNTY>

<UPRICE>000000057500000+</UPRICE>

</Item>

</ns:MT_MRO_INVOICE>

It works, but can any one tell me why it puts the namespaces into the message or how I can remove the namespaces so that my message will go trought?

Thanks in advanced

Accepted Solutions (1)

Accepted Solutions (1)

Former Member
0 Kudos

Hi Jesper,

Could you please let us know how you get the payload with the extra namespaces?

Is there another mapping that executes before you continue with this mapping?

If yes, please check the output of the previous mapping.

There might be a mapping error there, which generates such erroneous payload.

Regards,

Smitha.

Former Member
0 Kudos

The interface is very "simple" it reads a file via the file adapter using file content conversion and maps it to an idoc and sends the idoc via the idoc adapter.

There is only one mapping on the payload.

Former Member
0 Kudos

Hi,

Could you please try making the Recordset name as Header instead of Head and Recordset sequence as ascending?

Regards,

Smitha.

Former Member
0 Kudos

Currently I have the setting:

Recordset Name: MT_MRO_INVOICE

Recordset Structure: Header,1,Details,,Head,1,Item,

Recordset Sequence: Asending

Former Member
0 Kudos

Jesper,

The recordset name is usually, a tag that is a parent for the tags Header,Details,Head,Item.

Can you please try inserting a tag above the nodes you have mentioned.(This is an optional parameter and can be left blank too. This way no changes to the message type is required.)

Also, the document name is MT_MRO_INVOICE.

Regards,

Smitha.

Former Member
0 Kudos

Hi ,

Are you using keyField in ur FCC ?

Not sure if file adapter will ever create that kind of XML .. ie with two namespace.

Regards,

Sumit

stefan_grube
Active Contributor
0 Kudos

Use the parameter "ignoreRecordsetName"

do not apply a namespace for recordset namespace.

Regards

Stefan

Former Member
0 Kudos

I had used the ignoreRecordSet parameter but I had spelled it IgnoreRecordSet. Really hard to notice!

Thanks for the help

Answers (1)

Answers (1)

Former Member
0 Kudos

Hi Jesper,

Well this couldn't be a best solution for your problem, but still you can try it.

Do one thing, <b>delete the namespace under XML Namespace from your message type.</b>

Regards,

Sarvesh