Mendix 7 is no longer supported unless you have Extended Support (for details, please contact Mendix Support). Mendix 7 documentation will remain available for customers with Extended Support until July, 2024.
Consume a Simple Web Service
1 Introduction
Mendix is the app platform for the enterprise, and in enterprise software, it is not likely that you work in a greenfield project. In almost every situation, you will need to integrate with existing systems. Mendix supports many ways of integrating, and this how-to focuses on how you can consume web services with Mendix.
For this how-to, you will be using an example web service of W3Schools. Please note that this is a very simple web service that converts temperatures from Celsius to Fahrenheit and vice versa. The converted temperature will be returned as a string value that can be stored in a variable directly. If you want to invoke a web service that returns a complex XML message, you can use the XML-to-domain mappings explained in How to Import XML Documents.
This how-to teaches you how to do the following:
- Import a WSDL
- Create logic to call the web service
2 Importing a WSDL
A WSDL describes the operations of a web service and can be imported in the Modeler. After importing the WSDL, you can invoke the operations of the web service instantly within the microflow editor.
To import a WSDL, follow these steps:
-
Right-click your module in the Project Explorer and select Add > Consumed services> > Consumed web service:
-
Enter a name for the new consumed web service (for example, TemperatureConverter):
-
Click OK again. You will now see the Consumed Web Service wizard. Enter
https://www.w3schools.com/xml/tempconvert.asmx?wsdl
as the URL, and then click Import. -
This will bring up the Select Ports dialog box asking you to select a web service port:
-
Click OK to select the default. The Modeler should now import these operations: CelsiusToFahrenheit and FahrenheitToCelsius.
-
Click OK to save the consumed web service.
3 Creating Logic to Call the Web Service
To create logic to call the web service, follow these steps:
-
Right-click your module in the Project Explorer and select Add > Microflow from the menu:
-
Enter a name for the new microflow (for example, ConvertCelsiusToFahrenheit).
-
Click OK. You will now see an empty microflow:
-
Open the Toolbox (from the lower-right corner of the Modeler) and drag a Create variable activity to the line between the start and end event.
-
Double-click the new activity to open the Create Variable properties editor.
-
Select Integer/Long as the Data Type, enter 100 as the value, and enter TemperatureInCelsius as the Output Variable Name:
-
Click OK. The microflow will look like this:
-
Drag a Call web service activity from the toolbox to the line between the start and end event. This inserts a new activity.
-
In the Call Web Service properties editor, click Select and select the CelsiusToFahrenheit for the Operation of your consumed web service:
-
In the Location section for this operation , click the Override location box. You are doing this in order to use the secure location of the web service.
-
Click Edit to override the location and change
http
tohttps
for the URL in the Location editor. -
In the SOAP Request Body tab of the Call Web Service properties editor, double-click the Celsius (optional) input parameter and enter
toString($TemperatureInCelsius)
for the expression. The web service operation expects a string value, which is why you need to use thetoString
function.Then click OK.
-
On the SOAP Response tab, select Yes for the Store in variable option, and enter TemperatureInFahrenheit for the Name:
-
Click OK. The microflow will look like this:
-
Drag a Show message activity from the Toolbox to the line before the end event.
-
Double-click the new activity to open the Show Message properties editor.
-
Select Information as the Type, and enter The temperature in fahrenheit is: {1} for the Template. The {1} functions as a placeholder for the parameters.
-
Create a new parameter and enter
$TemperatureInFahrenheit
for the expression (this is the return value of the web service operation), then click OK: -
Click OK again to save the Show message activity properties. The microflow will look like this:
-
Create a menu item that triggers this microflow. For details on how to create a menu item, see How to Set Up the Navigation Structure.
-
Deploy the application and trigger the microflow to call the web service operation. You should see a message with the converted temperature.