Technology Blogs by Members
Explore a vibrant mix of technical expertise, industry insights, and tech buzz in member blogs covering SAP products, technology, and events. Get in the mix!
cancel
Showing results for 
Search instead for 
Did you mean: 
UxKjaer
Product and Topic Expert
Product and Topic Expert
2,709
Hello all,

 

So here is my submission for the tutorial challenge.So if you like what you read, please like my blog.

In short it's going to be a tutorial on how to use SAP Conversational AI (CAI) and SAP Intelligent RPA together. The use case is using the openui5 sample that runs a todo list and then use the CAI to tell the bot to add a task.

Let's get started.

Prerequisites:


So I assume you already installed the SAP Intelligent RPA desktop studio and agent.

You also need NodeJS and have a registered account for the trial on SAP Intelligent RPA and CAI

To make things easier it will help you to have GIT command line installed, but that is not mandatory.

Clone repository


Go to the link

and click the clone button, copy paste the url and go to your command prompt/ terminal and write the following command
git clone https://github.com/SAP-samples/openui5-sample-app.git

If you don't want to use GIt, then simply download the zip file and extract it.

Install npm packages


We need to install the required packages for the openui5 sample app to run. So go to the folder of the app and simply run
npm install

You will also need the UI5 tooling to be installed globally
npm install --global @ui5/cli

Test the app


Now we are ready to test the app. Run command
ui5 serve -o index.html

You should now have your preferred internet browser opening up the index.html file of the project and you should see something like below



 

Create Bot Project


Now open up the desktop studio and create a new project. Fill in the required details



 

Add the SAPUI5 scripting library


First thing we need to do is to add the SAPUI5 scripting library that SAP has created to make it simpler to work with these apps. So click the scripts tab and right click in the white area and select

the "include library script"  option



 

Find the SAP UI5 and make sure it's ticked.

Capture the todo app


Now go back to the applications and click the add application

Capture your browser window with the WEB connector



And also capture the page



 

Now we want to add a new task to our list, so click the "What needs to be done" input field and add a criteria, let's make this a part criteria, so we are sure the bot will find the input field even though UI5 does have part dynamic IDs. Make sure the input field is selected.



 

 

Also click page "pOpenUI5TodoApp" in the explorer to add the title criteria, so the bot knows which tab to use. Do the same for the application OpenUI5TodoApp

Add the workflow


Go to the workflow tab and right click on our OpenUI5TodoApp and select the add new workflow. Name it AddTodo.

Add our captured page and connect it to the start event.



Now double-click the page and right-click on our input field and select the "set ... in the item" option.

 

Afterward save and build the project.



 

Adjust the script


Now we need to alter the script as we have now "ADD" button in the UI. So we need to trigger a change event on the input field to add to our list.

So in the "pOpenUI5TodoApp_manag" step, add the following code underneath the set command
OpenUI5TodoApp.pOpenUI5TodoApp.oContainerTodoApp.trigger('change');

 

Also for us to test and run this app, we need to alter the start.on function and remove the "if (ctx.options.isDebug)" condition.

And lastly add the if (ctx.options.isDebug) to the scenario and add some testdata.
if (ctx.options.isDebug) {
rootData.OpenUI5TodoAppData.pOpenUI5TodoAppData.oContainerTodoApp = "Hello World"
}

Now let's build the project again and run it. After clicking the AddTodo menu item. You should see the Hello World task added to the list.



 

Add input and output parameters


Now go back to the workflow and select the AddTodo flowchart.



Add the input and output parameters like above. This will be used for our chatbot to pass the task to the RPA bot.

Export the package


Now export the package to deploy later to the cloud


Create Chatbot


So far so good, let's look at adding the chatbot. Go to the https://cai.tools.sap/ and register if you haven't done so already.

Click the "New Bot" in the top right corner and add the details

Optionally you can add predefined skills such as greetings, small talk, and weather to make your bot a bit more personal.

Create intent


The chatbot works with intents to make sense of a conversation, as soon as an intent has been identified, that can trigger certain actions. So let's start by creating an intent



Then add an expression to our intent "Add task to my todo list" and press enter

Then click the task word and add the entity task to it.



 

You can also add some more variations to make it easier for the bot to identify the intent.

Let's add

Remember to do my shopping

Remind me to do my groceries

Create skill


A skill is where you teach the chatbot what to do with that intent. So click the build tab and create skill



Click the new skill and add the trigger criteria that if our intent is present then run the skill



 

In the requirements section, you can add follow up questions if the Task entity hasn't been identified. I won't to into that details in this tutorial, as the main focus is on the Intelligent RPA.

Click the actions and add a message group and afterward a message



Now we are ready to test the bot

Test chatbot


Click the "Chat with your bot" button in the lower right corner and add the following text "create remember to do shopping to my todo list" Now the reply should be the message you just created above, which shows us that our intent and skill is working.

Create BOT project


Now let's import our newly exported project, so go to your RPA tenant and click the projects tab and then the New Project button. Just add "chatbot" to the package name and description.



Now import your desktop project to your project and after that you should be able to see the Input Output parameters in the context. If not, please doublecheck if you added those parameters in your workflow.



Also select the"Make this scenario usable as a skill" option



When you are happy with it, click the home button and the generate package.



Close down the tab and return to your tenant, you should now have a chatbot package.

 

Next click the deploy button and deploy the package in your hierarcy

 

Test the deployment


Click the Deployments tab and create a scheduled trigger. Click the Input Parameter and add a message to our parameter



Save it and click the run now option on the trigger.

Start your agent and after a while you should see the bot being executed and update our todo app



If you've achieved the outcome, then delete the trigger again as we will be working with an API trigger.

Integrate Intelligent RPA and CAI


Go to your deployments tab in the RPA tenant and add an API trigger.



Copy and paste the details into notepad for safekeeping for now



Now go to your chatbot and click the settings icon and click the token option. Copy and paste your developer token to your notepad file as well.


Create notifiers


For our chatbot to be updated about the progress of our RPA bot, let's add a few notifiers. In the RPA tentant click API trigger and the add notifier button



Select the CAI option and select the Start option for the notify on.

The conversation ID should be ${invocation_context.conversationId} and the token is the token you copied from your CAI.



Now add a message of your liking and press the create button

Repeat the step but now add a success notifier



 

We are now done with our RPA stuff.

Let's continue with our bot

Add API trigger action


Log on to your SAP Cloud Platform Account. For the two tools to talk together, you need to create a service key

This is quite well documented, so I won't go into further details here

Go back to CAI and go back to our skill. Remove the message and click the Connect External Service instead



Click the API service option

Add the url copied from your trigger and then select the OATH2 token authentication

Now add the url ammended with /oath/token in the end, clientId and the client secret from your service key attributes.

Sorry for all the red in the screenshot, just focus on the yellow highlighted stuff 😉



Next click the headers tab and add a new field irpa-trigger-token, in this you add the token copied from your API trigger.

Now click the body tab and add the following:
{
"invocationContext":{
"conversationId":"{{conversation_id}}"
},
"input": {
"oContainerTodoApp": "{{memory.task.value}}"
}
}

So we will access the memory off the chatbot and use the task object and the value to add to our todo list.

After the API call add a message to give a quick feedback, that the call has been actioned



 

Alright, we've connected the dots, let's test it out.

Go to the openui5 folder where you host the todo list. Create a new file and name it chatbot.html

Add the following content to begin with
<html>
<head>

<meta name="viewport" content="width=device-width">
</head>
<body>

</body>

</html>

Now in CAI click the connect tab and select the webchat option. Click the create and copy the webchat script



 

Paste this into your html file in the body tag, it should look like below



 

Now in your command prompt, kill the ui5 process by pressing CTRL + C. Now run the command
ui5 serve -o index.html

Open a new tab and add the url
http://localhost:8080/chatbot.html

Now it will be a blank page, but you should see a little "chat with me" in the lower right



So let's try to see if it works.

PAss the message "Add task to my to do list". Fingers crossed, you should get an immediate response from your chatbot, then another message when your bot is started and one on completion.

Be aware that the trigger of your bot can take several minutes, I assume this is to do with me running this on a trial and potentially also my corporate setup on my machine.



 

That's the end of this tutorial

Conclusion


Thanks for sticking with me, Hopefully you now have a better understanding of how to integrate Conversational AI with SAP Intelligent RPA and the potential to use the two together.

Remember if you liked what you've just read, please like this blog so I might be in the running for winning a t-shirt. Quick scroll to the top or just press CTRL + Home to go there.

Thanks for reading.

 
16 Comments
Labels in this area