cancel
Showing results for 
Search instead for 
Did you mean: 

IDOC Error - Copy Sender from Payload: Sender Is Missing in Payload

Former Member
0 Kudos

Hi,

I have following scenario.

SOAP adapter ---> PI -


> IDOC Receiver -


> ECC

THe IDOC has a required node that is disabled and IDOC revicer communication channel has checkd following options.

Apply control record value from pay load

Take Sender from Payload

The soap message is mapped to IDOC structure. While testing I received following error.

<SAP:Code area="IDOC_ADAPTER">ATTRIBUTE_IDOC_METADATA</SAP:Code>

<SAP:P1>Copy Sender from Payload: Sender Is Missing in Payload</SAP:P1>

<SAP:P2 />

<SAP:P3 />

<SAP:P4 />

<SAP:AdditionalText />

<SAP:Stack>Error: Copy Sender from Payload: Sender Is Missing in Payload</SAP:Stack>

If you have seen similar error and please let me know how to trobleshoot. I appreciate your help.

Thank you,

Balaji

Accepted Solutions (1)

Accepted Solutions (1)

Shabarish_Nair
Active Contributor
0 Kudos

> Apply control record value from pay load

> Take Sender from Payload

all you need to do is to make sure that the EDIDC segment is mapped with the required values in case of using the above option

http://help.sap.com/saphelp_nw04/helpdata/en/13/95244269625633e10000000a155106/frameset.htm

Former Member
0 Kudos

Sarkar, Vijay and Vyas,

Thank you for the response. I can enable EDI_DC40 segment and map required following values.

· SNDPRN

· SNDPRT

· SNDPFC

· RCVPRN

· RCVPRT

However as we move transports to different environemnts the above values changes and I can't hard code in the mapping.

My questions is how can I map these values such that when transport moves across different environemtns the mapping valaues are still good. Please let me know.

Thank you,

Balaji

rajasekhar_reddy14
Active Contributor
0 Kudos

Thank you for the response. I can enable EDI_DC40 segment and map required following values.

· SNDPRN

· SNDPRT

· SNDPFC

· RCVPRN

· RCVPRT

However as we move transports to different environemnts the above values changes and I can't hard code in the mapping.

My questions is how can I map these values such that when transport moves across different environemtns the mapping valaues are still good. Please let me know.

Dont enable EDI_DC40 and dont select take sender ,receiver from pay load option,apply control record values from pay load.

this case IDoc adapter reads values from configuration time andno problem after trasporting to quality or prod.

Regards,

Raj

rajasekhar_reddy14
Active Contributor
0 Kudos

· SNDPRN

· SNDPRT

· SNDPFC

· RCVPRN

· RCVPRT

However as we move transports to different environemnts the above values changes and I can't hard code in the mapping.

My questions is how can I map these values such that when transport moves across different environemtns the mapping valaues are still good. Please let me know.

You have to wite UDF in mapping,first you have to check environment then pass value to SNDPRN.

use System.getProperty() to read PI environment.

Regards,

Raj

former_member854360
Active Contributor
0 Kudos

Hi,

If you are in Pi 7.1 then you can Use Parameterized mapping

OR

Maintain Valumapping

OR

UDF

Former Member
0 Kudos

You can use the sender and receiver node functions along with a fix value\value map or UDF to avoid hard coding.

The sender and receiver will tell you which environment it is, accordingly you can select the values in UDF or value mapping.

Former Member
0 Kudos

hi,

Have you maintained Logical system name in SLD for the Sender Business System?

regards, Ani

Answers (3)

Answers (3)

Former Member
0 Kudos

hi,

Standard practice to do this is to maintain Logical System name in SLD for the sender system.

And check control record from payload.

regards,

Anirudh

Former Member
0 Kudos

Hi,

Since option "Apply control record value from pay load" is checked in your receiver comm channel, in your message mapping, enable the EDI_DC40 segment and populate alll mandatory fields there, including sender, receiver, Logical system and idoc details.

Also, when transporting to higher environments, bear in mind that the sender and receiver will change so do not hard code the values.

Regards

rajasekhar_reddy14
Active Contributor
0 Kudos

>

> SOAP adapter ---> PI -


> IDOC Receiver -


> ECC

>

> THe IDOC has a required node that is disabled and IDOC revicer communication channel has checkd following options.

>

> Apply control record value from pay load

> Take Sender from Payload

>

when even you select option above options in idoc communication channel,it will read control record information from payload,

i.e what ever the values you mapped in mapping(for edi_dc40)those values will appear.

but this is not best practice,to fix your issue -


disable edi_dc40 and dont select Apply control record value from pay load Take Sender from Payload.

this case it will read it from configuration time.

Regards,

raj

Former Member
0 Kudos

Raj,

Thank yo for the response. I have already disabled the EDI_DC40 in the mapping. Also I changed Receiver IDOC communication channel configuration as per suggetion (uncheck "Apply control record values from payload" option and check "take payload from sender" option). But still running into the same error in the call adapter.

<SAP:Error SOAP:mustUnderstand="" xmlns:SAP="http://sap.com/xi/XI/Message/30" xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/">

<SAP:Category>XIAdapter</SAP:Category>

<SAP:Code area="IDOC_ADAPTER">ATTRIBUTE_IDOC_METADATA</SAP:Code>

<SAP:P1>Copy Sender from Payload: Sender Is Missing in Payload</SAP:P1>

<SAP:P2 />

<SAP:P3 />

<SAP:P4 />

<SAP:AdditionalText />

<SAP:Stack>Error: Copy Sender from Payload: Sender Is Missing in Payload</SAP:Stack>

<SAP:Retry>M</SAP:Retry>

</SAP:Error>

Thank you,

Balaji