cancel
Showing results for 
Search instead for 
Did you mean: 

What is the use of a proxy ?

ajeyagv
Participant
0 Kudos

I am a beginner in SAP PI and I am trying to understand the concept of Proxy.

I read the definition of Proxies as " they are executable interfaces that convert non-language specifics implementations into language specifics."

To a beginner like me (or only me) this is really hard to understand what exactly it does. Does it convert the data types and the message types that we defined in ESR into WSDL language entities ? I thought that conversion of such entities into WSDL entities happen in every scenarios. If not, shouldn't every scenario have proxies instead of interfaces ? Where exactly do we use proxies ? Give some real life example on this. And please please, explain all these in laymen terms. I'm still learning.

Accepted Solutions (1)

Accepted Solutions (1)

Former Member

Hi Ajeya,

To connect with SAP systems we will use three types of connections.

--> Idoc (We will use If we have standard structure/ idoc is available in ECC end)

--> Proxy (If large amount of records needs to transfer)

--> RFC (If WAS < 6.2 we use RFC other wise will go for proxy only)

So take one example from SAP data is coming and needs to transfer via XI, if standard structure is there means we will use idoc adapter, by using idoc we can trace the idoc status easily by using SAP standard transactions.

As indrajit said if large amount of records needs to syndicate from SAP to other systems via XI, we will go for proxy only.And whats proxy will do?? in ECC system we will write ABAP code in SPROXY transaction, by using queries we will select data from ECC and by using methods we will pass the values to XI (as XI data type structure and SAP table structure should be same).

So we will use proxy to connect and send data from SAP ECC to XI system with out sender communication channel.Performance will be more if we use proxy.

Hope this information is helpful.

Regards,

Neelima.

ajeyagv
Participant
0 Kudos

Thanks Neelima. That helped a bit. But even for IDocs, we don't need to create sender channels right ? Because, they will be in ABAP stack. So, doesn't both proxy and IDoc have the same advantage here ? Is it that proxies are generally programs ?

Former Member
0 Kudos

Yes, In idocs no need of sender communication channel because both resides in ABAP stack, we will use RFC destination to connect ECC and XI system and in tRFC in by calling standard program in background SAP ECC system will connect to XI.

doesn't both proxy and IDoc have the same advantage here ?

Based on the customer requirement we will choose adapters. Both are having advantages and disadvantages. For example if you use idoc from beginning to end you can trace the status but in proxy we can not trace the status, In performance wise proxy is faster compare to idoc.

Is it that proxies are generally programs ?

Not exactly, Proxy is just object, it is used to parse the XML to receiver.

previously i just explained one example (get records from ECC to PI by using abap proxy)

For more details on proxy use this link

Proxy Generation (SAP Library - SAP Exchange Infrastructure)

Regards,

Neelima.

Answers (5)

Answers (5)

Former Member
0 Kudos

Hi,

In case of ABAP proxies, the interface is mapped in the ESR in the form of service interfaces as XML schemas.

A connected system say ECC imports this interface info and uses it to generate ABAP object which contains a method whose defination matches the defn of message interface.

thanks

Vijay

ajeyagv
Participant
0 Kudos

Thanks Neelima for the answers. They were a lot helpful.

iaki_vila
Active Contributor
0 Kudos

Hi Ajeya,

PI Service interface is the point of communication of PI, service interface could be seen like WSDL ABAP proxy takes Service Interface to construct ABAP classes to communicate, like it could take an external WSDL without PI.

The "executable interface" definition  for me it's because the proxy is the communication point of the ECC (like service interface), also it can be executed directly form ABAP program (or sproxy transaction) and during ABAP proxy runtime the ABAP classes will be converted  to a SOAP-XML. PI service interface is a point of communication, inside there is not any conversion and it isn't executable itself.

Regards.

Former Member
0 Kudos

Hi Ajeya

Proxies are mainly used when the size of the input data is huge. For example suppose in ECC we have a table where we have 1 million records and we need to send this whole data to a third party system using PI.

In these case we will create an structure in PI which will contain the structure of the table records.

Then we will have service interface which will use the structure we have created. Once we have the service interface , we need to create the proxy structure in ECC using transaction SPROXY.

So in ECC we will write a program which will select all the 1 million rows using select query, then the program will call the proxy structure and sends the whole data to the integration engine of PI.

We do not need to create a sender communication channel for sending the data to PI.

iaki_vila
Active Contributor
0 Kudos

Hi Indrajit,

May be im wrong, but if the amount of data is huge i don't like to use a proxy if it isn't necessary because it could affect to PI performance to work with huge XMLs, if the receiver endpoint can work with files i'd rather to transfer the file without ESR development. Perhaps in asynchronous scenarios with PI queues the performance it will not affect so much, what do you think?

Regards.

ajeyagv
Participant
0 Kudos

Hi Indrajit,

My question is how exactly is it different from a normal service interface ? The definition of proxy is that it is an executable interface. What exactly happens and how exactly the proxies are executed ? I just need the basic differences between a service interface and proxy.

Former Member
0 Kudos

Hello Ajeya,

they are two different objects. A Service Interface is an abstract definition of an interface. An (ABAP) proxy is a representation of that interface in another (ABAP) system. Technically, this includes generation of ABAP structures and a Simple Transformation to convert ABAP into XML. You can then have client proxies and server proxies. Client proxies are called from the backend logic while server proxies need to be implemented and usually call some predefined background logic like BAPIs.

Hope that helps.

Regards,

Jörg

iaki_vila
Active Contributor
0 Kudos

Hi Ajeya,

When you want to connect a SAP ECC with SAP PI you have several ways to do it. One of this is to use proxies, proxy convert ABAP classes in a SOAP XML  that SAP PI can understand (or another system with SOAP capabilities). Similar issue can be done with java-proxy if you are using a SAP java tool.

Proxy classes, the abap classes which make that conversion, will be generated automatically from ESR service interface or introducing a WSDL. Then you could check that the message type from ESR service interface or the WSDL have their corresponding classes in the abap proxy.

Regards.

ajeyagv
Participant
0 Kudos

Hi Inaki, Thanks for the quick reply.

Do you mean to say that Proxies convert ABAP classes that are present in a SOAP XML document into a format that the receiver can understand ? Do SOAP XML document always have ABAP classes ? If not, then what are the circumstances wherein the ABAP classes will be present in a SOAP XML document ? Please do answer.