HCI : Understanding the Gateway / Persist / Terminate function
Business scenario – A logistics system is sending Sales Area Information to a remote SFTP server via HCI. The message should be sent to the SFTP server only if the Sales Org field has a particular value else the flow should be terminated.
Intention – To understand the Gateway / Persist / terminate steps with an asynchronous scenario in HCI ( SOAP to SFTP ) including the testing and monitoring.
- SOAP UI (SOAP UI 4.0.1 version or later versions)
- Eclipse with HCI plug-ins
- Tenant ID and access to HCI
Download Eclipse and install HCI plugins :
Download eclipse from http://eclipse.org/downloads/packages/release/Kepler/SR2 and choose the Windows 64 bit option ( based on your OS)
On the home page , Go to Help and choose ‘Install New Software’. Click Add Button and give the below URL: http://tools.hana.ondemand.com/kepler and select ‘ Hana Cloud Integration’ option on the next screen. This completed the installation of HCI plugins in eclipse.
Note: HCI config can also be done using WEBUI apart from this eclipse option
Tenant connection :
Setup eclipse with your tenant
Create Integration Project and Iflow:
We will create the Integration Project which will hold our Iflow. Go to File -> New -> other and choose Sap Hana Cloud Integration. Select Integration Project and click next. Then create the Iflow as specified under.
Configure Sender and Channels :
Click on the sender and give a name to sender system. select properties – > Basic authentication for the purpose of simplicity
Import the WSDL :
Click on “src.main.resources.wsdl” – right click and import the Sales Area WSDL. We will need this in the Sender channel config.
We will import 2 WSDLS – one for source ( SalesArea.wsdl ) and other for target ( Sales_Area_tgt.wsdl )
Src WSDL – will have 3 fields. SalesOrg / DistrChannel / Division
Tgt WSDL – will have 4 fields SalesOrg / DistrChannel / Division / country . Country will be hard coded in mapping.
Sender SOAP channel :
Address : Specify any logical name like /SalesArea . This will be part of the endpoint which will be generated later.
URL to WSDL : click browse and select SalesArea ( Src WSDL )
Processing settings :
Standard – For Async scnearios
Robust – For Sync scenarios where the response goes back to sender.
Right click on “src.main.resources.mapping” – > new -> other -> HCI -> message mapping.
Select the source and target message in the mapping
Complete the one to one mapping and harcode the country code to ‘US’
‘Console’ will automatically show any errors upon saving the mapping
Click on the connection between start and end . Then Right click and “Add Message Transformers” -> ” Mapping”
Then right click and assign the mapping u just created
Gateway config :
Requirement is that the message should go the receiver only when Sales Org = ‘A001’ else it should be terminated without any error / exception.
click on the connection between mapping and end step . Right click “Add message routin” -> “Router”
Click on the connection between Gateway and End. Click on properties and put a name like ‘Salesorg’.
Condition expression : /p1:SalesArea/Salesorg=’A001′
Click on “Gateway” and remove “Raise Alert” and “Throw Exception” .
End Message :
Click on end message event from right side and drag it inside the Iflow. Then draw the connector between them.
Give the name as “NotSalesOrg” and click on “Default Route”
Check the namespace mapping :
Goto “Runtime configuration ” and see the right name space mapping is shown there.
Message persistence :
Click on the line between mapping and gateway and click on message persistece
Deploy the Iflow :
Now right click and deploy your Iflow
Console shows that the deployment was successful.
You can use the tenant url to go the webui -> overview section to monitor / check your Iflows.
Click on All started
You will be able to see the endpoint and final Iflow. This endpoint should be used in SOAP UI to test.
View Integration flow – will show the final deployed Iflow
Monitor Message Processing – will be used for monitoring your messages after you test.
Final Iflow :
SOAP UI testing :
As you can see here endpoint is taken from the webui as previously mentioned. Also specify thee HCI user/pwd as ‘Basic authentication’
This is an Asynchronous scenario and hence no response is seen …only . HTTP / 1.1 202 Accepted.
Go to web ui – > click on completed messages
Go to ” Message processing log” . You can see the message is COMPLETED.
NOTE : This Blog does not show the receiver SFTP config as it follows standard steps. The receiver channel and system have been removed from the Iflow