In March of this year Microsoft announced the new Azure App Services, which brings together the functionality of Azure Websites, Azure Mobile Services and Azure BizTalk Services into a single development experience.
App Service has everything you need to build apps that target both web and mobile clients from a single app back-end. Using API Apps, you can connect your app to dozens of popular services like Office 365 and salesforce.com in minutes, and integrate your own APIs so they can be used within any app. Also a number of BizTalk capabilities are available as API Apps to be used inside complex integration scenarios. Finally with Logic Apps, you can automate business processes using a simple no-code experience.
In this blogpost I will demonstrate how easy it is to expose SAP functionality to the cloud with the new Azure App Services. I will use a combination of API Apps to create a Logic App that exposes BAPI functionality to an external website.
Also I’ll use a client application that will directly call our provisioned Logic App through HTTP. Our Logic App will then call our on premise SAP system over Hybrid Connection and return the result back to our client application.
PROVISIONING THE API APPS
As Tom already explained in his blogpost we currently have two option to provision API Apps. One of them is to provision them upfront where you have full control of the naming, second is to provision them while designing your Logic App and leave Azure in control of your naming.
In this blogpost we will provision the API Apps upfront, so we have full control over all the naming and settings of our API apps.
The first API App we will provision is the HTTP Listener. The HTTP Listener allows you to open an endpoint that acts as a HTTP server and listen to incoming HTTP requests.
Open the Azure Marketplace and select the HTTP Listener API App and click on Create.
In the Configuration window provide an applicable name for your API App. Another important setting for our setup can be found inside the package settings. There we need to configure our HTTP Listener not to send a response back automatically. That way we are in full control of what response we send back to our calling clients.
Once our HTTP Listener is provisioned we can apply additional configuration to it. We can specify the level of security (None or Basic). We can choose if we want to automatically update our HTTP Listener to the newest version and we can also specify the Access Level.
To simplify this demo, I’ve chosen Security “None” and have set the Access level to “Public (anonymous)”.
This rounds up the configuration of our HTTP Listener.
The second API App we will provision is the SAP Connector. The SAP Connector lets you connect to an SAP server and invoke RFCs, BAPIs and tRFCs. It also allows you to send IDOCs to SAP Server.
Open the Azure Marketplace and select the SAP Connector API App and click on Create.
In the Configuration window provide an applicable name for your API App. Click on package settings to configure SAP specific configuration values, once your done filling in the necessary configuration values click on Create to provision the SAP Connector.
- Server name – Enter the SAP Server name
- User name – Enter a valid user name to connect to the SAP server.
- Password – Enter a valid password to connect to the SAP server.
- System number – Enter the system number of the SAP Application server.
- Language – Enter the logon language.
- Service bus connection string – This should be a valid Service Bus Namespace connection string.
- RFCs – Enter the RFCs in SAP that are allowed to be called by the connector.
- TRFCs – Enter the TRFCs in SAP that are allowed to be called by the connector.
- BAPI – Enter the BAPIs in SAP that are allowed to be called by the connector.
- IDOCs – Enter the IDOCs in SAP that can be sent by the connector.
Once our SAP Connector Listener is provisioned, we need to install and configure the Hybrid Connection as it will initially appear as Setup Incomplete.
Open the Hybrid Connection blade and click on Download and Configure to install the On-Premise Hybrid Connection Manager. This is a simple next-next finish installer, so this is very straightforward.
During the installation you will be prompted for the Relay Listen Connection String, copy this string from the Hybrid Connection Blade (Primary Configuration String).
Once the installation is finished and after a refresh (F5) of the portal, you will see the Hybrid Connection listed as connected.
This rounds up the configuration of our SAP Connector.
CREATING THE LOGIC APP
In the second part of this blogpost we will use our provisioned API Apps to create a Logic App.
Logic Apps allow developers to design workflows that are activated with a trigger and execute a series of steps (API Apps).
Open the Azure Marketplace and select the Logic App and click on Create.
In the Configuration window provide an applicable name for your Logic App and click on Create to provision the Logic App.
Once our Logic App is provisioned we need to configure the necessary Triggers and Actions. You can start this configuration by clicking Triggers and Actions in your Logic App configuration.
Link the API Apps you created in the first part of this blog together as shown below. Click on Save to apply the changes to your Logic App.
This rounds up the configuration of our Logic App.
TESTING YOUR LOGIC APP
You can test this Logic App by browsing to your HTTP Listener and opening up the host blade. Copy the URL value as shown below. You can now use this URL to submit HTTP Requests to your Logic App. In my demo I have executed a HTTP GET request from inside a website.
Be aware: Before sending HTTP Requests to the copied url, change the HTTP prefix to HTTPS.
The new Azure App Services is a big step forward for cloud integration if you compare it with the previous Azure BizTalk Services. However it is still missing some heavy enterprise focused integration patterns like convoys, long running processes, large message handling… Also some improvements on seperating configuration values from the runtime logic can be done.
However the future looks bright and with this demo I showed you how easy it already is to expose SAP functionality to the cloud with Azure App Services.