cancel
Showing results for 
Search instead for 
Did you mean: 

SAP PI 7.5 IDOC_ERROR_PARSE_FAILURE for EDI_DC40 : BUPA_INBOUND_MAIN_SAVE_M09

Former Member
0 Kudos

Hi,

I'm trying to process message for idoc SAVE_M.BUPA_INBOUND_MAIN_SAVE_M09 with below block:

<EDI_DC40 SEGMENT="1"> <TABNAM>EDI_DC40</TABNAM> <MANDT>000</MANDT> <DOCNUM>132</DOCNUM> <DIRECT>2</DIRECT> <IDOCTYP>BUPAINBOUNDMAINSAVEM09</IDOCTYP> <MESTYP>BUPA_INBOUND_MAIN_SAVE_M</MESTYP> <SNDPOR>Cust</SNDPOR> <SNDPRT>LI</SNDPRT> <SNDPRN>4260266310</SNDPRN> <RCVPOR>SAP</RCVPOR> <RCVPRN>HEDCLNT100</RCVPRN> <CREDAT>20170505</CREDAT> <CRETIM>222222</CRETIM> </EDI_DC40>

But I've got below error.

Error:

Error before sending due to idoc parsing error: (7) IDOC_ERROR_PARSE_FAILURE: IDoc type within the EDI_DC40 control record segment does not match the IDoc-XML root tag <BUPA_INBOUND_MAIN_SAVE_M09>:
state=READING_ENDTAG, charPosition=392, lineNumber=1, columnNumber=393

What I've already tried:

1. Disable EDI_DC40 block at all

2. Disable all fields, all fields except mandatory fields, all fields except RCVPRN,RCVRPT and SNDPRN, SNDRPT

3. Enable all fields and mapped them with empty or business valid values

Could you help me please, what can be reason for such kind of error (internal mapping test passed successfully)

Best regards, Andrey

Accepted Solutions (0)

Answers (2)

Answers (2)

iker_espinosa
Participant
0 Kudos

The solution is not to override idoc control headers. That works but the real problem is that you have created a Service Interface that points to the idoc and you should not have done that.

You have to use idoc directly as Receiver Service Interface.

The "1862655" note shows the naming convention for the Receiver Service Interface:

<MSGTYP>.<IDOCTYP>.<CIMTYP>

This must be this way.

0 Kudos

Hey Andrey,

Late response but I stumbled across your question while having the same problem in PI 7.5. Try and do an XPI_Inspector while triggering the IDOC_AEE. You'll maybe notice too that the SND parameters are removed and replaced with a null before going to the adapter.

Apparently there is stricter record control checking, even a different namespace can cause this -->

https://launchpad.support.sap.com/#/notes/0001862655

My solution which seems to work is to override the control headers in the receiver communication channel. This implies you'll have to make a separate Idoc receiver for each inbound type

Former Member
0 Kudos

Hello. Are you able to share an example of how the header values must be overridden? Much appreciated.

0 Kudos

Hey,

Under the 'advanced' tab of your IDOC receiver channel is a checkbox to override control headers.