从零开发一款RPA软件(GoBot)

1,083 阅读2分钟

RPA(Robotic Process Automation)是一种自动化技术,利用软件机器人或称为机器人工作者,模拟和执行人类在日常业务流程中进行的重复性、规则性和可预测性的任务。RPA的目标是通过自动化这些任务,提高效率、减少错误,并释放人力资源,使人们能够专注于更有价值和创造性的工作。

目前市场上有很多的RPA软件,如影刀、来也等,但是这些RPA软件要么收费,要么免费版的有很多使用限制,例如需要联网,无法将写好的流程分享给别人等,所以我选择从零写一个自己的RPA软件,将自己常用到的一些自动化操作进行封装,打造自己的一款自动化软件。

技术选型


walis(客户端界面)+python(自动化脚本执行引擎)

以下是wials的官网介绍

Wails 是一个可让您使用 Go 和 Web 技术编写桌面应用的项目。 将它看作为 Go 的快并且轻量的 Electron 替代品。 您可以使用 Go 的灵活性和强大功能,结合丰富的现代前端,轻松的构建应用程序。

为什么选用wails,因为它不嵌入浏览器而是使用平台原生的渲染引擎,所以编译的安装包很小,非常轻量,另外就是go的协程机制,使用编写多线程的程序非常容易,另外一个优点就是支持交叉编译,可以在一个平台上编译出其他平台的可执行文件。

使用wails技术栈,就可以使用丰富的前端框架开发界面。项目中使用VUE3+primevue作开发前端页面。

技术原理


流程设计: 组件拖拽+参数设置 ---> 流程文件 ---->生成Python代码 流程调试: (go+process)运行python脚本 ----> PDB设置断点 ----> 可视化调试 流程运行: (go+process)运行python脚本

使用Python语言编写组件,然后编写对应的组件配置文件(JSON),由组件配置文件生成组件树,开发是将组件拖拽到流程设计区域,设置对应的参数,流程的设计结果是一个JSON文件,保存时将该JSON文件转换成Python脚本。

软件功能


  1. 流程管理

Pasted image 20231211104139.png 2. 流程设计

Pasted image 20231211104344.png 3. 子流程设计

Pasted image 20231211104418.png 4. 流程调试

Pasted image 20231211104456.png

写在最后


目前只是初步完成产品原型开发,证明了想法的可行性,后续会继续增加组件,完善功能,例如增加定时运行功能等。