Skip to Content
Technical Articles

Challenge Submission – Down that rabbit hole with SAP Intelligent RPA

Hello all,

This is a submission for the SAP Intelligent RPA Tutorial Challenge

Arguably, SAP Intelligent RPA is one of the most exciting new tools in the SAP Toolbox for a while. The possibility to immediately impact, improve the efficiency and user satisfaction of your end users is what really intrigued me to have a closer look at this tool. So this is my tale about exploring the wonderlands of SAP Intelligent RPA.

I’ve got a section on my journey during a Proof Of Concept(POC) and also a section on some tips and tricks that I picked-up along the way. If you want to jump straight to that, then be my guest 🙂

After going through the openSAP courses, I had a few ideas and use cases I thought was relevant with my current client. However I needed a buy-in from my managers to start the POC. I ended up preparing a slideshow where I showed the business case and the potential savings of automating certain manual tasks.

We ended up deciding a POC on a use case for our service desk. Every day they run a report to consolidate access between SAP and a third party system. This report is exported to Excel and manually analysed to work out whether to add, revoke or modify the access. The process uses multiple different application such as:

  • SAP Gui
  • SAP Fiori
  • SAP Solution Manager
  • Excel
  • Infor third party system

Proof of Concept

I started with my user research which is critical to initializing an RPA project.If you don’t know how to do this, have a look at this course. I didn’t do a full design thinking workshop, but I used observations to collect my empathy and sat next to the end user, doing the task and also trying it out myself, this gave me a good understanding of the process. I then used User Story Mapping as a tool to visualise the process. I came out with the flow below, this created a medium for me to express my user stories, retell the story and add the additional acceptance criteria to capture the various rules in each step (See the hyperlinks in the screenshot below, they link to another worksheet with the acceptance criteria). I retold the story to the end users to make sure I hadn’t missed anything.

 

Now I could start analyzing the problem in more detail and come up with a flow of how the Robot would do the process. The end user uses filters in the Excel sheet to group the tasks into three distinct sub processes. The bot obviously, doesn’t need to do this. So I envisaged the bot looping through the Excel sheet and then do one update at a time and “report” back with the result.

 

 

The flow gave me a great way to get a good understanding of the workflow skeleton  I needed to build in my workflow in the bot.
I created the below flow before I started to capture any applications. You can see my boxes that says “Double click to view”, this is another flowchart inside, so this gives you an opportunity to keep the flow at a high level and then add all the application logic inside those flows. So I managed to keep my overall flow somewhat simple, while still being able to add in my additional application screens etc in the lower level and thereby increase readability.

 

 

I added logging entries to my flow and then started with the Excel loop, as I had a sample of the report, then I could ensure my loop worked correctly without being dependent on other applications to start and run. After finalizing that I started capturing my applications and adding that logic in the sub flow charts.

I started out with the Solution Manager, which proved fairly complex as the WebUI works a lot with IFrames. Using the capture screen tool worked quite well here and sometimes it wouldn’t capture my page correctly, but after a few attempts it started working. I realized that using Chrome or IE was pretty much the same.

 

 

When your projects becomes more complex and starts working with multiple different applications. I found it useful to create a new workflow under the application name to test the screens etc. and once completed there redo it in the main workflow.

 

Conclusion

 

I’m currently at the end of my development of the flow and we have started testing the bot. This approach gave me the structure I needed to make sure I wasn’t missing anything and also how I should create the process flow in RPA.

We already have a long wish-list for other bots to develop, this process makes it easy for you to capture the process and visualise it for documentation.

I hope these insights will help you on your journey. The rest of this blog will be some tips and tricks for using the tool

Tips & tricks

I will structure this section in regards to the various tools I’ve used

SAP Intelligent RPA

  • Create and visualise your flow before you start and use sub flowcharts to add in your application logic
  • When capturing a page with IFrames, then use the capture tool to make sure you get the right one. If it doesn’t work, then delete and try again, sometimes I had to redo the capture up to 5 times
  • Get familiar with components for item recognition to add criteria higher up the DOM tree. (See helpful video here or in the OpenSAP course.
  • After you’ve done your capture and added the criterions, you can start the debug process and test the pages without adding workflow logic, then you can see if your page is properly recognized and also use the page tester to set/get values and pressing buttons etc. (Look about 6.40 minutes into this video for reference).
  • Make sure you build before you change from editor to workflow designer. I still had some issues with losing some custom scripting. But mitigated that with doing builds regularly
  • IF you have a hard time clicking the elements on a captured page, work on the offset values.
  • I had some issues especially in IFrames that setting the values wasn’t captured properly, so after a refresh of the screen it lost my changes. I have a few suggestions to this
    • Inspect the element and try to add an event in the editor to the element. For example I had a property named Title and I used the trigger method to call the change event on that property. Chrome.ServiceRequestCreate.Title.trigger(“change”);
    • If that doesn’t work, then I had some luck adding in the following code to trigger an “Enter” keypress

 

Chrome.ServiceRequestCreate.AssignedTo.trigger('keydown', {
					altKey:false,
					bubbles: true,
					cancelBubble: false,
					cancelable: true,
					charCode: 0,
					code: "Enter",
					composed: true,
					ctrlKey: false,
					currentTarget: null,
					defaultPrevented: true,
					detail: 0,
					eventPhase: 0,
					isComposing: false,
					isTrusted: true,
					key: "Enter",
					keyCode: 13,
					location: 0,
					metaKey: false,
					repeat: false,
					returnValue: false,
					shiftKey: false,
					type: "keydown",
					which: 13
				})

 

  • Use a local GIT repository to commit and save updates regularly, this way if something breaks or if your build removes a fair amount of your code, then you can always revert. If you are not familiar with GIT. Then I can highly recommend this course.

User Story Mapping

  • Using Excel to create your user story map works great, but using post its to visualise your first drafts and then later on digitizing it is recommended. (Personally I used StoriesOnBoard)  to capture my story and then export to Excel
  • Use Define names and hyperlinks in excel to link your user story to the acceptance criteria

 

 

Please if you like the blog. Then give it a like, I really want that t shirt😃

I wish upon a star:

Given my recent Adventures in Wonderland, the following observations would greatly add to the journey to improve the overall experience:

  • Adding a Capture recorder to quicker capture your pages (this is already on the roadmap)
  • Improve the capture of especially the web pages, I had a lot of issues especially with Iframes
  • Add capabilities for ES6 in scripting as it wouldn’t build with more modern type features like map and arrow functions.
  • Integrate tools like ESLint and GIT into the design studio to help with development, using KDIFF seems very complex as compared to using git conflict capabilities.
2 Comments
You must be Logged on to comment or reply to a post.