Technology Blogs by SAP
Learn how to extend and personalize SAP applications. Follow the SAP technology blog for insights into SAP BTP, ABAP, SAP Analytics Cloud, SAP HANA, and more.
cancel
Showing results for 
Search instead for 
Did you mean: 
uma-anbazhagan
Product and Topic Expert
Product and Topic Expert
17,173

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.c...

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-minasyan2, 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.c... 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 praveenpadegallalitmohan7443 and maheshkumar.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
13 Comments
trimbandaru
Participant
This is really great value add for customers. Thanks for sharing.

Is this scenario possible if hyperscaler is aws?
uma-anbazhagan
Product and Topic Expert
Product and Topic Expert
0 Kudos
Hi Trim

Yes, this scenario is possible for any Hyperscaler. However the connectivity with SAP S/4HANA will be via SAP Connectivity Service.
Sycntegral
Active Participant
Great to see the next generation of the Duet/Mendocino Project
sitakant_tripathy2
Active Participant

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.

maheshkumar.palavalli : keep up the good work dude👏👏

Regards,

Sitakant

maheshpalavalli
Active Contributor
0 Kudos
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
ninad_narad
Active Participant
Good one Uma, Mahesh.
SaranyaSampath
Participant
0 Kudos

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

maheshpalavalli
Active Contributor
0 Kudos
Hi saranyasampath ,

  • 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/e64a893649e247f4a2914330583cb3...

  • 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
SaranyaSampath
Participant
0 Kudos
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
maheshpalavalli
Active Contributor
0 Kudos

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

former_member815364
Discoverer
0 Kudos
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

manishsingh0609
Discoverer
0 Kudos

Hi Uma,

Thanks for this wonderfull blog, I went thrpough all part of this blog but two things is loosing my confidence after seeing architecture of the first scenario.

1- Will SAP S4HANA directly publish the PR Request to SAP Event Mesh if yes then how or It will route through SAP Cloud connector. 

2- What is the use of MS Grap service.

Please guide and suggest.

Thanks in advance.

maheshpalavalli
Active Contributor
0 Kudos
Hi Manish,

  1. SAP S/4HANA doesn't use SAP Cloud Connector to send messages to SAP Event Mesh by design.

  2. MS Graph Service is used to connect with Microsoft services. For instance, the service to connect with Teams.


Thanks,
Mahesh