cancel
Showing results for 
Search instead for 
Did you mean: 

party-based IDOC from external SAP sender

Former Member
0 Kudos

Hello experts.

I have PI 7.0

I have a scenario where I receive an IDOC from an external SAP system - that has SID=PRD and client=400

I also have an SAP system in my landscape with SID=PRD and client=400.

when I tried to define a service and edit it's adapter specific identifiers - i received the following error:

Check Result for Object EXT_SRV

SAP system ID PRD and client 400 already exist in service | PRD400

I understood that the PI will not be able to identify the sender if an it will receive an IDOC with SNDPRN=PRD400

When trying to figure out a way to overcome this and be able to receive the IDOC I came across the term:

party-based communication. I understood that I should define a party an in it a service for the external SAP system.

can some one please show me a detailed step by step example of such scenario?

All I found was this: [Java IDoc Adapter Partner Conversion |http://help.sap.com/saphelp_nw73/helpdata/en/7b/ebc8b9e34b434d9f3e80ef6776d77a/content.htm] and it is only valid for PI 7.3

Thank you very much.

Accepted Solutions (0)

Answers (2)

Answers (2)

anupam_ghosh2
Active Contributor
0 Kudos

Hi ,

In idoc communication few fields play a vital role SNDPRN,SNDPRT,RCVPRN,RCVPRT,SNDPOR and RCVPOR in EDI_DC40 segment. These fields actually identify the sender and receiver systems and ports.

Now in your case as I understood that a new sender SAP system is sending the same idoc to PI server along with an existing one. In this case you need to alter SNDPRN value to a new value, when you are sending the idoc. All other values will retain same values for same idoc (basic type and message type). In ID add a new party in object list with the new SNDPRN value.

In the ID scenario create a copy of each entry in interface determination,receiver determination,sender agreement and receiver agreement. In each of the copy add the new sender/receiver party information SNDPRN value.

This should take care of your problem. No need to do any changes in IR as IR will be common for both the senders, what differs will be the ID. PI server will run different instances of the scenario for different SNDPRN value.

Finally one small request, please kindly if possible close down your threads, in case you got proper and correct solutions to your questions. I noted you closed only one of last five threads you have opened. If you close threads after a solution has worked, then forum users become sure that the solution has worked for your case and therefore is correct.

Regards

Anupam

Former Member
0 Kudos

Hello.

The problem is that when using standard IDOC sending - you cannot alter SNDPRN before it reaches the PI. otherwise everything was much more simple. so this is not a valid solution.

I found [this|http://www.sdn.sap.com/irj/scn/go/portal/prtroot/docs/library/uuid/cdded790-0201-0010-6db8-beb9bb2b2660?QuickLink=index&overridelayout=true] and I'm checking it out right now... hoping it will solve this matter.

Still don't know how to send an IDOC as a customer or vendor yet...

about the rest of my threads - I'll take care of it (:

I wanted to get more opinions on those matters...

anupam_ghosh2
Active Contributor
0 Kudos

Hi ,

We had similar situation few months ago. The sender SAP-ISU system created a new SNDPRN value and reconfigured ports. Thus in PI we added party and the problem was resolved.

Apologies, if I have hurt you by request for closing threads. Actually I found many times there is no response from members for a long time. When I look for solutions for an old problem ,I find threads have not been closed , with closing comments hence I cannot be sure if the soultion is ok or not. I did not intend to hurt you anyways.

Regards

Anupam

Former Member
0 Kudos

It is ok. I should have marked them "closed but not answered" (:

about your scenario: "The sender SAP-ISU system created a new SNDPRN value and reconfigured ports"

how can this be done? I would like to test it in my own SAP ECC system - what changes do I need to make in order that the IDOC will be sent with different SNDPRN, SNDPRT or SNDPOR?

Thanks for your help,

Imanuel.

anupam_ghosh2
Active Contributor
0 Kudos

Hi,

"what changes do I need to make in order that the IDOC will be sent with different SNDPRN, SNDPRT or SNDPOR?"

answer) go to we20 transcation

create two new entries .The entries should be cretaed in same partner type as that of pre-existing idoc. one of the enstries will be with new SNDPRN value as per your choice. Do not fill anything in outbound or inbound parameters list.

Now create another entry in the same partner type this time you provide a new RCVPRN name. Here in the outbound /inbound parameters list add idoc message type you want to send/receive. Now do changes in SAP-PI as per my earlier post. Now copy old sent idoc using we19 transcation in sender SAP system. Alter the value of "partner no" of EDIDC_DC segement with new value of SNDPRN and send the idoc.

Hope this solves your problem.

regards

Anupam

Former Member
0 Kudos

Hello.

That is a great solution for manual IDOC sending with different values.

But I must use the automatic IDOC sending with different values.

From what I checked, we use MASTER_IDOC_DISTRIBUTE to generate and send IDOCS, and it has (HARD CODED) that the SNDPOR must be SAP+SID

It seems I have to use another code for sending IDOCs if I want to accomplish changing the SNDPOR...

If anyone knows a more standard method of doing so, it will be great to hear.

Thank you for trying to assist me.

Former Member
0 Kudos

Got a great solution from a college of mine.

I can use port (WE21) of type XML HTTP

I looked here: [multiple IDOCS in one XI message |http://www.sdn.sap.com/irj/scn/go/portal/prtroot/docs/library/uuid/30ea2fdf-f047-2a10-d3a2-955a634bde6b?QuickLink=index&overridelayout=true]

and saw that I can use this path:

/sap/xi/adapter_plain?namespace=<your namespace>&interface=<IDoc_Type>&service=<Sender System>&qos=EO

and then the IDOC will reach my XI system with any combination of service&interface&namespace I want.

need to be careful with security issues (use assigned users) but it is a good solution for the problem.

Thanks once more for trying to help.

Former Member
0 Kudos
Former Member
0 Kudos

First of all - thank you very much. this is a very detailed instruction guide.

The problem is that the pdf describes a file -> XI -> IDOC scenario, and I need this scenario:

IDOC -> XI -> file

I guess the configuration should be similar.

I guess that the scheme should be the same: ALE#KU

how will I determine the agency and name? agency = SAPPRD ?

the name should be the number of the customer where? in my system? in their system?

Also - how will they send the IDOC with SNDPRT=KU insetad of LS ?