RPA 机器人
RPA 就像一个不会累的实习生——你教它一遍,它 24/7 不停地做。
RPA 架构
graph TD
DESIGN[流程设计] --> RECORD[录制/编排]
RECORD --> BOT[机器人]
BOT --> ATTENDED[有人值守]
BOT --> UNATTENDED[无人值守]
ATTENDED --> DESKTOP[桌面操作]
UNATTENDED --> SERVER[服务器运行]
SERVER --> ORCHESTRATOR[编排中心]
ORCHESTRATOR --> SCHEDULE[定时任务]
ORCHESTRATOR --> MONITOR[监控]
style BOT fill:#e3f2fd,stroke:#1565c0,stroke-width:2px
style ORCHESTRATOR fill:#c8e6c9,stroke:#388e3c,stroke-width:2px
RPA 平台对比
| 平台 | 价格 | 强项 | 适合 |
|---|---|---|---|
| UiPath | $420/月 | 企业级、AI集成 | 大型企业 |
| Power Automate Desktop | 免费(Win11) | Microsoft 生态 | 已有365的企业 |
| Automation Anywhere | 按需 | 云原生 | 全球企业 |
| 影刀 (国产) | ¥99/月起 | 中文、简单 | 中小企业 |
| TagUI (开源) | 免费 | 轻量 | 开发者 |
Python 实现 RPA
"""
Python RPA 基础
用 Python 实现常见的 RPA 操作
"""
from dataclasses import dataclass, field
from datetime import datetime
@dataclass
class RPAStep:
action: str
target: str
value: str = ""
wait: float = 0.5
@dataclass
class RPAWorkflow:
"""RPA 工作流"""
name: str
steps: list[RPAStep] = field(default_factory=list)
log: list[str] = field(default_factory=list)
def add_step(
self, action: str, target: str, value: str = ""
):
self.steps.append(RPAStep(action, target, value))
def simulate_run(self) -> dict:
"""模拟执行"""
start = datetime.now()
results = []
for i, step in enumerate(self.steps, 1):
result = {
"步骤": i,
"操作": step.action,
"目标": step.target,
"值": step.value or "-",
"状态": "成功",
}
results.append(result)
self.log.append(
f"[{datetime.now().strftime('%H:%M:%S')}] "
f"步骤{i}: {step.action} → {step.target}"
)
return {
"工作流": self.name,
"总步骤": len(self.steps),
"执行结果": results,
}
# 演示 — 发票处理 RPA
invoice_bot = RPAWorkflow("发票处理机器人")
invoice_bot.add_step("打开", "邮箱 Outlook")
invoice_bot.add_step("搜索", "收件箱", "主题: 发票")
invoice_bot.add_step("下载", "附件 PDF")
invoice_bot.add_step("OCR识别", "发票 PDF")
invoice_bot.add_step("提取", "发票号/金额/日期")
invoice_bot.add_step("打开", "ERP 系统")
invoice_bot.add_step("录入", "应付账款模块", "发票数据")
invoice_bot.add_step("保存", "PDF 到归档文件夹")
result = invoice_bot.simulate_run()
print(f"=== {result['工作流']} ===")
print(f"总步骤: {result['总步骤']}")
for step in result["执行结果"]:
print(f" 步骤{step['步骤']}: {step['操作']} → {step['目标']} [{step['状态']}]")
常见 RPA 场景
RPA_SCENARIOS = {
"财务": [
"发票处理 — 扫描→OCR→录入ERP",
"银行对账 — 下载流水→对比台账",
"费用报销 — 审批→系统录入→通知",
],
"HR": [
"入职 — 创建账号→发送邮件→权限分配",
"考勤 — 导出数据→异常标记→汇总",
"薪资 — 计算→核对→生成工资单",
],
"销售": [
"CRM 更新 — 邮件→提取客户信息→录入",
"报价单生成 — 模板填充→审批→发送",
"订单同步 — 电商平台→ERP",
],
"IT 运维": [
"账号管理 — 批量创建/禁用",
"日志巡检 — 扫描日志→异常告警",
"软件部署 — 批量安装→配置→验证",
],
}
print("=== RPA 常见场景 ===")
for dept, scenarios in RPA_SCENARIOS.items():
print(f"\n{dept}:")
for s in scenarios:
print(f" • {s}")
RPA 实施清单
| 阶段 | 关键活动 | 时长 |
|---|---|---|
| 评估 | 识别流程、计算 ROI | 1-2 周 |
| 设计 | 画流程图、定义规则 | 1 周 |
| 开发 | 录制/编码机器人 | 2-4 周 |
| 测试 | UAT + 异常测试 | 1 周 |
| 部署 | 上线 + 监控 | 1 周 |
| 优化 | 收集反馈、迭代改进 | 持续 |
下一章:低代码平台——用拖拽方式连接你的所有工具。