Questions from SAP Community Call: Discover Event-Driven Integrations with SAP
Today’s business world is fast-paced and always changing. To keep up with this speed and the dynamics, IT needs to be able to react to changes in real-time and to provide options to rewire business processes easily. Event-Driven architecture offers all of this: real time reactions, flexibility, loose coupling and extraordinary scaling are some of the benefits it brings. It is a perfect fit for today’s business world.
This session will introduce you to Event-Driven Architecture with a specific focus on the SAP Event-Driven Ecosystem and with a long deep dive into the eventing capabilities of SAP S/4HANA and SAP S/4HANA Cloud.
With a clear focus on event-driven integrations, you will:
· Learn the basics of Event-Driven Architecture
· Hear about benefits and challenges
· Discover SAP’s Event-Driven Ecosystem
· Delve into event-driven use cases in the SAP cosmos
· Deep Dive into SAP S/4HANA and SAP S/4HANA Cloud from an Eventing perspective
Find the session recording here.
The goal of this blog and some background
There were a lot of questions and we simply had no time to answer all of them. So the goal of this blog is to provide you with answers to your questions.
Sorry for the delay in publishing this blog – the last days have been very busy due to the ever growing interest in event-driven architectures.
Quick remark: I have edited some of the questions for clarity reasons.
Let me add a few links here that might help you to get started and that already answer some of the questions:
- The API Business Hub allows you to search for available events in S/4HANA Cloud and on premise – please note that the custom events that you create using the add-on are not listed (for ECC and S/4HANA on premise). It is still a good starting point: https://api.sap.com/content-type/Events/events/events
- Event Mesh in Discovery Center provides background on the service: https://discovery-center.cloud.sap/serviceCatalog/event-mesh?region=all
- Event Mesh in the Help Portal: https://help.sap.com/viewer/product/SAP_EM/Cloud/en-US
- Add-On for Event Enablement in Help Portal: https://help.sap.com/viewer/e966e6c0e61443ebaa0270a4bae4b363/1.0/en-US/3eba827c531344eb879d8e35022d90ba.html
- What’s new for the Add-On for Event Enablement: https://help.sap.com/viewer/e966e6c0e61443ebaa0270a4bae4b363/1.0/en-US/4bd8777d7a674f1ba93e1da405e4b9df.html
- Event Mesh Community: https://community.sap.com/topics/event-mesh
- Very nice overview blog by Murali: https://blogs.sap.com/2021/08/11/enable-your-business-to-operate-in-real-time-with-sap-event-mesh-of-sap-business-technology-platform/
- Blog by Martin Bachmann on ECC Event-Enablement: https://blogs.sap.com/2020/07/01/event-driven-architecture-now-available-for-sap-ecc-users/
- Blog by Martin Bachmann on the availability of the add-on for on premise SAP S/4HANA: https://blogs.sap.com/2021/06/01/sap-netweaver-addon-for-event-enablement-now-also-released-for-s-4hana/
- Solace Announcement Blog for expanded partnership: https://solace.com/blog/solace-sap-partnership-event-driven-architecture/
Questions and Answers
Please find the questions in the chat and our answers below:
Question: Can we use only the Event Mesh to subscribe to the event for an S/4HANA system?
For S/4HANA systems SAP Event Mesh is the event broker required to consume the event. Since Event Mesh supports standard protocols, you can then forward the event from Event Mesh if absolutely required.
Question: How can we subscribe to these two event types (notification and data event) from another SaaS client for example, Salesforce?
You would go via Event Mesh and then have your SaaS client consume the events from Event Mesh. Event Mesh supports standard protocols like REST, AMQP, MQTT.
Question: How can we troubleshoot if a message is not sent to Event Mesh in SAP BTP? I couldn’t see any errors in /IWXBE/ERROR_LOG.
Please check on this troubleshooting blog for an answer – way more detailed than I could answer here.
Question: are event-mesh scenarios possible in the SAP BTP Trial version?
Yes and no. The Event Mesh service plan used in the trial environment is different. So you cannot implement the Discovery Center scenarios. What you can do though, is to try out Event Mesh in respect to the basic scenarios at developer.sap.com. The difference typically is that connecting backends out of the trial is more complicated.
Question: Is there any possibility that an SAP Daemon doesn’t work to send messages to SAP BTP from a SAP S/4HANA OP 1909 system? Or is a webhook mandatory to send a message to Event Mesh from SAP S/4HANA OP?
Same answer here: please check on this troubleshooting blog for an answer – way more detailed than I could answer here.
Question: Can you elaborate a bit more on what Event Mesh is and its functionality?
Yes, I’ll do that quickly. I would recommend this blog for a better understanding though.
Event Mesh is an event broker as a service. It is almost serverless. The idea is to provide and expose events in the SAP ecosystem and beyond as easy as possible. So both from a configuration and from a financial perspective the entry hurdle is very low. It is an event broker, no event log like e.g. Kafka. Events are buffered in queues if needed, can not be replayed though. So you consume an event, it is gone. Event Mesh scales well and is highly integrated into SAP’s ecosystem. At the same time it it is open and supports standard protocols like AMQP, MQTT or REST.
Question: Is Event Mesh basically a real time message transmission between source and target via SAP BTP?
Yes and no. The event-driven concept is a little more complicated and offers more. What you are describing is basically a 1:1 direct transmission. Event Mesh follows a pub sub approach. So in the end it is *:* with Event Mesh as the broker. The real time aspect of your question fully holds true though. Even if there would be a lot more to say here, including e.g. the buffering.
Question: Can source and target be SAP and Non-SAP systems?
Yes. Depends to a certain extent though on whether the systems are event enabled and on the protocols supported. So this is a longer discussion. High level answer is yes, source can be SAP or non-SAP and consumer can be SAP or non-SAP. The term target is a little misleading. The source does not know about the consumer – so the consumer is not really a target.
Question: Is standard configuration available for customers to raise an event for a business object?
Depends on the backend. For standard SAP events yes. You just need to switch the event on. For customer events created using the add-on no – these are really custom events.
Question: Are these events by default available in SAP S/4HANA 1909?
Standard notification events are by default available. Event exposure had to be switched on for every single event type though.
Question: How do we handle “synchronous” events where business objects are dependent? Synchronous in this case means that in the instant in which both systems are available a message will sent immediately.
You confused me quite some during the Q&A with this question. Now I got what you mean. The events are buffered in a queue and when the consumer gets online it consumes the event. It does not work like this with just a topic, but if you have a queue subscription to a topic it does work the way you want. I would not call it synchronous – it is still asynchronous with additional buffering.
Question: For which backends the add-on is not required?
The add-on is not required for S/4HANA Cloud, for S/4HANA, for SuccessFactors, for Marketing Cloud, for Subscription Billing. It is currently required for ECC and Fieldglass. For S/4HANA on premise it is an additional option in case you require custom events.
Question: Please can you show us how trouble shooting events and security aspect of it?
Same answer here: please check on this troubleshooting blog for an answer – way more detailed than I could answer here.
Question: Can we manually delete an event?
No, unfortunately you cannot delete an event manually. The queue, like every queue, is first in first out. So the data structure works as designed.
Question: How will proper sequencing of events be covered?
This is a difficult topic. The easy answer would be it’s not possible. That is not the full truth though. You could add an additional field if you would want custom sequencing. And there is an alternative approach that allows to bring events in sequence. This approach is very costly from a resource perspective though.
Question: You show only the notification event in S/4HANA. Is the data event not available in S/4HANA and S/4HANA cloud?
Currently standard events for SAP S/4HANA are notification events. With the new approach coming in the summer data events will be possible as well.
Question: Can’t we send events from SAP S/4HANA 1909 OP at present without Add-On?
Yes, but only the notification events you can find at api.sap.com.
Question: Is there an API to poll the event from the S/4HANA and S/4HANA Cloud when we don’t want to use the Event-Mesh from the SAP BTP?
No, the events have to be routed via Event Mesh. This is an architecture decision to protect the backend for performance and data security reasons.
Question: can we send bulk requests using Events?
No, currently this is not possible. Potentially, using the add-on, it might be possible with some coding. I have never heard this request before, so I am not sure.
Question: Is there a way to prioritize event. E.g. prio 1 is always executed first, prio 3 always last.
Not the way you want it, like assigning a priority to an event. I could picture different queues for events and assigning priorities to the queues. Then you would achieve a prioritization by consuming from the high, medium and low priority queues.
Question: From your explanation I understand that he best way is to use the Event-Mesh on SAP BTP and forward the event to other application system like Salesforce.
Yes, you typically have to go via Event Mesh and then consume from there.
Excellent post, Karsten! Thank you for sharing and for taking time to follow up on the questions. Very useful.
In SuccessFactors Event Center, the list of events
are fixed and far from covering the basic scenarios or use case Business need to build
event driven architecture.
i've suggested in influence :
that customer could add some events based on their configuration.
For example, on recruiting side, there is basically no event to trigger an action on when a candidate is applying for a job requisition : these is a big gap to improve Recruiter life who have to check on daily basis the
Recruiting Module to check for new candidates on their job reqs.
if we could be notified of these event, we could do some intelligent notification .
without it, we have to reinvent the wheel by exporting candidate list for each job requisition and generate event from an external api manager tool outside of SuccessFactors which defeat the purpose of having SAP for event-driven architecture
I see your point. The events that are available for SuccessFactors are the Intelligent Services events of SuccessFactors. The beauty here is that you can adjust them in respect to data included in the event, all the way from very small notification events to full blown data events. So if an event is available, you can adjust it and it forms a good basis for quite a number of use cases. In the end we are talking about adjustable standard events.
You are right though, I am currently not aware of an option to create custom events. What you can do is to adjust the available standard events to your needs.
The overall topic is difficult by the way: does it make more sense to have lots of standard events? Or is it better to have customers create lots of custom events? Currently I am wondering how well custom events would scale in the long run. On the other hand, a lot of use cases are very specific and would require custom events.
I strongly support your influence input. Thanks for raising this with SuccessFactors.