on 12-04-2013 11:00 AM
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.
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.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
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.
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
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Thanks Neelima for the answers. They were a lot helpful.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
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.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
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.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
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.
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
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.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
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.
User | Count |
---|---|
84 | |
25 | |
12 | |
9 | |
6 | |
6 | |
5 | |
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.