Start your own scalable robot automation.

Robotic automation mimics the human workers with consistent quality and much higher production. Improvising or change in few lines of software code is always faster and cheaper than retraining hundreds of employees.

A robot that can draw!
  1. Perform multiple tasks parallelly
  2. Connect to legacy system via APIs.
  3. Scalable processing.

Bots don’t know how to deal with an unknown scenario. They don’t even know if they did something wrong.

RPA in action: Drawing symmetrical shape in MS-Paint.

Good practice to design an RPA (robotic process automation)

Task Design

  • Limit the task length and break it into series of smaller preemptable tasks.
  • Smaller decoupled tasks will increase parallelism.
  • Set expectations rigid. Teaching bots about right or wrong is a long term investment. Instead, assert the task.
  • Keep frequent check-point, keep exporting and saving data after each data modification.

Deterministic UI interactions

  • Prefer to use tab-sequence instead of click. Clicking buttons will require to have bookkeeping of coordinates which are more prone to Err.
  • Use short-keys and function-keys, for the above-mentioned reasons.

Consume UI feedback

  • Instead of waiting for a specific hard-coded time task post every action (click, key-stroke), wait till the feedback in UI like the opening/closing of window or dialog box.
    Hence, Avoid the use time.sleep
  • Use active window title as an assertion for flow. For example, in most software ctrl+s should open window with title Save As.
RPA.hotkey(('ctrl', 's'))
# Bad practise: since task can take more than 120 seconds.
time.sleep(120)
# Good practise: time.sleep till active window gets "Save As"
RPA.waitForWindow(title="Save As")

RPA.typewrite("101010.png")
RPA.hotkey(('alt', 's'))
Saving generated file

Consider external factors

Have a comprehensive list of all factors which can affect automation. Make sure the structure has agility for the following factors.

  • Change in tab sequences
  • Any window interruptions

Project Structure

  • rpa.py
    Encapsulation class for PyAutoGUI library. Encapsulation makes the dependency on third-party libraries lose.

Connecting with a scalable architecture

The automation tasks are demanding for time and resources. We need the pool of independent VMs self-distributing load to achieve maximum productivity. Each Window VM should be responsible to consume the next task from the queue.

Horizontally scalable worker pool
  1. Read about PyAutoGUI, automation kit for Windows: https://pyautogui.readthedocs.io/en/latest/mouse.html

Let’s talk about scalable solutions, arts, and aspirations. co-Founded GreedyGame | IIT Ropar. Found at www.arinkverma.in

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store