Create a new iFlow in SAP HANA Cloud Integration (HCI) for Integrating SAP ERP with SAP Cloud for Customer
Introduction
This blog highlights how to create a new iFlow using SAP HCI for integrating product material through asynchronous web service.
Scenario
Product Replication from SAP ERP to SAP Cloud for Customer using pass through asynchronous web service via HCI.
Pre-requisites
· SOAP UI
· Eclipse with HCI plug-ins
· C4C Tenant ID and access to HCI
Procedure:
Step 1: Download WSDL from SAP Cloud for Customer
Procedure
- Go to Administrator work center -> Communication Arrangements.
- Select the Communication Arrangement you want to use. In this example we are going to use Communication Arrangement “Product Replication with Sales Data from External System”.
- Click Download WSDL to save the .wsdl file on the local drive.
- Open Eclipse
- Click on Window->Open Perspective->Other->Integration Designer.
- In the Integration Designer perspective click on “File->New->Project”.
- In the New Project popup choose “Integration Project”. Click Next.
- In the New Integration Project screen type a Project Name. e.g. com.custom.scenarios.erp2cod.product.load
- Choose Project Type as “Integration Flow”. Click Next.
- Specify the integration flow name. e.g. erp2cod_product_load.
- Choose “Point to Point Channel” pattern to create an integration flow.
- Click Finish.
Step 3: Import the WSDL into the Eclipse Project
Procedure
- In the Integration Designer perspective, Go to the “Project Explorer” tab and import the WSDL saved previously on your local desktop by selecting the folder src.main.resources.wsdl. Right click and select Import.
- Select File System and click on Next.
- Enter the path from where the WSDL needs to be imported and click Finish.
Step 4: Configure the Basic Authentication
Procedure
- Configure Basic authentication as authentication method by doing the following:
a. Select the tab “Deployed Artifacts”.
c. Click Deploy and Choose “Basic Authentication“ from Deploy Artifacts pop up.
d. Click Next.
e. For C4C User you will need the C4C login details. The C4C login can be found in the Product inbound communication arrangement. Select View All and Technical data. Copy the user ID from the communication arrangement and update the password.
f. Click Finish.
g. Ensure you see your credentials in Deployed Artifacts. You will need to refresh before you can see your credentials.
Step 5: Configure the Sender and Receiver Channels
Procedure
- In the Integration Designer perspective open erp2cod_product_load.iflw iFlow by clicking on the .iflw file in the *.integrationflow package of the project.
- Select the sender system i.e. ERP in the graphical editor and switch the radio button to “Basic Authentication”.
- Double click the Sender Channel SOAP for ERP and go to Adapter Specific tab.
- Specify an Externalized Parameter in the Address for the relative endpoint address on which HCI listens to the incoming request from. Type a parameter name within double curly braces e.g. {{ERP_Address}}.
- Optional: Specify an Externalized Parameter in the URL to WSDL for the WS provider endpoint. Type a parameter name within double curly braces e.g. {{ERP_soapWsdlURL}}.
6. Double click the Receiver Channel SOAP for COD and go to Adapter Specific tab.
7. Specify an Externalized Parameter in the Address for the target URL of COD web service i.e. type a parameter name within double curly braces e.g. {{COD_Address}}.
8. Switch to check box “Connect using Basic Authorization” and enter the Credential name based on the Basic Authorization Artifact deployed earlier e.g.
Step 6: Maintain Runtime/Externalized Parameters
Procedure
- Double click on the iFlow.
- Go to “Externalized Parameters”.
- For COD_Address, Copy the soap address location from downloaed WSDL.
- For ERP_address, Provide a relative endpoint address e.g. /erp/sap/ProductReplicationOut.
- For ERP_soapWsdlURL, Provide the URL in the format wsdl/<interfacename>.wsdl
- Once you have update the externalized paratmers you need to save in the externalized parameters view.
Step 7: Adjust the Outbound WSDL
Procedure
- Double click on ReplicationOfProductsRequestOut.wsdl under src.main.resources.wsdl.
- Go to Design.
- Delete extra port/binding from the WSDL service.
- Rename the service, Port and the Binding by selecting each.
5. Click Save.
Step 8: Deploy the iFlow in to HCI
Procedure
- Double click on the iFlow and in the right side choose Model Configuration.
- Right click and Select Deploy Integration Content.
- Pop up screen shows Integration project deployment is triggered.
- Click on the Console tab and check that the project deployment is successful with 0 failures.
- Check the deployed Integration Flow under “Component Status View” shows Runtime Status as started.
6. Double click the VM Node Go to Properties, Choose Services and copy the service URL of the deployed Integration Flow for later use.
Testing
Step 9: Testing the service using SOAP UI
Procedure
- Use the Service URL from HCI for generating a project in the SOAP UI. Append the URL with “?wsdl” to fetch the Initial WSDL. Select checkbox Create Requests.
2. Provide your HCI Username and Password.
3. Project is generated in the SOAP UI and sample SOAP request “Request1” is created.
3. Project is generated in the SOAP UI and sample SOAP request “Request1” is created.
4. Check the properties of sample SOAP request “Request1”. Choose the Authentication type as Preemptive and Maintain the Username and Password for HCI.
5. Replace the values in the sample XML of the SOAP Request “Request1” with the proper data and execute the SOAP request “Request1”.
6. Message is sent successfully to HCI. Check the Raw message shows HTTP/1.1. 202 Accepted.
7. Go to Message Monitoring in Eclipse to check that message is received successfully.
8. Login into C4C and choose work space Administration. Click on Web Service Message Monitoring and check that an Incoming message is received successfully.


9. Go to C4C, work center Products to view the replicated product.
Note: In actual scenario Web Service consumer can be created in ERP in SE80 to consume the HCI webservice. Refer the link on how to consume a web service in ABAP: Consuming a Web Service
Great blog! Abinash Nanda- your thoughts?
Thanks a lot for this blog.
It will be great if you can elaborate the difference between Iflow in SAP PI 7.31 onwards and HCI. Its bit similar I guess with lots of new features available for HCI like customized pipeline etc.
Regards,
Suman
Hi Suman
We don't do a function/feature between NW 7.3 and HCI - the choice of what to use is normally not feature based. If you have NW OP and have the people to work on it, then use it. HCI is intended as a cloud middleware for customers that either don't have PI expertise or don't want to maintain middleware on-premise. Our overview presentation does have a slide on when to use each one - but bascially if you have PI use it.
Meghna Shishodiya might have more to add.
Regards
ginger
Hi Hemant,
Thanks for the Documentation . I'm having an issue . I did as mentioned above, but after deploying the iFlow, is failing during the Runtime . I'm getting the below errors
[CAMEL][IFLOW][ERROR]:Integration flow failed.
[CAMEL][IFLOW][EXCEPTION]:java.util.concurrent.TimeoutException
[CAMEL][IFLOW][UNRESOLVED]:Unresolved dependency: (objectClass=com.sap.esb.security.KeyManagerFactory)
[CAMEL][IFLOW][UNRESOLVED]:Unresolved dependency: (&(keystore=default)(objectClass=com.sap.esb.security.KeyCertificateAccessor))
[CAMEL][IFLOW][UNRESOLVED]:Unresolved dependency: (objectClass=com.sap.esb.security.TrustManagerFactory)
Kindly can you help out with this.
Have you got a keystore deployed?
Hi Ginger,
No I haven't deployed the KeyStore. Kindly can you point to an article which provides the details of the Keystore deployment . Thanks for your help...
Hi Vinay
Do you have the provisioning email you received? The keystore would be attached. Actually, it should be deployed e unless it's an internal HCI. Please open a ticket - the component is something like LOD-HCI - it's under ondemand.
-Ginger
Meghna Shishodiya - shouldn't the keystore be deployed?
Hello Vinay,
Can you please share you tenant details. I will check it.
Thanks and Regards,
Meghna
Hi Meghna,
I send you an email with the details . Subject if HCI SOAP Example Issues
Hi Meghna,
After deploying the Key Store we soled the issue with the Keystore.
Now when we are trying to access(download from Brower) the WSDL we are getting <faultcode>soap:Server</faultcode><faultstring>Unsupported Request Method GET</faultstring> , When I have certificate authentication in the iFlow.
When I changed it to Basic I get <faultcode>soap:Server</faultcode><faultstring>Unauthorized</faultstring> .
Is this some thing to do with our Roles on the tenant.
When I try to access the WSDL through SOAP UI I get
WSDLException (at /soap:Envelope): faultCode=INVALID_WSDL: Expected element '{http://schemas.xmlsoap.org/wsdl/}definitions'.
Please Help me out with this.
After deploying the Key Store we soled the issue with the Keystore.
Now when we are trying to access(download from Brower) the WSDL we are getting <faultcode>soap:Server</faultcode><faultstring>Unsupported Request Method GET</faultstring> , When I have certificate authentication in the iFlow.
When I changed it to Basic I get <faultcode>soap:Server</faultcode><faultstring>Unauthorized</faultstring> .
Is this some thing to do with our Roles on the tenant.
When I try to access the WSDL through SOAP UI I get
WSDLException (at /soap:Envelope): faultCode=INVALID_WSDL: Expected element '{http://schemas.xmlsoap.org/wsdl/}definitions'.
Please Help me out with this.
Hello,
great blog!!!
Which add-on I need for see WSDL Design like yours.
Best regards.
Daniele
Hi Daniele,
If you are you asking about Step 7 then its Eclipse with HCI plugins.
Regards,
Hemant
Thanks.
Regards.
Daniele
Hi everyone,
has anybody actually implemented this according to the blog's details. I think there are quite a number of gaps in this blog which make it impossible to follow.
Dieter
Hi Rachel,
Please let me know which step you are not able to follow.
Kind Regards
Hemant Chahal
Hi Hemant,
I am particularly interested in consuming the HCI webservice however the link (https://help.sap.com/saphelp_nw04/helpdata/en/bf/d005244e9d1d4d92b2fe7935556b4c/content.htm) mentioned in the article seem to be broken. Are you by any chance aware of any other source where it would be described? Unfortunately I wasn't able to find anything myself 🙁
Michal
Hi Michal,
Thanks for highlighting this. I updated the link with a new reference.
Hemant
Hi everyone,
Anybody solved the issue which Vinay raised? I am also getting the same error:

WSDLException (at /soap:Envelope): faultCode=INVALID_WSDL: Expected element '{http://schemas.xmlsoap.org/wsdl/}definitions'.
Thanks & Regards,
Qiang
Hi Qiang,
The role required to view the WSDL is ESBMessaging.send also iFlow should supports basic authentication as mentioned in the Step 5.2.
Regards
Hemant