Skip to Content
Technical Articles
Author's profile photo Taranamjit Kaur Dhindsa

SAP S/4HANA Cloud: Leverage Business Event Handling to Monitor Changes

Business Events in SAP S/4HANA are triggered as part of some Business process example whenever a Sales Document is Created/Changed/Deleted. We all are familiar with Business Events since our ECC days since we would have used them in some of our developments.

In this Blog I will be only covering one flavor that is Business Event Handling in SAP S/4HANA Cloud  since I could find many blogs on Enterprise Messaging and its integration with SAP S/4HANA Cloud but not on Business Event handling .Whereas sometimes your requirement can be fulfilled by business event handling too based on what you are looking for . So, you should be aware of both the flavors in Cloud as in Cloud currently we don’t have released CDS views to check change pointers.

Two different eventing features in SAP S/4HANA Cloud are:

In this blog we will only cover how you can activate and use S/4HANA Cloud Business Events. For using SCP Service Enterprise Event Messaging; you need additional license for service Enterprise Messaging. Although many SAP blogs are available on  how to configure Enterprise Messaging service but I would recommend to follow SAP help listed here since it keeps evolving .Going forward Communication Arrangement for EMS in SAP S/4HANA Cloud will be created and updated via the Service Key of the EMS rather than creating manually in SAP S/4HANA Cloud .

Now let’s see what all is required to use S/4HANA Cloud Business Events. Before you start using Business Event in SAP S/4HANA Cloud, please ensure

  • Scope item 1NN is active
  • Communication arrangement for scenario SAP_COM_0121 is in place

Once the prerequisite is in place; you just need to enable business events for objects you wish to use. Below 3 Fiori apps are key apps for configuring and using Business Events

Follow the listed steps:

  1. Create Subscriber Id: Go to Fiori app “Manage Your Solution” and check for Event Handling and select the below one

      Then select “Create Subscriber Id” and configure – added BEVT as new Subscriber ID.

      2. Enable the Subscription:Go to Fiori app “Business Event Subscription” and activate the Object type for which you want to enable the Business events. Example below I have activated event for Sales Order Create and Change.

    3. Business Event Queue: Once the Business events are active for any object; same will be captured in Fiori app Business Event Queue.

Now you are good to use Business Events for Sales Order – any created /changed SO will be captured in the queue.

I am sure one question that will cross your mind would be How can I find what all Business Events are Supported in S/4HANA Cloud?

You can check the same in Fiori app Business Event Subscription OR use the link

Let’s have a look at one of the use case where you can leverage Business events from SAP S/4HANA Cloud.  In our example we want to display any created /changed sales Order in UI5 application as shown below.

Now you can read the events using OData C_BEHQUEUEDATA_CDS/C_Behqueuedata of Communication scenario SAP_COM_0121.Example you can use the postman to check the events that have been triggered in SAP S/4HANA Cloud system.

Summary: In this we have covered how you can read the business events queue and leverage Business events in SAP S/4HANA Cloud.

Before understanding Enterprise Messaging in Cloud , refer my blog Discover SAP S/4HANA Cloud Extensibility Service in SCP  for getting familiar with SAP S/4HANA Cloud Extensibility Service and how it can be used to automatically create Communication Arrangement in Cloud.

Regards,

Taranam

Assigned tags

      11 Comments
      You must be Logged on to comment or reply to a post.
      Author's profile photo dinesh k
      dinesh k

      Thanks for sharing

      Author's profile photo Daniel De Souza
      Daniel De Souza

      Hi Taranam,
      How does business event distinguishes itself from situation handling?

       

      Tk,
      Daniel

      Author's profile photo Taranamjit Kaur Dhindsa
      Taranamjit Kaur Dhindsa
      Blog Post Author

      hi Daniel ,

      I mentioned here one aspect of Business events here which are like change pointers and are triggered whenever these is change /creation of data for which its activate . And you need to read the Business events manually using APIs  to see what object has changed .

      Situation handling is to notify users which needs their attention based on Situation you would have configured like you can configure alert for Sales Contract Fulfilment if some condition is reached .

       

      Regards

      Taranam

      Author's profile photo Sreekanth Krishnan
      Sreekanth Krishnan

      Good one Taranam.

      Author's profile photo Taranamjit Kaur Dhindsa
      Taranamjit Kaur Dhindsa
      Blog Post Author

      Thanks Sreekanth

      Author's profile photo Mayank Agarwal
      Mayank Agarwal

      Good job ?

      Author's profile photo Taranamjit Kaur Dhindsa
      Taranamjit Kaur Dhindsa
      Blog Post Author

      Thanks Mayank

      Author's profile photo Prisha Sharma
      Prisha Sharma

      Good one Taranam

      Author's profile photo N. Hinfelaar
      N. Hinfelaar

      Hello Taranam,

       

      Nice Blog. Question do you know for how long the event is stored in the event queue?

       

      Best regards

      Nikki

      Author's profile photo Taranamjit Kaur Dhindsa
      Taranamjit Kaur Dhindsa
      Blog Post Author

      This is stored for 7 days ; there is a job that runs every day and deletes the events accordingly.

      Author's profile photo Ly-Na Phu
      Ly-Na Phu

      Hi all,

      nice blog to see that we can have a web client reading the event directly from the S/4HANA event queue and not needed to use the event-mesh from the SAP BTP. What we see here is that we need to make a call again to read the business data because the event doesn't contain them. But when we read the business data we will read all fields from the changed record. Thus it is not very specific to get only the changed field. Is there a way to read only the changed fields? Most of the time you change 3 fields on an object and only these 3 fields you want to get in your client app e.g. we want to have only the changed fields.

      Thanks,

      Ly-Na