Hci Using Eclipse WSDL Editor For Soap Based Integration
Hci Using Eclipse WSDL Editor For Soap Based Integration
For those who are used to PI/PRO development, this is normally achieved by creating a sender Service
Interface using Data Type (and Message Type) defined with the built-in Data Type Editor.
However, the current HCI development tool on Eclipse does not come with an easy-to-use Data Type Editor.
For those who have a working PI/PRO installation, Service Interface definitions can be imported from PI/PRO.
However, those who do not have PI/PRO, the WSDL for the sender will have to be manually created using
other XML tools like XMLSpy, Oxygen, etc.
Fortunately, Eclipse also comes with it's own native WSDL Editor. In this blog, I will share the steps on how the
WSDL Editor can be used to generate a WSDL to be used in the sender SOAP channel of an HCI iFlow.
Component Details
Below are component versions of the Eclipse plugins that still do no have a native Data Type Editor. Hopefully
SAP will port NWDS's ESR Data Type Editor to a future version of HCI.
Eclipse Plugin Versions: Adapter 2.11.1, Designer 2.11.1, Operations 2.10.0
Request
Segment/Field Name Occurrence
OrderKeys 1 - unbounded
> orderNo 1
> orderDate 0-1
Response
Segment/Field Name Occurrence
OrderDetails 0 - unbounded
> OrderName 1
> OrderID 1
> ItemCount 1
Select WSDL File from the wizard, and provide a name for the file.
In the options screen, specify additionally the namespace and prefix, and accept the rest of the default values.
A skeleton WSDL file will be created and it will be opened in the WSDL Editor's Design view as shown below.
Click the arrow next the to input parameter. An inline schema editor will be opened. By default, the input
parameter is just a single string field named in.
Change the properties of the input parameter as shown below. For Type, select New, to create an inline
Complex Type using any arbitrary name (Key is used in the example).
The input parameter will be updated as shown below. Basically it means that the input parameter is of Key
complex type which can occur 1 or more times.
Next we proceed to define the structure for the Key complex type. In order to do this, click the button at the top
left Show schema index view.
An overview of the schema with all elements, types will be displayed. To edit the complex type Key, double
click on it.
It will bring us to the definition of Key. Here we can add additional elements to Key by right-clicking and
selecting Add Element.
Repeat for the second field so that the final definition of Key is as shown below.
For the final outcome, the output parameter is named OrderDetails of complex type OrderDetail and occurs 0
or more times.
Similarly, the OrderDetail complex type is defined as follows with three mandatory fields.
After the iFlow development is completed and deployed. The actual WSDL for the HCI web service can be
downloaded from the tenant. Select the IFLMAP node from the Node Explorer. Switch to Services in the
Properties tab. Select the corresponding Endpoint of the HCI iFlow, right-click and select Download WSDL >
Standard.
This final WSDL that is downloaded will be very similar to the WSDL created for the sender channel, except it
will contain the endpoint to the service on the HCI tenant.
Additional Info
The WSDL Editor can be also used to create the WSDL file for asynchronous interfaces. For these, just delete
the output parameter from the skeleton WSDL created by the wizard.
Conclusion
As shown above, we can utilize Eclipse's built in WSDL Editor to assist us in defining WSDL files for SOAP
based interfaces. It is relatively easy to use, and more importantly free compared to other license based XML
editors like XMLSpy or Oxygen. We can also work with it within the same development environment for HCI
iFlows without needing to launch another external tool.
Ideally it would be great if SAP ports the NWDS ESR Data Type Editor to HCI, but in the meantime we can at
least rely on Eclipse's editor.
Reference
Introduction to the WSDL Editor - Eclipsepedia
962 Views Tags: eclipse, soap, wsdl, sap_hana_cloud_integration, sap_hci, hci, hana_cloud_integration
Andreea Mutascu
23 Feb, 2016 2:31 PM
hi Eng Swee Yeoh,
I have created a wsdl as you suggested, imported it into an asynchronous Consumer Proxy in ERP and set up
an integration flow to send data from ERP into HCI.
But when I call the interface to send data message arrives in HCI with the following error: Inbound processing
in endpoint at XXX failed with message "Fault: Inconsistent QualityOfService set in URL parameters".
HCI
settings:
ERP Logical port Messaging
settings: Do you
have any idea which settings should I add in order to ensure the Quality of Service?Thank you in advance!Best
regards,Andreea
i have a test2.wsdl which is ok for service provider wizard, as it is having both request and response for
synchronous interface.
i have a test3.wsdl which is not ok for service provider wizard, in which i have kept only request message for
asynchrounous interface.
what is missing in test3.wsdl, because of which it is giving - Exception occurred in library handler - Exception of
class CX_PROXY_GEN_ERROR - in enterprise service create wizard in ecc system.
Unfortunately, I don't have developer access to an ECC system to try this out. I'd suggest you try generating
the service provider using some other WSDL file, and if it is successful, then to compare the structure to see
what is missing.
Rgds
Eng Swee
so how to generate asynchronous service interface WSDL to generate a service provider asynchronous web-
service in ECC system? any ideas, thanks.
Rgds
Eng Swee
Naveen S
29 Jan, 2016 6:05 AM
hi Eng Swee Yeoh,
thanks for useful detail blog.
Regards
Naveen S
stewart till
29 Jan, 2016 6:01 AM
hi Eng Swee Yeoh,
thanks for the detailed blog.
synchronous interface wsdl is getting created following your blog.
but how to create asynchronous interface, which may act as service provider in ECC system. basically the
idea is to create an asynchronous interface, get its wsdl file, use it in HCI iflow on target system and use this
wsdl file for service provider creation in ecc system using se80 and external wsdl. i tried many trial runs,but
somehow the wsdl does not get properly created, which ecc system can use when we try to create a service
provider web-service in se80 and then later configure it through soamanager.
Tahir Öz
5 Jan, 2016 9:47 PM
Useful document and simple explanation, thanks Eng Swee Yeoh
Regards,
Tahir