cancel
Showing results for 
Search instead for 
Did you mean: 

How to receive IDOCs in PI from 3rd party SAP system via HTTP

Former Member
0 Kudos

Hi Experts,


I want to receive an IDOC in PI from an external SAP system. They are planning to send the IDOC via HTTP by creating an RFC destination with connection type G. They are asking me the URL now. I gave them the HTTP client URL but it doesn't seem to be suitable. I have already done all the configurations in both ECC system and PI system except the Sender Communication channel and Sender Agreement. Please help me to resolve this issue.


Thanks.

Accepted Solutions (0)

Answers (1)

Answers (1)

Former Member
0 Kudos

Hi,

If you want to receive a message through http in PI ()before 7.3, after, you have to think a little more about it...), no need of sender aggreement or communication channel sender.

Sender system has to use an url which will be of tyhat form :

http://<Hots>:<port>/sap/xi/adapter_plain?service=<SenderSystemName>&
namespace=<ServiceInterfaceNamespace>&interface=<ServiceInterfaceName>&qos=<QualityOfService(EO,BS,EOIO)>

Also, check in SICF transaction that sap --> xi --> adapter_plain service is activated.

Regards,

Guislain.

Former Member
0 Kudos

Hi Guislain,

Thank you for the reply. As I mentioned in my post I have given them the HTTP client URL which is almost the same. Only difference is that it includes user name and password as well. Can I remove the user name and password from the URL and give separately? Also can this URL be given in SM59(In Target host and Path prefix) in their SAP system?

sap --> xi --> adapter_plain has already been activated in SICF.

Thanks.

Former Member
0 Kudos

For the user name and password, no. That will be much more difficult.

For the SM59, in theory, yes.

But, you must code special characters such as forward slash (/), hyphen (-), period (.), or colon (:) with escape characters (for example, %2F for /, %2D for -, %2E for . , and %3A for : ).

Regards,

Guislain.

ps : As far as I understood, this is communication between ECC and PI through http using an Idoc, right? So, why don't you go Idoc protocol or abap proxy protocol ?

Former Member
0 Kudos

I have a similar scenario.

He wants to receive an IDOC from a SAP system that is not in his SLD.

If he can't define them in his SLD (because the 3rd party and his SAP ECC system has the same SID for example) - he must use the HTTP method.

About the proxy - it's a shame using a proxy when you have a standard IDOC ready...

and if the 3rd party doesn't have a PI - it's even more complicated.

By the way -  the solution using an H type RFC connection in the 3rd party works alright (:

Regards,

Imanuel Rahamim.

Former Member
0 Kudos

Hi Guislain,

This is for the communication between an external SAP system(3rd party) and our PI system. That system is outside of our network and as per their policy they can use only HTTPS. Outbound from our side is okay because we have sent the IDOC to an URL they gave us. They have web dispatcher to receive. But for outbound from their end, they directly send from their SAP system. In this case only I am struggling to receive. Hope it clears.

PS: Our 3rd party doesn't have PI system.

Thanks.

Former Member
0 Kudos

Hi Imanuel,

Thanks for your reply. Could you elaborate the steps for H type RFC connection? Does the above mentioned URL work for this?

Thanks.

Former Member
0 Kudos

Yes the URL seems about right.

Tell them to ignore the "query string not allowed" when inserting the

/sap/xi/adapter_plain?service=<SenderSystemName>&

namespace=<ServiceInterfaceNamespace>&interface=<ServiceInterfaceName>&qos=<QualityOfService(EO,BS,EOIO)> part in the SM59 connection by just pressing "enter".

They will need to define an XML HTTP port in WE21 with Content Type = Text/XML and HTTP Version = version 1.0

and use it in WE20.

That should be all.

Former Member
0 Kudos

OK, so try what has been proposed by Imanuel and from a G to an H type destination. But pay also attention to what I have written about special char.

Regards,

Guislain.