UiPath 自动化
UiPath RPA(机器人流程自动化)开发经验与实践总结。
什么是 RPA?
RPA (Robotic Process Automation) 是一种通过软件机器人模拟人类操作的技术,可以自动执行:
- 数据录入与搬运
- 报表生成与分发
- 系统间数据同步
- 邮件批量处理
UiPath 核心组件
| 组件 | 功能 |
|---|---|
| UiPath Studio | 可视化流程设计器 |
| UiPath Robot | 执行自动化流程 |
| UiPath Orchestrator | 管理和调度机器人 |
| UiPath Assistant | 用户端机器人入口 |
常用活动(Activities)
数据操作
| 活动 | 功能 | 场景 |
|---|---|---|
Read Range | 读取 Excel 区域 | 导入表格数据 |
Write Range | 写入 Excel 区域 | 导出处理结果 |
Filter Data Table | 筛选数据表 | 按条件过滤行 |
For Each Row | 遍历数据行 | 逐行处理数据 |
Add Data Row | 添加行 | 动态构建表格 |
界面自动化
| 活动 | 功能 |
|---|---|
Click | 点击界面元素 |
Type Into | 在输入框输入文字 |
Get Text | 获取元素文本 |
Element Exists | 判断元素是否存在 |
Send Hotkey | 模拟快捷键 |
流程控制
| 活动 | 功能 |
|---|---|
If | 条件分支 |
Switch | 多分支选择 |
Try Catch | 异常处理 |
Retry Scope | 失败重试 |
Parallel | 并行执行 |
项目结构最佳实践
MyProject/
├── Main.xaml # 主流程入口
├── Framework/
│ ├── InitAllSettings.xaml # 初始化配置
│ ├── KillAllProcesses.xaml # 清理进程
│ └── CloseAllApplications.xaml
├── Process/
│ ├── GetTransactionData.xaml # 获取待处理数据
│ └── ProcessTransaction.xaml # 核心业务处理
├── Data/
│ ├── Config.xlsx # 配置文件
│ └── Template.xlsx # 模板文件
└── Exceptions/
└── BusinessRuleException.xamlREFramework(推荐架构)
UiPath 官方推荐的企业级框架:
初始化 (Init)
↓
获取事务数据 (Get Transaction Data)
↓
处理事务 (Process Transaction)
↓
├── 成功 → 回到获取下一事务
├── 业务异常 → 记录日志,跳过
└── 系统异常 → 重试(最多 3 次)
↓
结束 (End Process)选择器(Selector)优化
xml
<!-- 不稳定的选择器 -->
<wnd cls='Chrome' title='Google Chrome' />
<html tag='INPUT' idx='3' />
<!-- 优化后的选择器 -->
<wnd cls='Chrome' title='*' />
<html tag='INPUT' id='username' />优化原则:
- 使用
id、name等稳定属性 - 避免使用
idx(位置索引) - 标题用通配符
*处理动态变化 - 优先使用 CSS Selector 或 Fuzzy Selector
调试技巧
- 断点调试:在关键步骤设置断点,逐步执行
- 日志输出:使用
Log Message记录中间结果 - 高亮显示:
Highlight活动标记目标元素 - 慢速执行:设置步骤间延迟(Debug → Slow Step)
- 局部运行:选中部分活动右键 → Run Selected Activities
开发建议
- 将重复逻辑封装为可复用的
Invoke Workflow组件 - 配置数据统一存储在 Config.xlsx 或 Orchestrator Assets
- 每个流程添加完善的异常处理和日志记录
- 使用 Orchestrator Queue 处理批量事务