Robotic Process Automation (RPA) is a technology which automates mouse and keyboard interactions by means of a software (SW) robot to remove intensive routines. The current generation of RPA tools is driven by predefined rules and manual configurations made by expert users rather than automated techniques.
SmartRPA is a cross-platform tool that tackles such issues. It allows to easily record event logs and to automatically generating executable RPA scripts that will drive a SW robots in emulating an observed user behavior (previously recorded in dedicated UI logs) during the enactment of a routine of interest.
SmartRPA has been developed at DIAG, Department of Computer, Control, and Management Engineering Antonio Ruberti in Sapienza University of Rome by:
Many thanks also to Tom Hohenadl (Technische Hochschule Ingolstadt) and Antonio Martínez-Rojas (Universidad de Sevilla) for the ongoing updates of the tool.
A Screencast of the tool is available on [Vimeo].
The architecture of SmartRPA integrates five main SW components.
Key features include:
A list of events supported by the Action Logger is available in SmartRPA_events.pdf
.
The full documentation of the tool is available here. A user manual for SmartRPA is available in this repository here.
The following dependencies are required to enable all functionalities within SmartRPA. Check all boxes and you are able to log user actions, discover process models, and emulate RPA bots in UiPath and Automagica automatically:
Furthermore, there are possible installation issues that can arise with the installation of the prerequisites or libraries. You can find fixes to the most common issues in the section Installation Errors .
On Windows, Visual Studio C/C++ Build Tools must be installed. It is vital to install all C++ related development tools listed here:
Install the latest version of graphviz. Make sure to add it to system PATH. Detailed instructions here.
On MacOS:
brew install graphviz
pip3 install pm4py==1.5.0.1
if necessaryPython ≥ 3.7 (64bit) is required. Python 3.12 is recommended.
pip3 install -r src/requirements.txt
We have specified three requirements files for distinct Python versions. We recommend using the specified requirements file. The requirements.txt is for Python 3.12.
To run the generated RPA scripts you must install automagica
module available in the libraries
directory.
pip3 install src/libraries/smartRPA-automagica-2-1-12.zip
Required for executing the emulated Automagica Python bots in Chrome and Edge. To select the correct version of the pip installation for the Chromedriver go to the Chrome or Edge settings/help. Get the version number, e.g., Version 124.0.2478.97. Navigate to PyPi Chromedriver History. Select the release with a same main number, e.g., chromedriver-binary 124.0.6367.207.0, and install this version using pip, i.e.,
pip install chromedriver-binary==124.0.6367.207.0
The generated UiPath project requires UiPath Studio, available at https://www.uipath.com/product/studio. Without UiPath Studio you cannot import and execute the generated UiPath bots from SmartRPA.
The browser extension is required to log browser events. It is available in src/extensions/browserlogger
and supports 4 major browsers:
Google Chrome: load unpacked browserlogger
directory in chrome://extensions/
Mozilla Firefox: install browserlogger.xpi
in about:addons
Microsoft Edge (chromium): load unpacked browserlogger
directory in edge://extensions/
Opera: load unpacked browserlogger
directory in opera:extensions
Currently the browser extension requires the developer mode to be active in your browser. Please check the browser documentation on how to enable the developer mode.
The excel addin is required to log Excel events only on MacOS.
Node.js
must be installed to run this addin.
cd src/extensions/excelAddinMac
npm install # install dependencies
npm start # sideload Add-in
npm stop # stop server
Insert
tabMy Add-ins
> OfficeLogger
Home
tabShow Taskpane
button in the ribbonOfficeLogger
under My Add-ins
, copy extensions/excelAddinMac/manifest.xml
into ~/Library/Containers/com.microsoft.Excel/Data/Documents/wef
, as described here.
python3 main.py
A detailed screencast of the tool is available on [Vimeo] including the core functions of recording, analyzing, and emulating RPA bots.
The resulting event log will be saved in logs/
directory. If the screenshot feature is active the screenshots are stored in the Screenshots
directory.
SmartRPA generates two types of SW Robots in the RPA/
directory:
The advantages of the UiPath integration is that the generated SW Robot can be easily customized by the end user.
NOTE: In the Action Logger, when selecting a Microsoft Office program to log, it will automatically be opened. This is required to correctly handle events. The opened window should not be closed until logging is completed.
LLMs allow are capable of Business Process Management tasks and therefore can be used to semantically tag data. We integrated such a feature in the processing menu.
This feature is currently in Beta as the prompt results sometimes to not contain proper JSON responses for parsing or long logs cannot be processed accuratly.
If you only want the action logger to record event logs without further analysis, you can find it here . Please note that this logger is associated with version 1.0 of SmartRPA and has not been updated with the new functionalities (Supervision Feature, Screenshot Feature, Updated Python Libraries) of SmartRPA 2.0.
ModuleNotFoundError
error on Windows
ModuleNotFoundError
, run SmartRPA with:
```bash
py main.py
```
RuntimeError: Failed to download chromedriver archive
1. Navigate to `/Applications/Python 3.x/` folder
2. Run `Install Certificates.command` file
3. Install the package again
Reference
If you don't find the `Python 3.8` folder under `/Applications`, make sure you installed Python using the official installer and not from a package manager like brew.
Message: session not created: This version of ChromeDriver only supports Chrome version 123
when running a smartRPA created bot:
1. Navigate Pypi Chromedriver-binary
2. Select the chromedriver-binary matching your current Chrome version. E.g. 121.0.6134.0.0 for Chrome 121
3. Install the package again using the pip command from Pypi, e.g. pip install chromedriver-binary==121.0.6134.0.0
This work has been partially supported by the PNRR MUR project PE0000013-FAIR