Skip to Content
Technical Articles
Author's profile photo Uma Anbazhagan

Integrating SAP Business Processes in Microsoft Teams using SAP Business Technology Platform

Introduction

Enterprise business users are looking to shift from standard web-based experience to alternate channels for performing their day-to-day business operations. It is becoming quite evident to enable these users with multi-channel user experience to increase the usability and ease of performing their tasks.

SAP and Microsoft are creating innovation together by integrating Microsoft Teams across SAP solutions for seamless collaboration across business processes/workflows for internal and external stakeholders.

In this post, we will focus on SAP S/4HANA integration with Microsoft Teams by building an extension application leveraging the SAP Business Technology platform (SAP BTP), allowing users to perform Purchase Requisition approval via Microsoft Teams.

In addition, with the adoption of RISE with SAP on Azure, organizations are looking at utilizing the best of both environments and building intuitive and innovative solutions for their business users. The focus here will be on integration with SAP S/4HANA (on-premises) leveraging SAP Connectivity Services and SAP S/4HANA on Azure (RISE with SAP) leveraging SAP Private Link Service in SAP BTP.

Here is the link to the GitHub repository – Integrate SAP Business Processes in Microsoft Teams using SAP Business Technology Platform (github.com)

Link to SAP Discovery Center Mission, go through the Basic Scope for this blog post – Enable Supplier Collaboration across SAP and Microsoft Azure Ecosystem using SAP BTP

Let us get started!

Business scenario

There has been a transition from GUI to CUI (Conversational User Interface) for consumer-based applications as well as for enterprise business applications. The UX transition and transformation have helped organizations increase the usability and adoption of these different UX channels and business application usage.

Given the above context, we will show how a simple extension application developed on SAP BTP can provide SAP business users with the flexibility to perform Purchase Requisition Approval via Microsoft Teams. This application can be further enhanced for additional use cases. For example, we can create alerts/notifications for other business operations, create a collaboration platform for a team, workflow actions, and show data from multiple systems within Microsoft Teams instead of navigating to the Web or SAP GUI user interface etc.

Let us look at a simple business process flow of Purchase Requisition Approval.
The diagram below depicts the user journey of a purchasing manager to whom purchase requisition details are sent for approval/rejection. Before the approval process, if the business user wants to look at additional information, they can query and then complete the actions.

Figure 1: Business Process Flow

  • Step 1: SAP business user creates Purchase Requisition (PR) in SAP S/4HANA.
  • Step 2: PR creation event is published to SAP Event Mesh from SAP S/4HANA.
  • Step 3: The extension application in SAP BTP receives the PR event leveraging webhook utility (In future, a direct integration between SAP Event Mesh and Azure Event Grid will be made available. Check out the Influence Opportunity Homepage – Customer Influence ).
  • Step 4: Fetches additional details of the Purchase Requisition by querying the SAP. S/4HANA system via SAP Destination Service and Cloud Connector.
  • Step 5: Notification is sent to approver.
  • Step 6: Approve/reject the notification.
  • Step 7: Extension App sends the Approval/Rejection status to the SAP S/4HANA system.

For this scenario, let us look at the architecture and technical services used in SAP Business Technology Platform.

Solution Architectures

The two diagrams below depict the architectures with SAP BTP, Microsoft Azure and SAP S/4HANA (on-premises & on Microsoft Azure).

The key components leveraged are SAP Event Mesh, SAP Cloud Foundry Runtime, SAP Destination Services, Cloud Connector, SAP Authorization and Trust Management Service from SAP Business Technology Platform.

We will use Azure Bot Service, Blob Storage, Enterprise App Registration, MS Graph, and Azure Active Directory from the Microsoft Azure Platform and Microsoft Teams. Regarding connectivity, we will use the SAP Connectivity Service for an on-premises use case. In the case of SAP S/4HANA on Azure (RISE with SAP), we recommend using the SAP Private Link Service (see the connectivity use case).

Let us look at the scenarios in detail.

Scenario 1: High-Level Architecture: Using SAP Connectivity Service (SAP S/4HANA on-premise)

The architecture below leverages the Cloud Connector and SAP Connectivity Service to establish secured communication between SAP BTP and SAP S/4HANA seamlessly. We will see how the communication and flow of information work.

Figure 2: High-Level Architecture (Using SAP Connectivity Service)

We start with the first (1) step, wherein a business user logs into the SAP S/4HANA system to create a purchase requisition.

(2) An event is triggered from SAP S/4HANA, which is received in SAP Event Mesh using the webhook utility.
(3) Updates from SAP Event Mesh are sent to the Node.js extension application running on SAP BTP.
(4) Extension application (Node.js) sends the event to Microsoft Azure Bot Service.
(5) End-user in Microsoft Teams receives the event and approves/rejects the purchase requisition.
(6) Azure Bot Service acts as bot handler and updates are received in the SAP BTP extension application.
(7) The extension application updates the status in SAP S/4HANA via the SAP Destination service and Cloud Connector.

Note: The GitHub documentation will have the required detailed steps for configurations, setup and extension code. Link to the GitHub repository is mentioned below.

Scenario 2: High-Level Architecture:  Using SAP Private Link Service (SAP S/4HANA on Azure )

The architecture below leveraging the SAP Private Link Service in SAP BTP and Azure Private Link Service for connectivity helps seamlessly establish secured communication between SAP BTP and SAP S/4HANA deployed on Microsoft Azure. 

Briefly, SAP Private Link Service is available in SAP BTP with Microsoft Azure as an IaaS provider for establishing a secure connection between selected SAP BTP and Azure services, ensuring that the traffic is routed within the Azure network backbone(i.e. between SAP BTP VNet and Azure VNet).

Figure 3: High-Level Architecture (using SAP Private Link Service)

 

The steps mentioned in Scenario 1 hold good except for the last step, where SAP Private Link Service is used for establishing private connection between SAP BTP and SAP S/4HANA.

Look out for the below documentation for more information on both services. 

Please read this blog post, Extend your Business Processes with the new SAP Private Link service | SAP Blogs, by  Harutyun Ter-Minasyan, where he talks about how to consume data from the SAP S/4HANA system securely.

Benefits of this solution

The key benefits of bringing the interoperable designs are

  • Combine Microsoft Teams’ user experience with SAP BTP for SAP business processes.
  • Event driven integration touch points with SAP S/4HANA with SAP Event Mesh as central eventing hub.
  • Network security focused design with SAP Private Link Service specifically for RISE with SAP customers who have deployed SAP S/4HANA on Microsoft Azure.
  • Single Sign-On (SSO) and Principal Propagation of users from Azure AD to SAP BTP and to SAP S/4HANA.

Scenario Setup and Deployment

To get the entire scenario working, prerequisites and initial configurations are required in SAP BTP, Microsoft Azure and SAP S/4HANA.

The GitHub repository – Integrate SAP Business Processes in Microsoft Teams using SAP Business Technology Platform (github.com) contains code samples and instructions for developing a native Microsoft Teams application and an SAP BTP extension application for extending the S/4HANA business process into the Microsoft Azure ecosystem. The GitHub repository will cover:

  • Prerequisites required in Microsoft Azure, SAP BTP and SAP S/4HANA.
  • Configurations in Microsoft Azure, SAP BTP and SAP S/4HANA.
  • Extension Application development in Node.js.  This can be enhanced to incorporate additional validations and business scenarios.
  • How to set up principal propagation of users.
  • How to setup and leverage SAP Private Link Service and Azure Private Link Service in case of SAP S/4HANA on Azure.

Quick Demonstration

Demo showcasing business user approving Purchase Requisition via Microsoft Teams.

Approve/Reject Purchase Requisition from Microsoft Teams

During SAP Sapphire 2022 in Orlando, we had the opportunity to showcase this scenario to customers at the Microsoft booth. The ability to act on SAP business processes from Microsoft Teams via SAP BTP resonated extremely well. Microsoft Teams integration use cases with SAP SuccessFactors, SAP Sales Cloud, SAP Work Zone and others can provide customers with a quick starting point and use cases like the Purchase Requisition approval highlight how easy it is to build your own scenarios.

 

Showcase at SAPPHIRE 2022 – Microsoft Booth by
Holger Bruchelt, Program Manager for SAP on Azure at Microsoft

In a customer advisory board before the event, we had similar feedback: creating a more collaborative experience around SAP is currently top of mind for a lot of customers. Being able to interact with colleagues in the context of an SAP business object, but with bots can increase productivity dramatically.

Additional Reading

Summary

I hope this has given you a brief idea of leveraging SAP BTP to create business-focused applications and extend SAP S/4HANA business workflows into the Microsoft Azure ecosystem.

You might want to look for similar scenarios and identify the benefits for your organizations from processes cycle time improvement and increased usability of business applications from Microsoft Teams as one of the user interfaces channels.

Special thanks to Praveen Kumar PadegalLalit Mohan Sharma and Mahesh Kumar Palavalli for building the solution, curating GitHub Repository content and for their collaboration with Microsoft for creating solutions with interoperable architecture patterns.

To learn more about SAP BTP, see the learning journey on SAP Learning called Discover SAP Business Technology Platform, a great introduction to BTP and the Intelligent Enterprise strategy to see what it’s all about for free or check out Develop Advanced Extensions with SAP Cloud SDK plus much more free learning at SAP Learning site.

What next! We will be publishing the next series to this blog post with different business scenarios and other system integrations. Try it and let us know your feedback.

For more information about this topic or to ask a question, please contact us at paa_india@sap.com

Assigned Tags

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

      This is really great value add for customers. Thanks for sharing.

      Is this scenario possible if hyperscaler is aws?

      Author's profile photo Uma Anbazhagan
      Uma Anbazhagan
      Blog Post Author

      Hi Trim

      Yes, this scenario is possible for any Hyperscaler. However the connectivity with SAP S/4HANA will be via SAP Connectivity Service.

      Author's profile photo Adi Mogilevsky
      Adi Mogilevsky

      Great to see the next generation of the Duet/Mendocino Project

      Author's profile photo Sitakant Tripathy
      Sitakant Tripathy

      Hey Uma, thanks for ur informative blog here. Could u please help me with the S4 API that was used to take the decision from Teams into S4. For clarity, did u use Approvals in Teams or it was a chat service generated from the BOT to allow user to make the decision.

      Mahesh Kumar Palavalli : keep up the good work dude👏👏

      Regards,

      Sitakant

      Author's profile photo Mahesh Palavalli
      Mahesh Palavalli

      Hi Sitakant 🙂

      We are using the SAP MyInbox API from S/4 HANA on-premise to approve (with principal propagation). Yes, for Teams approval, we are using the chat service to allow the user to take the decisions.

      Regards,

      Mahesh

      Author's profile photo Ninad NN
      Ninad NN

      Good one Uma, Mahesh.

      Author's profile photo Saranya Sampath
      Saranya Sampath

      Hi Uma,

       

      I followed your blog In step3 Configure SAP-S4 HANA I am getting below issues

      Step Import ABAP Git Project to run - While trying to import asking Credentials , I am sure this is public repository .

      Step Connection Test** to check if the connection to Event Mesh is established successfully - Getting below error

       

       

      Please help

      And Can we send notification to teams from SAPUI5 application? . Please guide

       

      Thanks and Regards

      Saranya

      Author's profile photo Mahesh Palavalli
      Mahesh Palavalli

      Hi Saranya Sampath ,

      • Ideally, it shouldn't ask for it, try to follow this tutorial to clone the repo:

      https://docs.abapgit.org/guide-online-install.html

      Can you also try giving your user id and token(generated from GitHub) once and see? I will meanwhile see if this issue can be replicated.

      • This looks like an issue with the connection. Did you maintain the certificate in STRUST? something similar to below

      https://help.sap.com/docs/EXCISE_TAX/14d4836ce4ae4a2cb12de79dc593a87d/e64a893649e247f4a2914330583cb373.html

      • Yes, you can call from SAP UI5, but the best way is to create an OData service in your SAP S/4HANA on-prem system and write the logic to send the notification to teams inside the OData action. You can then call this service from your SAP UI5 application.

      Warm Regards,

      Mahesh

      Author's profile photo Saranya Sampath
      Saranya Sampath

      Hi Mahesh,

       

      Thanks for your quick reply.

       

      As per Steps from README

      Open **SE38** and execute the program **ZABAPGIT_STANDALONE**

      Click **New Online** button to import the repository.

      Enter the repository url, package & branch as **abap** and click **Create Online Repo** to import the repository

      trying to clone branch called abap from this repository

      https://github.com/SAP-sample/btp-msteams-extend-workflow.git

      I used my github credentials. But I am getting 401 unauthorized error

      Will check certificate part.

      We already having ODATA service from on-premise HANA. Could you please share any blog or tutorial for sending notification from SAP UI5 to teams.

      Regards

      Saranya

      Author's profile photo Mahesh Palavalli
      Mahesh Palavalli

      Hi Saranya,

      ABAP code from the gitrepo sends a message to the Event mesh queue, which has a handler that pushes the notification to the Teams. (All the code is available in the git repo). You can use the same ABAP code in your existing OData service to send the message to the event mesh queue.

      Please create an issue in the git repository for further questions to track your issue:

      https://github.com/SAP-samples/btp-msteams-extend-workflow/issues

      Cheers!!

      Mahesh

      Author's profile photo Moritz Hagg
      Moritz Hagg

      Hello Uma,

      at first nice Solution.

      But I have few Questions:

      1. The JavaScript and python SDK from Microsoft is only recomended to November 2023. Is there an alternative way to get the service at the BTP ready?
      2. My plan to do this was to write my own Event driven Bot for Teams wich can comunicate via Webservices with the SAP-System. The Bot can send and update AdaptiveCards without using th BTP to deploy this only the bot service in Teams is recommended