Another comparison between HCI and Boomi: SOAP
Another comparison between HCI and Boomi: SOAP
Regarding the amount of feedback I received on my first comparison between HCI and Boomi (blog), I decided to compare some more features of both middleware solutions. This time I want to show you a SOAP activity done in Boomi and in HCI. First I will show you how to create the complete iFlow in Boomi. After that I will use the same format to show you how it’s done in HCI.
If there are things you would like to see in the future, please let me know in the comments section below!
Setting up the SOAP client in Boomi
First of all we are going to set up the SOAP client. We’ll need a connection to the Web service and create a request and response profile.
We are starting in Boomi by creating a new process. We’re going with the ‘No Data’ start shape, because we want to enter our data (the City and Country for our weather request) manually.
To set up the soap connection we select the ‘Connector’ icon and choose ‘Web Services SOAP Client’, Leave the Action on EXECUTE and select the plus symbol right after ‘Connection’. Here we are going to set up the WSDL and SOAP endpoint URL
WSDL Url: http://www.webservicex.net/globalweather.asmx?WSDL
SOAP Endpoint Url: http://www.webservicex.net/globalweather.asmx?
After you set both URL’s you can Save and Close this SOAP connection, so we can create the SOAP operation.
Click on the plus button next to the operation and, in the operation screen, choose ‘Import’ (the green box, in the upper right of your screen). Make sure you select the Connection we just created (in this case SOAP weather) and choose ‘Next’. If you entered the settings correctly you should get a new screen where you can choose the object type. Go for ‘GetWeather’ and choose ‘Next’.
We now have the Start shape and the SOAP connection on our process canvas.
Create input data and mapping in Boomi
When you analyse the Request profile we have just imported, you see the SOAP Web service expects a CityName and a CountryName. This is data we are going to enter directly into the flow, but you can also use other (employee)systems to gather this data for example. Drag and drop a ‘Message’ icon onto your canvas. In the ‘Message’ we enter the CityName followed by the CountryName, separated by an asterisk. Of course you can choose other countries and cities for this iFlow.
This is the data that we will send over to the Web service. But we need to let the Web service know that this is CityName and CountryName, and deliver it in a format that the service expects (XML).
To do so, drag and drop a mapping icon onto your canvas. Choose ‘Create new’ and select the icon on the Source side of the mapping (left).
We want to create a new Flat File, because the data we entered in the ‘Message’ step is formatted in a Flat File.
We have to create two Elements so I choose ‘Add Multiple Elements’ and select 2. Name the Elements so it is clear what the elements stand for, in this case ‘City’ and ‘Country’.
On the Destination side of the mapping (right), select the same icon as before, but now choose XML as Profile type. Choose the XML profile we imported in the first step named “Web Services SOAP Client GetWeather EXECUTE request”
After that you can map the source (left side) to the destination (right side) so the Web service gets the format it expects.
Finishing up and review results in Boomi
We now have a no-data start shape, a message icon, mapping and a connection. We want to enter a ‘Stop’ icon so we can review our test later on. Make sure your iFlow looks like this:
Save your iFlow and run it as a test. If all went well you should see five green halo’s around the icons.
Select the ‘Stop’ icon and view the ‘Shape Source Data’, your output should look something like this
As you can see we received the weather for Rotterdam Airport Zestienhoven in the Netherlands.
Now we have done a simple SOAP Webservice call in Boomi, let’s go over to HCI and see how it’s working there!
Setting up the SOAP client in HCI
When starting a new project in HCI we get a sender, a receiver and an Integration Process. As we do not need a Sender we can delete that immediately.
We do need an extra receiver to address our SOAP Web service. Add a receiver and drag and drop ‘Service Call’ icon onto the canvas. Draw a line from the request/reply button to the receiver so your flow looks like this:
Double click the dotted line to enter the details. We are choosing SOAP as the adapter type, HTTP as the transfer protocol and SOAP 1.x as the Message protocol.
When going into the Adapter Specific tab we notice that we are missing the ‘URL’ to the WSDL. We have to import the WSDL into Eclipse (go to http://www.webservicex.net/globalweather.asmx?WSDL , download the page as a .wsdl file and drag it into your “src.main.resources.wsdl” folder in your project).
Now we can point the system to out WSDL and click ‘Browse’.
Then double click on globalweather and in the next screen choose GetWeather (GlobalweatherSoap)
The configuration for the SOAP service is now ready:
Create input data and mapping in HCI
HCI handles the input a bit different. Here we don’t create a mapping to tell what kind of value every expected field has, but we enter the XML in a content modifier before sending it out. Then, the response is exactly the same as we saw in Boomi. Let’s drag and drop a `Content Modifier’ to the canvas and go to the properties tab.
Enter the following XML in your body:
Finishing up and reviewing the results in HCI
I placed a dummy receiver so we can see the output when tracing this iFlow. To be able to trace the call after we deployed it we need to change the Trace Configuration. Left click on an empty space on your canvas and go to the properties tab. Choose Header and Body and save you iFlow.
(tip: don’t forget to ‘schedule’ your start event!)
When you successfully deploy your iFlow to your tenant
You can choose to trace your flow by clicking the ‘View Trace’ button when you select the right row.
When selecting the envelope on the right, and check the Properties tab we can see the same data as we saw in Boomi:
But what about the HCI webUI?
At the moment of writing this blog there is no option to trace the log like you can in Eclipse. Because I wanted to use the log to show the results I’ve chosen to make the flow in Eclipse. For the sake of good comparison I will also make the flow in webUI and cover it briefly:
Log in to your webUI HCI environment and choose Design
Click ‘Create’ and then ‘Add’ Process Integration.
Name your project and your Process Integration and click on the newly created Process (I named mine SOAP blog 7):
Choose ‘Edit’ (bottom right of your screen) and create the same iFlow like we did in Eclipse. When you’re done it looks somewhat like this:
Deploy the iFlow and go to the monitoring section of the webUI
When the iFlow is set up correctly, you get the status completed and in this case the output by mail:
Despite missing the trace functionality you can definitely see and feel that the HCI webUI has been developed further and further. The layout has changed, the feeling is good and the interface is reacting very smoothly. These are some things that are missing in Eclipse. There are some weird and unexplainable errors, and the precision of the mouse pointer sometimes drives me crazy. For example, if you just miss the receiver when dragging a new connection it will not connect. The same thing when trying to add a static value in a mapping.
In Boomi they recently upgraded the ‘Test run’. Instead of a maximum of 10 documents/10 MB you now have the ability to test 100 documents/100MB. I think this is a nice upgrade and the result is that you can test more before really deploying your iFlow.
I’m really enjoying working with Boomi ánd HCI. If the HCI webUI keeps developing in this pace I’m sure the future will be bright for HCI.
Blog 1: Starting with Hana Cloud Integration? Keep this in mind!
Blog 2: Starting with Hana Cloud Integration? Create a simple integration flow (iFlow)!
Blog 3: Deep dive in Hana Cloud Integration.
Blog 4: Hana Cloud Integration and SuccessFactors Integration Center
Blog 5: Hana Cloud Integration in comparison to Dell’s Boomi.