This is a discussion topic for the original post at Python RPA FAQ - Frequently asked questions about RPA development in Python - BotCity | Python RPA | Blog
RPA development in Python, like other automations, is gaining more and more acceptance. Performing demonstrations for RPA teams from several companies, the team from BotCity team had the opportunity to discuss various aspects of adopting and scaling complex RPA operations. Regardless of the stage of the company, the possibility of developing RPA in Python has generated a lot of discussions.
In this article, we cover the frequently asked questions about RPA development in Python.
DEVELOPMENT:
What Python libraries can I use to develop my RPA?
Do I need to develop my own connectors in Python?
Is Python less productive than low-code for developing RPAs?
How to detect RPA execution failures in Python?
Do RPAs developed in Python run faster than low-code technologies?
ORCHESTRATION:
How to orchestrate RPA made in Python?
How to run multiple RPAs at the same time?
How to schedule RPA execution in Python?
How to deploy Business Intelligence in RPA operation in Python?
How to get notified when my Python RPA runs out?
If my Python RPA operation gains scale, how will I track the entire operation?
DEPLOYMENT:
Which cloud services can I use to run my RPA?
After changing my Python RPA code, how do I update the version in the runtime environments?
Is it possible to view the text output of my Python RPA without accessing the runtime environment?
COSTS AND LICENSES:
What commercial licenses are involved in an RPA made in Python?
DEVELOPMENT
What Python libraries can I use to develop my RPA?
There are several open source libraries that can be used for Python automation development. Some of them:
The article
Top 8 Python Frameworks to Develop RPA
explores the issue in more depth.
Do I need to develop my own connectors in Python?
No. Connectors in low-code environments are designed to abstract technical concepts for non-technical users. Even a simple task, like moving a file, requires a connector: Copy or Move Files – UiPath
As for connectors for more complex tasks, in most cases they are designed to encapsulate functionality provided by third-party SDKs. UiPath provides a connector to Amazon Web Services. However, the Python developer can directly use the SDK provided by Amazon itself in its latest version with the most modern features.
There are also several cases of national systems not being supported by the low-code platforms. There are no connectors for Serpro’s services, for example. However, in Serpro Github we find several examples of consuming the APIs in a very simple way.
For functionality common to many RPA projects, such as captcha cracking, reading Excel or PDF files, password management, cloud storage, and more, BotCity offers a Complete Python Plug-In Library .
Is Python less productive than low-code for developing RPAs?
Many professionals believe that RPA development in Python will be less productive because you will need to write code for all the RPA steps. But in fact, there are several tools and approaches to automatically generate code or reuse solutions. O BotCity Studio for example, is capable of automatically generating Python code to navigate Desktop and Web systems. In the Web environment, the RPA developer has the option of using process recorders (e.g. Selenium IDE, Katalon Recorder), which are capable of automatically generating code to navigate Web systems. Automatically generated flows can be orchestrated like any other RPA in Python.
Another important factor is the reuse of solutions. At the code level, it is very simple to reuse solutions created by other developers or companies in the form of libraries, SDKs, or code snippets. In addition, it is natural for companies developing RPAs in Python to create their own libraries for common problems across multiple processes. As the solution base grows, the team becomes more and more productive, requiring fewer lines of code to put a new solution into production.
How to detect execution failures of an RPA in Python?
Reacting quickly to adversity or failure scenarios is critical to a robust Python RPA operation. At this point, when a robot fails, we wish:
- Know that the robot has crashed immediately by notification.
- Know at which step of the automated process the failure occurred.
- Get as much information about the point of failure as possible.
In the case of the orchestrator
BotCity Maestro
orchestrator, multiple features are provided to address this issue. When a robot crashes, immediately the whole team can be notified by system and e-mail notification. In the alert, you can tell the step that the robot crashed and provide additional details.
To make it even easier, in the next version of BotCity Maestro, a dedicated error-handling screen will be available. Here you can see data about the task in question, the step at which the robot failed, information about the error stack, and even the system screen at the time of the failure.
Do RPAs developed in Python run faster than low-code technologies?
Yes. At runtime, RPAs developed in low-code are slower because they are not computer programs and need to go through a low-code flow interpreter. On the other hand, RPAs developed in programming languages, at the end of the process, are computer programs that can make the most of the available computing resources. Furthermore, at the code level it is possible to do several optimizations such as multi-threading, map indexing for queries, optimized file processing, and other strategies.
In code, the developer has the freedom to optimize the solutions using several strategies already consolidated in software development.
ORCHESTRATION
How to orchestrate RPA made in Python?
There is a myth that RPA made in Python cannot be orchestrated. Usually, this argument comes from people who are exclusively familiar with low-code solutions. There are platforms exclusively for orchestrating automations created in Python. O BotCity Maestro, for example, allows you to manage deployment, schedule tasks, manage execution queues, monitor automations through logs, notify teams through alerts, and many other orchestration functionalities.
How to run multiple RPAs at the same time?
One advantage of RPA development in Python is the possibility of running multiple RPAs in the same runtime environment. In the case of web automations designed to run in headless mode, it is possible to run them in the same virtual machine, each with its own independent headless browser process.
This strategy gives much greater scalability for RPA operations in Python.
How to schedule RPA execution in Python?
In the case of the orchestrator
BotCity Maestro
orchestrator, this is very simple to do. Simply go to the “My Automations” screen, choose the automation in question, and specify a CRON rule for this automation. Given the CRON rule, new tasks for this automation will be added to the Queue automatically.
How to deploy Business Intelligence in RPA operation in Python?
In the case of the orchestrator
BotCity Maestro
, you can use Google Data Studio and Power BI connectors to bring data from your RPA operation in Python to a data analytics platform. Within the platform, the user can customize visualizations according to their needs to track and understand their data-driven RPA operation.
How to get notified when my Python RPA runs out?
Notifying users about an event of interest is one of the responsibilities of an orchestration platform. In the case of BotCity Maestro, simply log into your user profile and activate the notifications you want. Every time an event of interest occurs, you will receive an e-mail or notification in another communication channel.
If my Python RPA operation gains scale, how will I track the entire operation?
RPA initiatives in Python tend to scale faster than initiatives in other technologies mainly due to the profile of the team involved in the projects and the flexibility of the technology. Therefore, several monitoring and management modules will be essential to your APR operation.
BotCity Maestro is an Enterprise Orchestrator that is designed to serve Python RPA initiatives in complex environments with hundreds of automation and execution environments and thousands of daily job executions.
The main monitoring modules of BotCity Maestro and their purpose:
Task Queue
It allows you to view all tasks from all your automations queued for execution. You can view status and execution time, control priorities, and other properties.
Execution Environments
It allows you to view screens, status, and logs of all your running environments, whether Virtual Machines or Serverless.
Alerts and Notifications
Your team will be notified in real time about events of interest to your RPA operation.
Error Handling
Every time a robot enters a failure point, you can view the screen (screenshot), stack trace, and other information associated with the error directly in Orchestrator.
Access Control
All operations performed by users on the orchestration platform are logged and can be considered for understanding incidents and auditing activities.
DEPLOYMENT
Which cloud services can I use to run my RPA?
Since RPAs in Python are like any other computer program, you can run them on any cloud solution, be it AWS, Azure, GCP, or another. Basically, you need to configure the environment to have all the dependencies for running your Python RPA.
O BotCity Runner is a process that can be installed on any virtual machine (AWS, Azure, GCP, or others) or container. The advantages of using BotCity Runner in your runtime environment:
- Queue-Oriented Execution
- Automatic download of the RPA release version.
- Automatic setup of the running virtual environment with all dependencies.
- Sending logs and screens to the orchestrator automatically.
After changing my Python RPA code, how do I update the version in the runtime environments?
By using an orchestration platform, you don’t have to worry about updating your automations in the runtime environments. Every time you make a change in one of your robots, you simply perform the deployment in the orchestrator, and from that moment on, any new execution of this automation will already be in the new version.
Is it possible to view the text output of my Python RPA without accessing the runtime environment?
Yes. Everything that your robot prints during execution will be directed to a log file that is accessible via the web interface right in the Automation Orchestrator.
COSTS AND LICENSES
What commercial licenses are involved in an RPA made in Python?
One major difference in RPA development in Python, when compared to low-code platforms, is the way that technologies are licensed. The end product of Python automations is purely Python code and open-source libraries. Therefore, the robots are the intellectual property of their creators, without any commercial license involved.
Python RPA platforms, such as BotCity, license solutions to accelerate the development of the robots and the orchestration platform to manage and scale the operation in a production environment.
Do you have a suggested question to be answered in this article?
Leave your question in the comments or in our Slack Channel .