New? Start Here!
This page is still under construction. I will populate it once I’m done slacking off.
Robotic Process Automation.
Sounds like something a Mechanical Engineer would work with, and you are right – at least in my case.
Lets Try That Again
While RPA was inspired by macro technologies, the term Robotic Process Automation was inspired by Phil Fersht, who is the founder, CEO and lead analyst at HFS Research.
Phil’s achievements are incredible, no doubt about that, but he is to blame for the confusion you and I faced when tasked with exploring RPA for the first time.
As disappointing as it may sound, we won’t be programming actual robots to do our dirty work for us. RPA enables us to develop virtual assistants that take care of all the bore inducing work we perform on our computers.
Its a software automation tool which consists of automation bits which we can click and drag onto the RPA workspace.
These automation bits, which is a term coined by Dr.TCT while he was in the process of writing this article, perform automations so small that they are insignificant on their own.
Let me rephrase that, the automation bits perform automations so small that they are insignificant on their own.
You Didn’t Rephrase Anything.
Of course I did, I italicized the important bits didn’t I?
You know what, maybe an example or two will shine some light onto this topic.
The Excel Advanced: Open Action in Automation 360, and the Excel: Read Range in UiPath are examples of automation bits. The Open Action opens Excel, while the Read Range, reads either the entire range of cells, or a selection of cells.
While it does perform something, that “something” isn’t enough to generate anything of value for our clients. To generate value, we have to arrange those bits into something that provides a meaningful output.
What Are You Getting At?
While we can consider developing automations as an artform, we still paint the grass green.
RPA is click and drag, but its not just “click and drag“. None of it is random – you have to know what goes where in order to build robust and scalable RPA solutions.
A lot of thought and planning goes into building something that provides value for the end user.
You don’t just drag in random bits of automation and hope it turns out well.
Back to our example, how do we go about opening Excel?
How will the bot understand that it has opened the right workbook?
What if the files are downloaded from a CRM, then can we hardcode the file path? Why not?
What if the bot is unable to locate the file, what should it do?
Are we supposed to start the Automation directly with the main logic, or does it have to load up on some configuration details first?
Configuration Files contain parameters that the bot uses to interact with applications. That definition is awfully vague, so if you are looking for something a bit more in depth, then click the link down below!
Developing Robust Automation
Like with any other tool, there are a set of best practices we must follow to ensure the automation works as expected regardless of the environment its deployed to. Also, the automation must be mature enough to handle itself instead of throwing a hissy fit each time it encounters something unexpected.
But before we go into any of that, you have to understand how to use these automation bits.
In most RPA tools, there are automation bits dedicated for web automation. That bit can be used for basic operations like clicking on buttons or icons, or it can be used to scrape data off websites.
What you can accomplish with a given automation bit, depends on how well you understand that bit.
So…What Are You Getting At Again?
You have to study the bits, and understand how they work, before fitting together.
The fitting together towards is what we call solutioning and we do that before we start designing our RPA solution.
I know, I know, I said we have to first explore the Automation Bit before putting them together, but you have to understand what the bit does before bringing it together right?
Kinda counter-intuitive, well it isn’t actually.
Its just my writing that’s kinda funky.
I’ve penned several articles on the subject and complied a list of the ones which I believe are important for you to get started.
Since we deal with lots of data, you will be using Loops a lot.
When using Loops in Automation 360, a Dictionary is usually assigned to the Loop Action to store values during each iteration.
Say for example you are looping through items in your mail box, the dictionary will store the email subject, who its from, its body etc.
Its not easy to keep track of all the keys in a dictionary so I’ve written an article and listed down all the keys for you to reference at anytime.
RPA Automations aren’t limited to just desktop like Macros are. It goes above and beyond, and can even be used to automate websites.
Automating web applications with Automation 360 requires some XPath knowledge. It took a while for me to wrap my head around the concept of XPaths, not because its complicated or anything but because I was busy making excuses like I am right now.
If you want to scale up there, then here is a page I’ve dedicated to the study of XPathology.
Automating Websites Is Great and All…
But what about controlling Browser?
No not Bowser.
Browsers let you interact with websites, but you have to ensure that the bot is able to use the browser properly. A Browser placed in odd locations will make it difficult to work with. If there are elements that the bot has to interact with which are either off screen, or present behind the Task Window, it can be a problem.
Lucky for you, I have a solution to that problem you didn’t think would be a problem.
That helps with the Task Window, but what if the Window Title of the web pages are dynamic?
Is there a way to make it so that our bot can detect windows regardless of minor changes to its title?
Yes there is.
Now we’re making progress!
“I’d Like To Start a New Session Please”
When you log into your Facebook account, what happens next?
It redirects you to the homepage.
Now, what happens when you close the browser without logging out?
Free Cookies Anyone?
What happens when you open up an new browser and head back to FaceBook?
You won’t be prompted to enter your credentials.
I don’t think I need to explain why this happens since most – if not all of you reading this, are incredibly familiar with how stuff works on the world wide web.
Browsers store session details into something called cookies. I’m not entirely sure why they decided to call it that because they aren’t anything like the cookies you and I are familiar with, and now I’m craving a cookie.
While this is incredibly useful, its incredibly annoying for bots.
Bots aren’t smart enough to know if the application is logged in with the right account or not, so it crashes and burns. There is a way to avoid this, and its by accessing webpages incognito.
I don’t think I need to explain why this is useful either, and stop pretending like you’ve never used incognito before.
Oh just stop.
Sure, BPM tools like Workato are pretty amazing to work with, but who even said that RPA can’t work with APIs?
But why use APIs in the first place? Whats wrong with UI Automation?
Nothing is wrong with UI Automation, but its nowhere near as robust as backend automation. The UI can either be incredibly dynamic, or receive constant updates which means you need an RPA developer to constantly retrofit the automation every once in a while.
When you use APIs, you are directly interacting with the application without any interference. As long as your network is stable, you can be as fancy as
you want the client allows you to be.
You’re Forgetting That Things Can Go Horribly Wrong.
You’ve completed your doctorate in XPathology and ready to head out into the real world?
What’s that again?
You’ve become fairly comfortable working with APIs that you can automate applications with your eyes closed?
Well, you’re still going to fail.
Thank You for Demolishing My Self-Esteem.
When you set out on an adventure, you never know whether its going to rain that day.
Sure, you could look at the weather forecast, but who cares about any of that stuff.
So there you are, drenched in rain, cursing the weather for dampening your spirit. You could have checked the forecast, but nooooo.
You just had to go out on that little adventure of yours and now look at you.
You’re dripping wet.
Please don’t take that out of context.
Oh I know you will.
You already did, didn’t you?
What, don’t look at me like that.
I’m not the one with the dirty mind. Actually I am, but so do you.
For every joke I write, I have to wade across a minimum of ten dirty jokes.
That is the curse of creativity.
Also, writing isn’t easy when you have ADHD, because you are assaulted with ideas from all directions. As a result, people with ADHD are in a constant state of distraction, but here’s the thing – I don’t have ADHD.
Handle the Situation with Grace
Now that we(me) are done fooling around, lets get back to the topic at hand.
Its hard to predict what sort of environment your automation will be deployed onto. The Application might be unresponsive, or might not even be installed. The files it has to work with might get corrupted, or are busy playing hide and seek in various directories.
Your RPA solution doesn’t have to be intelligent here – it just has to behave properly.
If you’ve coded before, then you might have heard of exception handling.
We have that here in RPA as well. What, you don’t believe me?
Here have a look yourself!