openSAP Building Applications on SAP BTP ... - s3.xopic.de

23
openSAP Building Applications on SAP BTP with Microsoft Services Week 3 Unit 1 00:00:05 Hello and welcome to the third week of the openSAP course on building applications on the 00:00:10 SAP Business Technology Platform using Microsoft services. 00:00:13 My name is Harutyun Ter-Minasyan. I'm a product expert for 00:00:16 the Business Technology Platform at SAP. In the last week, you learned 00:00:22 how to build integration scenarios using the SAP Business Technology Platform 00:00:26 and Microsoft services. And this week, we will have a look 00:00:31 at extension scenarios and explore the SAP Workflow Management. 00:00:36 Furthermore, we will learn how to create a "leave request" workflow, 00:00:40 and trigger it from Microsoft Teams. We will also learn how to send adaptive cards 00:00:45 from the workflows, and create the calendar entry 00:00:49 using Microsoft Graph. So let us start with unit one. 00:01:00 In this unit, I would like to give you an overview of SAP Workflow Management, 00:01:03 its capabilities, how you can set up the services, and everything you need to know about the Workflow APIs. 00:01:12 Last but not least, I would like to give you an overview of the target scenario 00:01:16 which we are going to build during upcoming units. So SAP Workflow Management is the cloud service offering 00:01:27 in the BTP extension suite for automating digital processes. 00:01:32 It comprises the following capabilities into one offering. We have the workflows, for developers and business users, 00:01:42 for building and running their workflows, and managing their process variants, 00:01:47 in a low-code no-code approach. We have the business rules 00:01:51 for automating the decision process and defining business policies and regulations. 00:01:58 Then, we have the end-to-end process visibility to ensure that the process execution 00:02:04 is behaving as expected and it's providing the right business value. 00:02:09 And also that we can identify performance issues, for example. 00:02:14 Then we have the SAP Fiori My Inbox application, which allows the end user a central access 00:02:21 to their tasks across different workflows and different provider systems. 00:02:27 Last but not least, this is tightly integrated with SAP Intelligent Robotic Process Automation 00:02:32 for automating tasks, and with SAP Conversational AI 00:02:36 for adding a digital assistant. All the mentioned capabilities of SAP Workflow Management 00:02:47 will help you to, first of all, enhance productivity by automating and tracking tasks like 00:02:54 approvals, or order fulfillments. It will help also to build and modify workflow applications 00:03:03 using Web-based tools, to embed the workflows into your custom applications using RESTful APIs. 00:03:13 And finally, to tailor your business processes by extending the cloud applications and workflows. 00:03:25 Now, let's have a look how we can get started with SAP Workflow Management.

Transcript of openSAP Building Applications on SAP BTP ... - s3.xopic.de

Page 1: openSAP Building Applications on SAP BTP ... - s3.xopic.de

openSAP Building Applications on SAP BTP with Microsoft Services Week 3 Unit 1

00:00:05 Hello and welcome to the third week of the openSAP course on building applications on the

00:00:10 SAP Business Technology Platform using Microsoft services.

00:00:13 My name is Harutyun Ter-Minasyan. I'm a product expert for

00:00:16 the Business Technology Platform at SAP. In the last week, you learned

00:00:22 how to build integration scenarios using the SAP Business Technology Platform

00:00:26 and Microsoft services. And this week, we will have a look

00:00:31 at extension scenarios and explore the SAP Workflow Management.

00:00:36 Furthermore, we will learn how to create a "leave request" workflow,

00:00:40 and trigger it from Microsoft Teams. We will also learn how to send adaptive cards

00:00:45 from the workflows, and create the calendar entry

00:00:49 using Microsoft Graph. So let us start with unit one.

00:01:00 In this unit, I would like to give you an overview of SAP Workflow Management,

00:01:03 its capabilities, how you can set up the services, and everything you need to know about the Workflow APIs.

00:01:12 Last but not least, I would like to give you an overview of the target scenario

00:01:16 which we are going to build during upcoming units. So SAP Workflow Management is the cloud service offering

00:01:27 in the BTP extension suite for automating digital processes.

00:01:32 It comprises the following capabilities into one offering. We have the workflows, for developers and business users,

00:01:42 for building and running their workflows, and managing their process variants,

00:01:47 in a low-code no-code approach. We have the business rules

00:01:51 for automating the decision process and defining business policies and regulations.

00:01:58 Then, we have the end-to-end process visibility to ensure that the process execution

00:02:04 is behaving as expected and it's providing the right business value.

00:02:09 And also that we can identify performance issues, for example.

00:02:14 Then we have the SAP Fiori My Inbox application, which allows the end user a central access

00:02:21 to their tasks across different workflows and different provider systems.

00:02:27 Last but not least, this is tightly integrated with SAP Intelligent Robotic Process Automation

00:02:32 for automating tasks, and with SAP Conversational AI

00:02:36 for adding a digital assistant. All the mentioned capabilities of SAP Workflow Management

00:02:47 will help you to, first of all, enhance productivity by automating and tracking tasks like

00:02:54 approvals, or order fulfillments. It will help also to build and modify workflow applications

00:03:03 using Web-based tools, to embed the workflows into your custom applications using RESTful APIs.

00:03:13 And finally, to tailor your business processes by extending the cloud applications and workflows.

00:03:25 Now, let's have a look how we can get started with SAP Workflow Management.

Page 2: openSAP Building Applications on SAP BTP ... - s3.xopic.de

2

00:03:31 Of course, first of all, you need a Business Technology Platform account,

00:03:35 which you already created in the first unit. Then, one option is to activate the workflow management

00:03:43 from the service marketplace in a BTP cockpit or using the BTP command line interface (CLI).

00:03:49 So this option involves a couple of manual steps, like adding the entitlements, the quotas,

00:03:57 assigning the role collections to the users. If we miss the one or other step during this process,

00:04:06 they can potentially lead to failures while we are implementing our use cases.

00:04:11 This is something we, of course, would like to avoid. That's why the second option is,

00:04:17 which will help us to automate the steps with the help of so-called boosters.

00:04:23 So, this can help us to automate the onboarding and the setup process.

00:04:29 With the boosters, we will have a fully automated setup of the workflow service,

00:04:35 the business rules, and the business application studio in the Cloud Foundry environment.

00:04:40 The execution of the booster, I will show you in a bit, in a demo.

00:04:49 SAP Workflow Management also comes with pre-packaged applications,

00:04:53 like monitoring tools, which can be used for administrative activities by the process administrators.

00:05:00 For example, for monitoring the progress of the workflow instance,

00:05:04 viewing the metadata and the context information. It will also help them to troubleshoot the processes

00:05:12 to find issues. Furthermore, we have the My Inbox Fiori application,

00:05:19 which will allow the end users central access to their tasks,

00:05:23 and can be used for approving or rejecting certain requests. SAP Workflow Management offers a lot of APIs

00:05:36 and pre-packaged process content, which can be used from your applications.

00:05:41 It's available in SAP API Business Hub. The API Business Hub is the central place

00:05:47 for exploring and testing all SAP and partner APIs, integration content, process content, and so on.

00:05:54 And the workflow service is no exception, and can be found in the API Business Hub.

00:06:00 This is what we also did for the extension use case we were building,

00:06:05 and we used the APIs for interacting with the service. Now, I would like to show you a short demo

00:06:13 on how we can get started with SAP Workflow Management. For that, let's go to the

00:06:18 Business Technology Platform cockpit. And, in the BTP cockpit, we can find

00:06:27 this section called "Boosters". And when we open the boosters,

00:06:32 we will find the list of available boosters which will help us with the onboarding process.

00:06:40 In the category "Digital Process Automation", we can find the booster

00:06:43 for setting up the workflow management. When we open the booster, we can find the components,

00:06:53 all the services, and subscriptions which will be activated after execution of the booster.

00:06:58 For example, we have the SAP Business Application Studio, which we will use later for designing the workflows.

00:07:05 We have the Workflow Management service itself, the business rules, and so on

00:07:10 What we need to do is just to start the execution of the booster,

00:07:17 and it will check all the services and activate them in our BTP account.

00:07:25 So, you can see now that the activation is currently in progress.

00:07:32 After a couple of minutes, it will be finished. And we will find all the services in our account.

Page 3: openSAP Building Applications on SAP BTP ... - s3.xopic.de

3

00:07:40 So, you can see that everything was successfully finished. Now I can navigate to my BTP sub-account.

00:07:51 And in my BTP sub-account under "Instances and Subscriptions",

00:07:57 which was initially empty, no services were activated there,

00:08:03 now we will find a couple of subscriptions and instances activated there.

00:08:10 For instance, the Business Application Studio, and the Workflow Management service.

00:08:16 So, those services we will use in upcoming units for building our "leave request" workflow.

00:08:23 Before finishing the unit, I would like to give you an overview of the target scenario

00:08:27 which we are going to build in upcoming units. So the end user, or the employee,

00:08:33 can create a "leave request" via chatbot in Microsoft Teams, and it will trigger an SAP workflow.

00:08:40 The manager can approve or reject this request, either in the Fiori My Inbox application,

00:08:46 or directly in Outlook using Microsoft Adaptive Cards. As soon as a request is approved,

00:08:53 the calendar entry will be created in the applicant's Outlook using Microsoft Graph.

00:09:04 Here, you can find some further reading materials if you want to learn more about SAP Workflow Management.

00:09:10 You can find the links to SAP API Business Hub to check out all the available APIs.

00:09:19 And finally, you can find an upcoming openSAP course dedicated to SAP Workflow Management,

00:09:27 where you can learn more details about it. So in this unit, we have learned

00:09:35 what SAP Workflow Management is, how to get started with it,

00:09:39 and where to find the APIs and documentation. Also about the My Inbox and monitoring tools applications.

00:09:47 Last but not least, we saw the target scenario which we will build in upcoming units.

00:09:54 So, this is the end of this unit. And in the next unit, we will go one step further

00:09:59 and start creating the "leave request" workflow. Thank you for listening,

00:10:04 and I hope to see you in upcoming units.

Page 4: openSAP Building Applications on SAP BTP ... - s3.xopic.de

4

Week 3 Unit 2

00:00:06 Hello and welcome to week three, unit two of the openSAP course on building applications on

00:00:10 the SAP Business Technology Platform using Microsoft services.

00:00:15 My name is Harutyun Ter-Minasyan. I'm a product expert for the Business Technology Platform

00:00:19 at SAP. In the last unit, I talked about SAP Workflow Management,

00:00:24 its capabilities, and how to get started with it. In this unit, we will focus on building a

00:00:30 "leave request" workflow. We will cover how to create the leave request workflow

00:00:36 using SAP Business Application Studio, all about different user tasks available in

00:00:41 Workflow Management, about the forms, context variables, and much more.

00:00:47 Finally, how we can build, deploy, and test a workflow project on the Business Technology Platform.

00:00:56 Let's have a short recap about the scenario which we are going to build during this week.

00:01:01 The employee would like to create a "leave request" using the chatbot available in Microsoft Teams,

00:01:07 which will trigger the "leave request" workflow. The manager can approve or reject this workflow

00:01:12 either via the My Inbox application or directly in Outlook using Microsoft actionable messages.

00:01:20 And finally, we will create a calendar entry in the requestor's calendar using Microsoft Graph.

00:01:28 We will start building the scenario by building the workflow of the leave request.

00:01:39 The leave request workflow can be defined very simply by a few flow steps.

00:01:44 So, the flow will be started by an API call coming from Microsoft Teams.

00:01:50 Following that, we define the user task, ApproveOrReject Manager,

00:01:56 which has all the fields and forms necessary for the manager to approve the request.

00:02:02 Usually, the user tasks are those tasks which the end user performs, and these user tasks

00:02:10 will appear in the My Inbox application and in the custom application where the processor can see

00:02:17 the details about the task and can complete it. Following from that, we have the gateway for

00:02:25 the Manager Decision, and based on the decision we have defined the mail task

00:02:31 for DeclinedMail or ApprovedMail to send the leave requestor the approval status, via e-mail.

00:02:40 The context of the leave request workflow consists of a couple of variables.

00:02:45 The first one is the reason. This could be sick leave, vacation, and so on.

00:02:51 Then we have the requestor, the e-mail address of the requestor,

00:02:56 finally, the start and end day of the leave request. We'll explore in detail all these steps in a demo.

00:03:06 Now let's start and build our first workflow in BTP. In the last unit, we activated all the necessary services,

00:03:19 and here under Subscriptions we will find SAP Business Application Studio.

00:03:26 And let's navigate there to our development environment where we will build

00:03:31 the workflows. So, first of all, we need to create a new development space

00:03:36 and activate all the necessary tools so we can start the development.

00:03:41 So, what we need to do is to select the type of environment, and we will see a list of available services and extensions

00:03:51 which we can activate. So, for this unit and the entire week, we will need

00:03:57 later the Java Tools, MTA Tools, and, of course, for this unit for building workflows,

Page 5: openSAP Building Applications on SAP BTP ... - s3.xopic.de

5

00:04:03 the Workflow Management tools activated. As you can see, I already created and activated

00:04:13 another space, which I'll now use to build the scenario. Let's go into the space.

00:04:27 It might take a couple of minutes to load the space. Now the space is initiated, and here we have

00:04:39 different options to start building the project. The simplest way would be, if you're starting from scratch,

00:04:45 to use the templates provided by Business Application Studio for building workflow applications.

00:04:52 In my case, I already prepared and created a workflow project for the leave request,

00:04:58 which I would like to show you. Let's have a first look at the workflow definition itself.

00:05:06 So as you can remember, we defined the following flows. So the trigger, initiated by Microsoft Teams.

00:05:16 And following that, we have the user task. And we can have a look at the user task a bit in detail.

00:05:26 So here we provide all the information which we would like to show later on in, for example,

00:05:34 the My Inbox application, about the task, so what the end user will see,

00:05:40 in this case, the manager will see, and also some information in which inbox

00:05:47 the task will appear. In our case, to make it simple,

00:05:53 the approver and the requestor are the same person. So we provide from the context variable

00:05:59 the requestor e-mail address, who will approve the request himself.

00:06:07 We have the user interface where the fields are defined in a form.

00:06:13 So the form, we find also in the project. And here are the Requestor,

00:06:20 the Reason, Startdate, Enddate fields defined. Let's go back to the workflow.

00:06:27 Then we have the gateway for the manager decision, and following that tool, mail tasks accepting and declining.

00:06:39 And if you look into the DETAILS, you can see that here we are providing the details for the e-mail

00:06:46 to whom the request or the approval should be sent. In this case, again, we are reading from

00:06:53 the context variable the e-mail address, to send to that address the approval.

00:06:58 And we provide a subject and some mail text which will appear in the inbox of the requestor.

00:07:07 With that, we can end the workflow. Finally, I created some sample data which we can use

00:07:16 for testing purposes in Workflow Management tools. Now we have everything ready to deploy our workflow.

00:07:28 For that, I can, in my project, build the project which will generate for us a deployable archive file.

00:07:39 This archive file, we can find in the mta_archive file. And here we can find the file, and we can just deploy it

00:07:53 on the BTP. One last step is required to start testing the application.

00:08:06 And since we are using the mail task, we need to specify a mail server

00:08:11 which can be used for sending the e-mails out. For that, I created a destination which we can download

00:08:18 and import into our BTP Cockpit. In the BTP Cockpit, under the Destinations section,

00:08:27 you have the option to import this destination. And as you can see, here we are specifying all the details

00:08:43 needed for the SMTP server, for example, a hostname, the port, and, of course, the credentials that we need.

00:09:00 The Workflow Management service will use this destination and pull the configuration to send the e-mail out.

Page 6: openSAP Building Applications on SAP BTP ... - s3.xopic.de

6

00:09:07 Now we are ready to test the leave request workflow. So for that, we can go to the Workflow Management cockpit.

00:09:22 If you remember from a previous unit, Workflow Management provides us these monitoring tools,

00:09:29 and also the My Inbox application. And we can find our leave request workflow

00:09:35 in our Workflow Definitions. As you can see, the EmployeeLeaveRequest is defined here.

00:09:50 And now we can do a test and initiate a new instance which will pull the example data we provided

00:10:00 in the definition, and we can start a new instance of the workflow.

00:10:08 The instance has started. When we go back to the cockpit,

00:10:12 we will see that in our My Inbox application, a new task will appear for my user.

00:10:18 And if I go there, since I'm the same person who will approve the leave request, in this case,

00:10:26 I will see the information of the leave request, the details, and here I can approve or reject.

00:10:36 As an example, let's approve it. When we go back to Workflow Instances,

00:10:44 here you can see that we have one running instance, with the workflow context provided.

00:10:53 And if we refresh it, we can see that the task was completed successfully,

00:10:59 and we can have a look at the execution log. It was initiated by the user,

00:11:06 followed by the manager decision, and the manager decision was made

00:11:14 and the task was completed, and the e-mail was sent out successfully.

00:11:19 To verify it, we can go to our inbox, and we can find the approved vacation request in our inbox.

00:11:36 This is the end of the unit. You should now be able to create a leave request workflow,

00:11:42 have a basic understanding of the different task types available, and finally,

00:11:48 build and deploy a workflow project to the Business Technology Platform.

00:11:53 In the next unit, we will change gear, and talk about SAP Conversational AI.

00:11:58 Thanks for listening. I hope to see you in the next week.

Page 7: openSAP Building Applications on SAP BTP ... - s3.xopic.de

7

Week 3 Unit 3

00:00:05 Hello, and welcome to week three, unit three of the openSAP course Building Applications on

SAP BTP with Microsoft Services.

00:00:14 My name is Harutyun Ter-Minasyan. I'm a product expert for Business Technology Platform at SAP.

00:00:20 In the last unit I showed you how to create a leave request workflow using Business Application Studio,

00:00:27 and how to deploy it into BTP. This unit is dedicated to SAP Conversational AI.

00:00:38 We will start the unit with the overview of SAP Conversational AI. Then we will learn how to design a leave request chatbot

00:00:46 and trigger a workflow. Finally, how to integrate

00:00:50 Conversational AI with Microsoft Teams with the help of Azure bot.

00:01:00 Let us have a look once again at the solution architecture. And as you remember, last week,

00:01:08 we created the leave request workflow. And today we would like to create a chatbot

00:01:12 to connect to this workflow. And also that we integrate the chatbot with Microsoft Teams.

00:01:23 The main idea of SAP Conversational AI is to help the businesses to improve

00:01:28 the employee and the customer experiences. This can be achieved by combining two main components.

00:01:35 The first one is the end-to-end bot-building platform, which will allow you to create a bot from scratch with

00:01:42 low-code development, train the bot, connect it to external platforms, and monitor it.

00:01:49 And the second one is the digital assistant, which will offer you the conversational interface

00:01:56 to interact with your chatbot and also interact with the entire SAP solution portfolio.

00:02:06 Bot-building platform has the following four capabilities. The first one is the training,

00:02:14 which means building and maintaining the behavior of your chatbot,

00:02:17 which will make it understand any kind of question coming from the end user.

00:02:24 The second one is building your bot, which means building the flow of your conversation

00:02:31 from what we are calling in conversational AI as a "skill", I will explain it in the next slides in more detail.

00:02:38 The third one is the bot connector, which will help you to connect the chatbot

00:02:42 with any SAP solution or external platform. And the last one is monitoring of the chatbot,

00:02:49 which is also known as bot analytics, to understand how the customers and employees are talking to the chatbot,

00:02:57 and to analyze how it's actually working and is performing. As an outcome, you can find example conversation

00:03:07 with the bot to request the leave. So this is actually the bot that you are going to build

00:03:13 during this openSAP course. After creating the bot, we can ask for a leave request.

00:03:20 For example, I want to take a leave, and the bot will identify the leave request intent

00:03:25 and ask accordingly the required information for the leave request.

00:03:30 In this case, the start and end date of the leave. Also the leave type, and in conversational AI terminology,

00:03:37 intents represent an intention or something that the user wants to do.

00:03:43 So we'll see later how to define them in a demo. And after providing the start and end date,

00:03:49 the bot will confirm the request and trigger the workflow. Finally, we can close the conversation

00:03:56 by saying "thank you" or "goodbye". So once we have defined the intentions and trained the bot,

Page 8: openSAP Building Applications on SAP BTP ... - s3.xopic.de

8

00:04:05 we have to tell it what to do when it recognizes the intention of the user.

00:04:12 So this is what we call building skills. As you can see here, we have five skills.

00:04:18 For example, the skill "greetings" will be triggered when we say "hello" to the bot.

00:04:24 It will recognize our intention for greeting and will trigger the skill "greetings".

00:04:30 So this greeting skill doesn't have complex logic or many actions.

00:04:35 It's very simple, it just answers our greeting. It can be, for example, also a bit personalized

00:04:42 and add our name while saying, "hello". Similarly is the "goodbye" skill.

00:04:48 We have then two predefined other skills, which are created by default with every bot.

00:04:53 The first one is the "fallback", which is triggered if no other skill is triggered.

00:04:58 And the second one is "disambiguation", which is triggered during the conversation

00:05:03 in case multiple skills are triggered. Then we have the "leave-request" skill,

00:05:08 which is our main skill. And let's have a look at it in more detail.

00:05:15 So, basically, the skill "leave-request" handles the leave-request questions

00:05:20 and triggers the workflow. And as I mentioned it before,

00:05:24 the skill is triggered when an intention is identified. In this case, we are checking

00:05:30 if the leave-request intent is present. Once it's fulfilled, the next step is to retrieve

00:05:37 the information about the leave request from the user. This is what we call in conversational AI a "requirement".

00:05:43 So the bot will ask for the start and end date from the user. And once we have all the necessary information

00:05:50 from the user, it is time to perform certain actions. In this case, we would like to call the workflow API

00:05:59 and provide in the context all the information which we gathered during the conversation with the user.

00:06:07 Once we finalize the building and testing of the bot, we can connect the bot

00:06:13 to one of these supported channels. In this case, we would like to connect with Microsoft Teams.

00:06:20 First of all, we need to create a new bot channel registration in Microsoft Azure

00:06:26 and get all necessary credentials and then provide these credentials in a conversational AI

00:06:34 to establish connection to Microsoft Teams. Okay, now let's jump into the system

00:06:40 and see all the steps we learned here in action in the system.

00:06:46 This is the dashboard of Conversational AI, where we find all the bots we created,

00:06:51 or we can create new bots. As you can see,

00:06:54 I already created one bot calling leave-request. Let's have a look inside this leave-request bot.

00:07:04 As you remember, we had four capabilities for conversational AI bot building -

00:07:10 training it, building, connecting, and monitoring. Let's start with the training.

00:07:16 So the training part is where we define the intents, or the intentions of the user.

00:07:22 And here we created the intention of the leave-request, where we can specify the expressions

00:07:31 with which the end user can ask for the leave request. So we listed a couple of combinations of expressions,

00:07:38 how the user can ask the chatbot for the leave request. So you don't need to provide all possible combinations,

00:07:45 just giving a couple of samples. The platform will use it to train the bot

00:07:51 also to understand other combinations for asking for the leave request.

00:07:56 Once we provided the training information and trained the intents,

00:08:00 the next step is to build the skills. So whenever the intentions are recognized, right?

Page 9: openSAP Building Applications on SAP BTP ... - s3.xopic.de

9

00:08:07 So we can now do the actions based on that, which are our skills defined.

00:08:14 In this case, we have the leave-request skill, and the first step is to trigger the skill

00:08:21 whenever we identify that the user was asking for the leave. Once it's fulfilled, we need to start gathering

00:08:30 the information from the user, from the conversation, in this case, providing it in the requirements.

00:08:38 So we defined very simple requirements in this example, to get the start date, end date, and the leave type,

00:08:46 by providing the types here. So we can get from the user

00:08:51 the information to create the workflow leave request. Once we've gathered information,

00:08:59 we can actually perform the action. And the first step is just to inform that we have

00:09:06 all the information, and also list it from the contextual variables.

00:09:11 And as the next step, to perform the API call to the workflow instance.

00:09:17 So we provided the workflow instance API here and the credentials, which we took from the instance

00:09:24 from the BTP cockpit. And in the body, we need to give the context information,

00:09:28 which we gathered here, and which will be used from the workflow service for creating the leave request.

00:09:36 Once the API call is successfully triggered, we can let the user know that it was successfully triggered.

00:09:44 We have the option in a dashboard also to do the chat preview about our bot, so we can test it

00:09:55 and see how the chat is actually working directly here. I will continue it in a bit,

00:10:04 but for now I want to move to the next capability, to the connection, to connect it with the other platforms.

00:10:12 And we would like to connect with Microsoft Teams. As you can see, I already established connection

00:10:19 with Microsoft Teams, and it can be achieved by a few steps, following the wizard here.

00:10:27 What we need to do, We need to first of all

00:10:30 register a bot channel in Azure portal. Let's go to the Microsoft Azure portal where we can

00:10:39 look for bot channel registration. We can find the bot channel registration service.

00:10:49 And here providing the unique identifier, subscription type, and a couple of pieces of location information,

00:10:58 we can actually create this registration for the bot in Azure.

00:11:02 So this is something that I already prepared as well, and we can find it here.

00:11:10 And once the creation is done in the configuration part, we will find all the information we need to exchange

00:11:18 between two platforms. So we need the Microsoft application ID

00:11:22 to provide in Conversational AI, and also to get the credentials from here.

00:11:29 Finally, we provided the messaging endpoint from Conversational AI into Microsoft Azure here.

00:11:37 So once these steps are performed, the channel registration is actually done,

00:11:44 and we can have a look within the channels. And you can see that I have one running channel for Microsoft Teams.

00:11:55 And when I go to Microsoft Teams, you can see that my chatbot channel is available in the chat.

00:12:05 And I can start my conversation with the bot. So I can ask that I want to take a leave to the bot.

00:12:20 Provide a start date and also provide the end date of the leave.

Page 10: openSAP Building Applications on SAP BTP ... - s3.xopic.de

10

00:12:30 Finally, the bot will ask me about the purpose of my leave. This time I will say I will take sick leave

00:12:39 for these days. You get the confirmation that the workflow

00:12:49 was successfully triggered. So to verify it,

00:12:53 we can go into SAP Workflow Management cockpit. And as you can remember,

00:13:00 we can have the monitoring of workflow instances. And if you look inside the workflow instances,

00:13:07 we will find there one running instance, which we just created.

00:13:12 And from the context information, we can read that it was the request we just requested

00:13:19 for the sick leave. What I can do as well,

00:13:23 the task of the leave request will also appear in the My Inbox application,

00:13:28 where I can, the manager, in this case me, can approve or reject the leave request.

00:13:42 As usual here, you can find some learning materials if you want to learn more about the SAP Conversational AI.

00:13:49 Also, you can find the openSAP course dedicated to conversational AI

00:13:54 if you want to learn more details about it. This is the end of unit three.

00:14:01 Now you should be able to create a simple chatbot using SAP Conversational AI

00:14:07 and connect it to Microsoft Teams. In the next unit,

00:14:12 you will meet my colleague, Holger Bruchelt, who will explain to you how to send an adaptive card

00:14:18 from the workflow. So thank you for your attention,

00:14:22 and hope to see you in upcoming units.

Page 11: openSAP Building Applications on SAP BTP ... - s3.xopic.de

11

Week 3 Unit 4

00:00:05 Hello and welcome to week three, unit four of our openSAP course,

00:00:10 Building Applications on SAP Business Technology Platform with Microsoft Services.

00:00:16 In this unit, we'll take a look at adaptive cards

00:00:19 and how we can leverage them in the context of SAP workflows.

00:00:24 So basically what we want to do in this unit is to take one of the workflow tasks that we had created before

00:00:33 in the units with Harutyun, and transform them into so-called adaptive cards.

00:00:37 Now, obviously in order to do this, we need to understand what is actually an adaptive card.

00:00:41 So we'll also quickly take a look at the concepts and the ideas of these adaptive cards.

00:00:46 And then we'll actually send an e-mail, an Outlook message, an actionable message to Outlook

00:00:54 so that you can approve your workflow directly from within Outlook.

00:01:00 So all of this is actually based on a fantastic blog post by Harald Schubert,

00:01:06 and we have taken this and enhanced and extended this scenario.

00:01:11 So basically what we'll do now is we'll take a look at this custom Java application that you can see here in the middle.

00:01:19 This Java application is basically the heart of the integration scenario that we have here.

00:01:25 This Java app will actually act as a transformer to send or to take the workflow task

00:01:33 and transform it into this adaptive card, send it to Outlook,

00:01:37 and then also listen to and retrieve updates that will come in via the adaptive card.

00:01:44 So basically we have these different steps here.

00:01:49 So we have the Java custom app listening to updates or new tasks in the Business Technology Platform.

00:01:59 When that is done, then the application actually takes the data

00:02:03 from this specific form, converts the form,

00:02:08 the task form into an adaptive card, sends this e-mail or this adaptive card

00:02:15 via the Exchange server to the specific user, the Outlook of the specific user

00:02:22 processes this adaptive card, and asks the user to take a decision.

00:02:27 And then once this decision is done, then the task is actually approved

00:02:35 in the SAP system. And in this unit,

00:02:37 we'll skip the last step here, the create calendar item.

00:02:42 That's something that we can look for in our next unit. So basically if we just focus on this actionable message,

00:02:50 the idea here is that the e-mail that is sent to the e-mail server,

00:02:57 then retrieved in Outlook there, this is an actionable message, basically.

00:03:03 So it's not only a read functionality where the user can read through an e-mail,

00:03:08 but the user can actually take actions. So you'll see in a second that there are certain activities

00:03:14 associated to this. And if a user clicks on one of these buttons,

00:03:17 then we can do an http call back to the Business Technology Platform, to our Java app,

00:03:22 and then approve this specific leave request in our specific case in the SAP system.

00:03:31 So what are all these adaptive cards? These adaptive cards are platform-agnostic snippets

00:03:38 of a user interface. And they're based on a JSON structure,

00:03:43 and they have certain elements that allow you to easily create

00:03:48 beautiful-looking user interfaces that not only run in Outlook,

Page 12: openSAP Building Applications on SAP BTP ... - s3.xopic.de

12

00:03:53 but really across different platforms. So the beauty there is if you create this adaptive card,

00:03:59 it runs in Outlook. So a user can see it embedded in an e-mail,

00:04:03 but it also runs in Teams and SharePoint and in lots of other clients.

00:04:07 So it's a really beautiful way to bring actionable information to different end users.

00:04:15 In our specific flow again, in this specific unit,

00:04:19 what we'll focus on is just the Java app that creates the adaptive card out of the SAP workflow tasks,

00:04:28 then transforms this and sends the application or this adaptive card to the user

00:04:35 and the user then can finally approve the task in Outlook.

00:04:41 So actually, let's take a quick look at how this looks. So let me quickly open up here

00:04:50 my Teams experience. So obviously this is something that we have created before.

00:04:55 So as before, I can just interact with this specific chatbot here.

00:05:02 So I'm getting a reply here from the chatbot. If I now say "leave request"

00:05:10 so that we want to create a leave request, now the bot asks me,

00:05:15 "Well, what is the start date?" So maybe we'll start this for tomorrow.

00:05:24 And the end date is, let's say, in two days from today,

00:05:30 so July 10th, 2021. So with this information now,

00:05:37 the chatbot has all the relevant information it needs to create the leave request.

00:05:43 It just asks me now what kind of leave request. So we'll select a vacation.

00:05:50 And that's basically it. So now as before,

00:05:54 the chatbot actually creates the leave request in the SAP system.

00:05:58 So if I switch over here to the inbox, if I refresh the screen here,

00:06:04 then we can see that there's now one task pending in the inbox.

00:06:11 And obviously I could now approve this specific leave request directly here

00:06:15 from the Fiori application. We could have other applications that bring this information

00:06:21 to the user, but the important thing is now that the workflow is triggered.

00:06:25 Now the important thing that happens hopefully in a second,

00:06:29 is if I switch over here to my e-mail, and you can see it just arrived.

00:06:35 I got this e-mail that says, look there's a new vacation request.

00:06:39 And here you see all the relevant information. And again, this could be even more beautiful

00:06:43 and there could be additional information in here, but what I can now do is I can just click on Accept.

00:06:48 So you can see there's really an action provided in this specific e-mail.

00:06:52 And if I click on accept, then as mentioned before,

00:06:56 we sent an HTTP request back to the SAP system. And now obviously if I switch over here to my inbox,

00:07:02 and if I refresh here this list, you can see that the leave request was actually approved

00:07:10 and is now gone from my task list. Okay.

00:07:15 So how have we done this? Well, actually, it's pretty simple.

00:07:19 The most important thing actually is that we need to register this actionable message

00:07:26 in the actionable e-mail developer dashboard. So that is one site where you need to go

00:07:34 to create mainly a provider ID, an organizational ID.

00:07:38 You need to set who's a trusted audience because obviously you don't want to render

00:07:43 all actionable messages or all adaptive cards in your Outlook.

00:07:48 You really want to limit this to a trusted set of senders. And that's what we do in this specific screen here.

00:07:57 Once that is done, you just need to provide this information into your

Page 13: openSAP Building Applications on SAP BTP ... - s3.xopic.de

13

00:08:01 Java app, and that's it. So again, let me quickly switch back to the demo

00:08:07 so that we can take a look at this. So the most important step here is really this

00:08:13 actionable e-mail developer dashboard. So here you can actually do this for multiple

00:08:20 actionable messages. Here we have, for example,

00:08:23 the openSAP workflow step here, and you would just create a new provider.

00:08:28 In our case, we have done this already.

00:08:30 We've created a provider ID or the provider ID is generated here.

00:08:34 The organizational ID is created. We provide some trusted sender e-mail addresses,

00:08:41 and that's basically it. In our specific case here,

00:08:45 we're just using a test user. Obviously, if this is really in a productive usage,

00:08:49 you could say this should be a global trust end, and it should be available to everyone.

00:08:54 Now with this, let's actually switch to the Java app. So I'm opening up here

00:08:59 our Business Application Studio, where we have deployed our

00:09:03 workflow Outlook integration application. And the first thing that we need to do is here

00:09:08 in the application.properties, that's where you need to provide here this

00:09:13 organizational ID and this originator, the provider ID.

00:09:19 Actually, if this is not correct, then it might happen that this

00:09:25 actionable e-mail here or this adaptive card here is not rendered properly.

00:09:29 And what you can do there, there's a debugger,

00:09:32 there's an actionable message debugger, which you can install as an add-in

00:09:37 to your Outlook environment here. If you click on that,

00:09:40 then you get a lot of detailed information like who is the originator ID,

00:09:45 what's the correlation ID, and so on. And this can be very, very helpful

00:09:50 in troubleshooting why, for example, this adaptive card here would not be rendered.

00:09:58 So again, just if you encounter some issues,

00:10:01 then just install here the actionable message debugger and you should be fine.

00:10:06 So this is, as mentioned, the first thing that you need to update

00:10:11 in the Java application. Now let's quickly take a look at another

00:10:14 very important piece and that's the card builder. Because the card builder,

00:10:20 what the card builder does is it takes the tasks, the workflow tasks,

00:10:25 so the JSON structure of workflow tasks from the Business Technology Platform.

00:10:31 And it transforms this workflow task in an adaptive card

00:10:39 and then sends this information back over to the SAP system.

00:10:43 So that is where the whole magic happens. And I think obviously you can spend a little more time

00:10:50 to dig deeper here to enhance this whole scenario. There's corresponding config files that

00:11:00 outline the template, how the adaptive card looks.

00:11:03 So I think that's a good place to get started. So with this actually,

00:11:09 let's switch over back to the presentation here. This is actually a fairly quick unit.

00:11:22 So we talked about what is an adaptive card. We talked about how you can use the Java app

00:11:30 or an enhanced version of the Java app from Harald Schubert to transform this

00:11:34 workflow task into an adaptive card, and then how we can actually send this adaptive card

00:11:39 over to Outlook so that end user can then

00:11:45 actually approve the leave request directly from Outlook. With this, thank you very much.

00:11:52 Here again, like always, we have additional information. There's also information about actionable messages,

Page 14: openSAP Building Applications on SAP BTP ... - s3.xopic.de

14

00:12:00 adaptive cards. There's a playground for how you can actually start building

00:12:04 your adaptive card and get started with this. So check out some of these links.

00:12:09 With this, thank you very much and see you soon in one of the next units.

Page 15: openSAP Building Applications on SAP BTP ... - s3.xopic.de

15

Week 3 Unit 5

00:00:05 Hello, and welcome to week three, unit five of our openSAP course, Building Applications

00:00:11 on SAP Business Technology Platform with Microsoft Services. My name is Holger Bruchelt,

00:00:17 and I'm happy to talk about this unit five, Microsoft Graph: create a calendar entry.

00:00:23 So in the last unit, we talked about the integration of the adaptive cards to send some notification to Outlook.

00:00:33 Now, what we want to do is we want to continue the story and talk a little about the Microsoft Graph.

00:00:39 Take a look at how the Microsoft Graph Explorer works. A nice tool that helps you get started,

00:00:45 helps you to get familiar with the Microsoft Graph. Talk about the steps required to actually

00:00:50 make the authentication happen to this Microsoft Graph. And then we'll configure a destination service

00:00:57 on the Business Technology Platform. So to start with, let's put this into perspective again.

00:01:03 Where are we? So this is our overall scenario again,

00:01:06 and we have most of the things already now in place. And now what we want to do is, once the leave request

00:01:13 has been approved, we want to actually create a calendar entry

00:01:19 in your Outlook. So for this, obviously, we need to call some APIs

00:01:22 that allow me to connect to my Exchange server and allow me to create an entry there.

00:01:29 And this is something where we, yeah, where need to first, obviously, take a look

00:01:33 at the available APIs. In the past, there were multiple APIs spread

00:01:37 across different Microsoft products, but in recent years now, Microsoft has really combined

00:01:46 and concentrated all these relevant APIs into one central entry point.

00:01:52 And that's the Microsoft Graph. This central endpoint allows customers to easily connect

00:01:57 to graph.microsoft.com, and from there, access multiple Office 365,

00:02:03 Azure Active Directory, and other services. This means that if you authenticate once

00:02:09 against a Microsoft Graph, you actually have access to a lot of information there.

00:02:13 You can retrieve your profile information. You can retrieve documents that are stored

00:02:19 in your OneDrive. You can retrieve information that is part

00:02:22 of your Exchange calendar. And that's exactly what we will focus on.

00:02:27 Now, obviously all of this is really protected, and by the Azure Active Directory.

00:02:33 So everything that can be searched, that can be accessed via the Microsoft Graph

00:02:39 is protected via Azure Active Directory, which also means this is no different to what you would see

00:02:45 if you actually open up Outlook or if you open up OneDrive.

00:02:48 You will only see these documents via the graph that you have also access to,

00:02:53 via the known tools. And what I very much like,

00:02:58 especially to get started with the Microsoft Graph, is the so-called Microsoft Graph Explorer.

00:03:04 If you click on the link, then you will end up here with this Graph Explorer.

00:03:09 And even without signing in, there's a sample user automatically assigned

00:03:15 to the Graph Explorer experience. You can already test it.

00:03:19 You can take a look at the profile. So if you click on here, for example, the get profile,

00:03:25 then you would see the API coming up here, and you can actually really test

00:03:29 how the graph API really works. And this is available for a lot of different scenarios.

00:03:34 So what I really love is to just play around and see how it works.

Page 16: openSAP Building Applications on SAP BTP ... - s3.xopic.de

16

00:03:39 And then when you're ready, you can actually sign in with your corporate credentials,

00:03:45 for example. And as in our specific scenario,

00:03:48 obviously, with our Office 365 and developer account, you can just sign in with this specific user,

00:03:54 and then you can experience to really see your specific data.

00:03:58 So the data of the test users that were previously created. So I think this is really a beautiful experience

00:04:07 to get started and to learn about the Microsoft Graph. Once we've done this,

00:04:12 and maybe you can check the APIs to actually query the Exchange calendar

00:04:21 or maybe you can create an entry in your Exchange calendar already via these APIs.

00:04:27 But once you've understood how this works, then we can actually look at the authentication.

00:04:32 So very similar, like in the Business Technology Platform, in order to be able to authenticate to the graph via APIs,

00:04:40 the first thing that we need to do is we need to create an application, and this application will allow

00:04:46 or will actually provide us with a client ID and client secret that we then can use later on

00:04:52 for the authentication using OAuth. Now, in addition to this authentication,

00:04:57 we also need to provide scopes, permissions. Like what scopes and APIs

00:05:05 is the user actually able to access? Is this access able to just read information in my calendar?

00:05:13 Or it should this specific access, this application that we are creating here,

00:05:17 should it be also allowed to write information? So what we will need to do in our specific case,

00:05:23 we'll need to create this application to get the client ID and client secret,

00:05:27 and then we also need to provide API permissions to allow Calendars.ReadWrite.

00:05:33 With this, actually, we can switch sides and log into the Business Technology Platform.

00:05:38 And in the Business Technology Platform, we'll create a destination.

00:05:41 So very similar, like if you create a destination to connect to your SAP system,

00:05:45 maybe the SAP system on-premise or something like that. Here, we'll create now a destination

00:05:51 that allows us to connect to the Microsoft Graph. So you'll see that we have the URL for the graph

00:05:58 that microsoft.com provided. And this allows us to get access to the Microsoft Graph.

00:06:04 Then we also need to provide the client ID and client secret.

00:06:07 These is exactly the information that we just previously got when we actually registered

00:06:13 our application in Azure Active Directory. So with this, we're actually ready to go.

00:06:18 And then we can easily continue the integration to be able to create calendar entries

00:06:25 in our Microsoft Exchange service so that you can actually see then your calendar in Outlook.

00:06:34 And in order to show you that, let's actually hand over to Harutyun,

00:06:40 who will give you a live demo of this specific scenario and some of the configuration steps that are required.

00:06:47 Thank you Holger for the introduction. Now I would like to show in action the scenario in a demo.

00:06:56 So let's start with having a look at the Graph Explorer. So the central entry point for all Microsoft APIs.

00:07:05 So this is a great place where you can find all the APIs you are looking for.

00:07:10 We have a lot of sample queries, and also to try it and find out the right API,

Page 17: openSAP Building Applications on SAP BTP ... - s3.xopic.de

17

00:07:17 which you can later integrate in your application. So this is what we did as well.

00:07:22 Since we were interested in creating a new calendar entry in our Outlook,

00:07:27 so we were looking for the Outlook Calendar APIs, and we found a couple of them,

00:07:34 and we're more interested in the so-called events in my calendar API.

00:07:41 And here using this API, we were later able to create the new calendar entries

00:07:49 on our Outlook. So you can see,

00:07:52 you can run the query to get all the information from my calendar.

00:07:57 Also have different operations to create a new entry when we provide the request body as well.

00:08:05 So very helpful, also the permissions where we can find the right permissions

00:08:11 we need later to grant access to consume these APIs.

00:08:17 So once we identified the right APIs, the next step was to register an application on Azure portal

00:08:24 and expose those graph APIs. So that's what we did as well.

00:08:29 So we register a new application in an Azure portal, and after successful registration,

00:08:36 we will get generated an application ID, a directory ID,

00:08:43 which we can use later from Business Technology Platform to access the API.

00:08:49 Then we created also a secret so that we can securely access the API.

00:08:55 And finally, we granted the right permissions and the scopes to the API

00:09:02 so that we can only use the calendar entry and not other APIs exposed from the graph.

00:09:10 So this can be done very easily. So by adding the permissions for Microsoft Graph.

00:09:17 And so similarly, what we saw in the Graph Explorer, we will find all the APIs here and the permissions

00:09:24 of those APIs. As you can see, I selected the Calendars.Read

00:09:29 and Calendars.ReadWrite permissions for our use case. So actually once we granted the permissions,

00:09:37 we can move to Business Technology Platform, where we can define the APIs to use it from our application.

00:09:46 So for that, we can use the great destination service in the Business Technology Platform

00:09:53 where you can specify all the details and credentials of the graph.

00:09:59 So here we provided the right URL of the graph, and also the authentication credentials,

00:10:07 so the client ID and the client secret we got generated. And important is also to provide the right token endpoint.

00:10:16 So the right directory ID is also generated in an Azure app registration.

00:10:24 And we provided that here as well. Once we define the destination,

00:10:31 we can then consume it from our Java application to actually create the calendar entry.

00:10:36 That's what we did as well. So in our Java application,

00:10:43 we created a new function, which actually gets the destination, consumes it,

00:10:49 and uses that for creating a new calendar entry in the Outlook.

00:10:58 Now let's have a look how it will look in action when we request a leave request.

00:11:06 So I can start conversation the with Teams. So the chatbot.

00:11:15 So I would like to request leave again. So I need to provide the start date.

00:11:22 So starting from today, I would like to take a vacation. Okay, so we can see the confirmation,

00:11:50 and that the workflow was successfully triggered. From here, again, as you remember,

00:11:57 we had the two options, either using My Inbox application or directly the actionable messages in Outlook

00:12:05 to approve or reject the request. So let me go to Outlook,

Page 18: openSAP Building Applications on SAP BTP ... - s3.xopic.de

18

00:12:10 and where we can find the request there. So you can see, we just received the request.

00:12:21 So after proofing, I can accept it directly in Outlook.

00:12:28 And I got a message that it was successfully created, and also that the calendar entry was added in my Outlook.

00:12:39 So let's have a look at that. And here we are.

00:12:47 So you can see, I have created a new calendar blocker in my Outlook, starting from today.

00:13:00 All right. So in this unit, you learned about Microsoft Graph

00:13:05 and how to use the Graph Explorer. Finally, how to use the destination service

00:13:10 in Business Technology Platform to create a new calendar entry using Microsoft Graph APIs.

00:13:20 As usual, you can find some helpful learning materials for further reading.

00:13:25 And in the next unit, we will have a summary of the key takeaways from week three,

00:13:32 also to have an outlook on core engineering and innovations on SAP Business Technology Platform

00:13:38 and Microsoft integrations. Thank you for your attention,

00:13:42 and hope to see you in the next units.

Page 19: openSAP Building Applications on SAP BTP ... - s3.xopic.de

19

Week 3 Unit 6

00:00:05 Hello, and welcome to week three, unit six of our openSAP course, Building Applications on

SAP Business Technology Platform

00:00:12 with Microsoft Services. My name is Holger Bruchelt,

00:00:15 and like in the last unit of week two, Harut and I want to provide a summary of this week,

00:00:21 and an outlook of what is happening in the Teams integration,

00:00:24 security or single sign-on area. So let us take a look at the agenda.

00:00:30 As said, we quickly want to do a recap of week three. Talk about things that we have done,

00:00:35 that you hopefully have done in the exercises. And then we want to take a look at

00:00:40 the things that are happening in the Teams integration. So what SAP and Microsoft have been doing when it comes

00:00:47 to the Teams integration. Then we also want to look at single sign-on.

00:00:51 So obviously, throughout this course, when we were talking about integrating SAP data

00:00:56 with Microsoft services and the other way around, one key topic is always single sign-on.

00:01:02 And we didn't talk too much about this, but actually there are a lot of things happening where SAP and Microsoft,

00:01:08 where we're working together to simplify the way how customers can actually do a single sign-on

00:01:14 between their SAP world and their Microsoft world. So with this, let's quickly take a look

00:01:19 at what we have done in the last week. So we created a pretty interesting sample application

00:01:27 that allows you to create a leave request, that triggers a workflow that we had previously created

00:01:34 in the Business Technology Platform. And this workflow simulates a leave request.

00:01:40 Then we created a chatbot within Teams that allows you, or that allows an end user actually

00:01:46 to create a leave request, or sick leave or whatever,

00:01:50 directly from within Teams and trigger a workflow on the Business Technology Platform.

00:01:56 Now, the users could go into the Business Technology Platform

00:01:58 and approve the workflow directly there via an SAP Fiori user interface.

00:02:05 But what we have also done, we have created or deployed a Java application that pushes

00:02:11 an adaptive card to Outlook. In this adaptive card,

00:02:15 users can actually take actions directly from within their Outlook experience.

00:02:20 So they not only get the notification that a new workflow is there, that I need to do something,

00:02:24 but I can actually really approve or reject this workflow directly from Outlook.

00:02:29 Now, if I have approved this workflow, then we use the Microsoft Graph integration

00:02:35 to actually create a calendar entry in your exchange. So hopefully this is something that you have done

00:02:42 also in the exercises. I personally think this is one

00:02:45 of the most beautiful exercises that shows how services from the Business Technology Platform can be integrated

00:02:52 and can be combined with services on the Azure side, where we look at the Teams integration,

00:02:57 where we look at Microsoft 365, the Office integration, the Outlook integration.

00:03:01 So this is for me one of the most beautiful scenarios that shows what is possible.

00:03:06 And it can inspire a lot of customers on what they can do by really leveraging the services

00:03:12 on the SAP and the Microsoft side. So now what we want to take a look at

00:03:17 is what is actually coming from SAP and Microsoft natively. So again,

Page 20: openSAP Building Applications on SAP BTP ... - s3.xopic.de

20

00:03:21 we showed you how to create a chatbot experience, for example, in Teams,

00:03:25 but this is custom development obviously. And there are lots of scenarios where we see customers

00:03:30 and partners really using these techniques, using these different building blocks

00:03:38 to create content for your Teams environment. But actually if you look at what SAP and Microsoft are doing,

00:03:44 and that is something that we talked about in the very first week of this openSAP course,

00:03:50 we talked about the investments that both Microsoft and SAP are doing in this area.

00:03:55 And especially around Teams, we've been focusing on three main areas,

00:04:00 so on the employee experience, on the supplier experience, and on the sales experience.

00:04:05 And actually, while we were recording this openSAP course,

00:04:09 a lot of things happened. So there's a lot of new content already available,

00:04:14 and actually looking at the roadmap, even more will come. So for example,

00:04:19 if we look at the SAP Sales Cloud integration, this is something that is available now in the Microsoft Teams store.

00:04:26 So you can go there. If you have a Sales Cloud system,

00:04:28 you can connect your SAP Sales Cloud experience directly with Teams and then benefit from this integration.

00:04:35 Similarly, there are a few other scenarios that are already available.

00:04:39 Again, others are on the horizon. So what I want to do now is take a quick look at yeah,

00:04:44 what you can do today. So let me actually switch over to my Teams environment.

00:04:50 And here I'm logged in as a user, obviously here as the user Nestor.

00:04:57 And what I can do, I can go here to the app store section, and in the app store, if I search actually for SAP,

00:05:05 then you can see there are a few applications already available.

00:05:09 So down here, for example, you can see the SAP Sales Cloud scenario

00:05:14 that I talked about before. So if you have an SAP Sales Cloud system,

00:05:18 you can just go here. You can connect your SAP Sales Cloud system.

00:05:22 And then as a result, you have a functionality

00:05:25 or you have an additional application here in your Teams meeting application

00:05:29 that allows you to interact with your SAP Sales Cloud system directly from the meeting.

00:05:35 Another thing that I want to highlight or want to showcase is this ByDesign integration.

00:05:40 So very similar to the Sales Cloud, you can just here click on Teams,

00:05:44 you would say, where do I want the ByDesign experience to show up?

00:05:49 Then you just click on "Set up a tab" in Teams. And then you just need to provide

00:05:56 some configuration on your Teams environment. That's actually something that I have already done.

00:06:01 So if I go here to this channel, I can, for example, see here,

00:06:05 the list of opportunities really coming from my ByDesign system.

00:06:10 So if I click here on execute the query, then we are fetching, from within Teams,

00:06:15 all the relevant information from my ByDesign system. And obviously I can now drill down.

00:06:21 I can take a look at this specific opportunity or something like that.

00:06:24 So all the data is easily accessible to me. Similarly, if I want to check the account lists,

00:06:31 then I can just click here on this other tab. I can, for example,

00:06:35 select that I want to look at all the accounts. I click on execute query.

00:06:38 And again, I get all this information here directly within Teams.

Page 21: openSAP Building Applications on SAP BTP ... - s3.xopic.de

21

00:06:42 Now the important, the beautiful thing here is that I can obviously leverage additional Teams functionalities.

00:06:48 So let's say I want to collaborate with my colleague and I just say, "Hey Adele, can you take a look at account"...

00:07:02 whatever, 1000 or something like that. So I can really start an interaction with Adele,

00:07:08 and we can jointly work here on the data coming from the Teams experience.

00:07:13 So I think this is really, for me, another nice integration where we see SAP and Microsoft

00:07:19 really providing out-of-the-box content that you can leverage in your Teams experience.

00:07:27 So with this short demo, let me actually hand back over to Harut,

00:07:34 who can then talk a little about the security and single sign-on aspects of the work that SAP and Microsoft are working on.

00:07:42 Over to you, Harut. Thank you very much, Holger, for recapping the week

00:07:47 and giving an overview of the Microsoft Teams integration scenarios. And welcome back, everyone, from my side as well.

00:07:56 As Holger mentioned, I would like to talk about the security integration,

00:08:00 which we couldn't cover much in this week, but there is actually a lot happening

00:08:05 between SAP and Microsoft for simplifying the security integration.

00:08:10 Now I just want to highlight the current approaches and what to expect in upcoming months.

00:08:20 You can see here an example of Microsoft Teams integration with SAP SuccessFactors system,

00:08:27 which is kind of an advanced scenario, what we showed you in week three.

00:08:32 And I want to share how we can currently achieve principal propagation

00:08:38 between Microsoft Teams and SAP SuccessFactors, which you can see has a lot of steps.

00:08:46 So initially, the employee signs in to Microsoft Teams and starts the extension application,

00:08:53 which in this case is running on Business Technology Platform.

00:08:57 Then Teams requests the access token from Azure Active Directory using the user session.

00:09:06 And the user initially needs to log in before the first usage of the extension application,

00:09:13 where they need to also provide consent for requested scopes.

00:09:19 After that, the Azure Active Directory will return the access token back,

00:09:24 and the extension application can use it for further processing.

00:09:29 In step four, the extension application can exchange this token

00:09:36 with Azure Active Directory and get the SAML Assertion, which will contain the user attributes.

00:09:43 And this SAML Assertion, we can send it to Business Technology Platform

00:09:49 authorization server, the XSUAA component, to receive the OAuth new token,

00:09:56 which is issued by Business Technology Platform. And having the Business Technology Platform access token,

00:10:03 the extension application can call the SAP Cloud Integration endpoint URL,

00:10:09 which respectively will call the OData service exposed by SuccessFactors system,

00:10:14 and return the results back to the extension application.

00:10:19 So this same approach is also applying to other scenarios,

00:10:24 for example, where instead of SuccessFactors system we have on-premise S/4HANA system,

00:10:30 and it is connected to Business Technology Platform via the Cloud Connector,

00:10:36 which is also fully supporting the principal propagation. There is a great blog post by Martin Raepple,

00:10:44 who describes all these steps very detailed. You can have a look at that as well.

Page 22: openSAP Building Applications on SAP BTP ... - s3.xopic.de

22

00:10:50 Now I would like to share also some insights about the partnership between SAP and Microsoft,

00:10:57 where teams are working to simplify the system-to-system authentication and the principal propagation.

00:11:05 Please note that this is still work in progress and is subject to change.

00:11:09 But the important message is here that there are upcoming simplifications

00:11:15 which will help you to achieve the principal propagation for both directions,

00:11:20 from Azure to SAP and from SAP to Azure. And if we look at the Azure to SAP,

00:11:29 we can see that the application will be able to get the JSON Web Token widget issued

00:11:38 by Azure Active Directory, but for the Identity Authentication service

00:11:43 of Business Technology Platform. And then using that token,

00:11:47 we can provide and obtain from Identity Authentication service the SAP token,

00:11:52 which can be used for accessing different SAP line-of-business applications.

00:11:58 The other direction, this will apply as well. So you can use a similar approach

00:12:04 also for the other direction. And with this,

00:12:10 you can actually have really different scenarios for both sides to achieve the principal propagation.

00:12:18 Please stay tuned for the news, updates regarding these, which we'll, of course, share with you in the community.

00:12:30 To summarize our last unit, we have learned about Microsoft Teams integration

00:12:35 across different SAP solutions, what is already in place and what is coming.

00:12:42 And finally about current and upcoming approaches how to achieve principal propagation

00:12:48 between SAP and Microsoft and vice versa. Here you can find the important materials,

00:12:59 like the blog post for Martin Raepple. Also, you can explore the Discovery Center

00:13:05 for other use cases with Microsoft and SAP. We are at the end of the unit,

00:13:13 also at the end of week three. Thank you for staying with us.

00:13:18 I hope you've enjoyed it. And if you have any questions,

00:13:21 please use the discussion forum, where we are happy to meet you.

00:13:27 And next week you will learn about the end-to-end data federation scenarios across SAP HANA Cloud,

00:13:33 SAP Analytics Cloud, and Azure data services.

Page 23: openSAP Building Applications on SAP BTP ... - s3.xopic.de

www.sap.com/contactsap

© 2021 SAP SE or an SAP affiliate company. All rights reserved. No part of this publication may be reproduced or transmitted in any form or for any purpose without the express permission of SAP SE or an SAP affiliate company. The information contained herein may be changed without prior notice. Some software products marketed by SAP SE and its distr ibutors contain proprietary software components of other software vendors. National product specifications may vary. These materials are provided by SAP SE or an SAP affiliate company for informational purposes only, without representation or warranty of any kind, and SAP or its affiliated companies shall not be liable for errors or omissions with respect to the materials. The only warranties for SAP or SAP affiliate company products and services are those that are set forth in the express warranty statements accompanying such products and services, if any. Nothing herein should be construed as constituting an additional warranty. In particular, SAP SE or its affiliated companies have no obligation to pursue any course of business outlined in this document or any related presentation, or to develop or release any functionality mentioned therein. This document, or any related presentation, and SAP SE’s or its affiliated companies’ strategy and possible future developments, products, and/or platform directions and functionality are all subject to change and may be changed by SAP SE or its affiliated companies at any time for any reason without notice. The information in this document is not a commitment, promise, or legal obligation to deliver any material, code, or functionality. All forward-looking statements are subject to various risks and uncertainties that could cause actual results to differ materially from expectations. Readers are cautioned not to place undue reliance on these forward-looking statements, and they should not be relied upon in making purchasing decisions. SAP and other SAP products and services mentioned herein as well as their respective logos are trademarks or registered trademarks of SAP SE (or an SAP affiliate company) in Germany and other countries. All other product and service names mentioned are the trademarks of their respective companies. See www.sap.com/trademark for additional trademark information and notices.