Connecting SAP Cloud Platform Enterprise Messaging with Azure Event Grid
Recently I got my hands dirty with SAP Cloud Platform Enterprise Messaging.
Thanks to some fantastic blogs from Carlos Roggan (get started with the first one here: https://blogs.sap.com/2020/03/03/sap-cloud-application-programming-model-and-enterprise-messaging-1-intro ) or Dries Van Vaerenbergh (https://blogs.sap.com/2020/05/06/cloud-foundry-enterprise-messaging-webhooks-%F0%9F%93%A8/; also check out his YouTube Video https://www.youtube.com/watch?v=DKI2WgDS_k0) and also the super help from Tobias Griebe (Thanks!) it was quite easy to get started (you might also want to check out the tutorial here, https://developers.sap.com/tutorials/cp-enterprisemessaging-learn-messaging-concepts.html).
Since I am obviously also working a lot with Microsoft customers who are very familiar with Microsoft Azure, I wanted to see if I can bridge these worlds. On the Microsoft side we have several messaging solutions (for a quick overview you can check out this Azure Friday video https://youtu.be/IQ_j41zBy0k). I want to focus on Azure Event Grid, which comes with several out of the box Event Sources and Event Handlers.
So to put everything together:
Receiving triggers from different SAP sources like S/4Hana, SuccessFactors, … to SAP Cloud Platform Enterprise Messaging. From there using — for now — Webhooks to send the event forward to Microsoft Azure Event Grid and from there using the Event Handler Logic Apps to send out an Email.
It is a very simple scenario, but hopefully it shows that connecting these two services can work. The benefit here obviously is that Enterprise Messaging is perfectly integrated in the SAP world and by this allows SAP developers to leverage their experience, while Azure Event Grid is perfectly integrated in the Microsoft world and enables Microsoft developers to stay in their environment.
Currently there is one open point — and why I want to highlight that this is just a first POC! The authentication from Enterprise Messaging to Event Grid is currently done with a SAS token via a Query Parameter in the URL. Obviously this is not something you would do in a productive environment! Still, I hope this first POC shows you what can be — quite easily — accomplished.
Before I close I also want to highlight another blog from Christian Lechner who outlines how you can integrate Azure Functions directly with your SAP System. Obviously this is a very valid approach and I only want to highlight a different approach where via Event Grid I could connect Azure Functions, but also a lot of other different Event Handlers. Still, I can only encourage to check out the blog series from Christian, https://blogs.sap.com/2019/12/09/a-serverless-extension-story-from-abap-to-azure/