on 09-03-2011 8:17 PM
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
> 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
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
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
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
· 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
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
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
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
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
>
> 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
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
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
User | Count |
---|---|
96 | |
11 | |
11 | |
10 | |
9 | |
7 | |
6 | |
5 | |
4 | |
4 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.