Technical Articles
How to send data from ECC to PI using a Consumer Proxy (Web Service)
There could be times when your organization has multiple PI/PO servers for different geographical locations connected to different SAP ECC servers, or they might have acquired a new company which already had another SAP PI/PO middleware into the play (you got the point).
Now, you’re asked to develop a new interface that will cater to all geographic locations integrated with all back-end ECC systems. In those scenarios you have 3 options:
- Consolidate all interfaces into one PI/PO server so that you can integrate other ECC boxes into one central PI/PO System Landscape Directory (SLD) – this is the best option, but also time consuming and may not be suitable for meeting the business timelines.
- Create different types of interfaces – one Proxy type for the ECC systems already integrated with the PI/PO server, another RFC type for the ones not yet integrated. This will create overhead in PI/PO development and maintenance and also to note that RFC is not recommended over Proxy.
- And the last option is the one that I’m going to illustrate in this blog where you’ll have a single Operation Mapping in the Enterprise Service Repository and use the Proxy communication for the integrated ECC systems and Web Service for the non-integrated ECC systems.
Here are the steps you need to follow in the ABAP system to consume the Web Service stood up in the PI/PO system (I’m assuming you’re aware of the steps to create the basic PI/PO interface):
- Configure the ICO in PI and get the WSDL
- Open the WSDL in browser and save in your local disk as a WSDL file
- Go to SE80 > Repository Browser and select the Package option
- Right click on Enterprise Services > Create
- Select Service Consumer
- Select External WSDL/Schema
- Select Local File
- Locate the saved WSDL file
- Add Package, Transport Request and a Prefix
- Click on Complete
- This will create a new Service Consumer. You need to save and activate it.
- The class object will have all the methods that you need to use to send data. But before that you need complete the following configurations in SOAMANAGER (in many companies those are Basis tasks – remember this is a client dependent configuration).
- Select Service Administration > Web Service Configuration
- Search it with the ABAP Class name:
- Select the object and in next screen Create a Logical Port selecting the Manual Configuration option.
- Input a meaningful Port Name and description and don’t forget to select the Logical Port as Default
- Select appropriate Authentication method to login to PI from ECC.
- Input URL Access Path (get it from the WSDL and remove all “amp;”), Access URL (PI server URL without the HTTP:// and w/o the Port#), Port of Access URL (PI Port#).
- Leave the SOAP Protocol as default.
- No input in Identifiable Business Context.
- The operation should come up automatically, you just need to input the highlighted Transport Binding.
- Finish to complete the configuration and make sure it’s in Active state.
- Then display the service and Ping test it.
- Your service is now ready to be consumed. Next you need program it to call the proxy.
- Sample code:
Idea de por que me da este error
SOAP: SRT: Unsupported xstream found: ("HTTP Code 500 : Internal Server Error")
i think this will suffice for my requirement to automatically call/trigger an iflow from sap web GUI ABAP?, can you also make a blog for the next steps, like how will we connect this with iflow?