文档备案控制台
免费开始使用

影刀RPA进阶教程:子流程拆分原则——ABCD编号法与模块化设计

刚开始写流程时,我习惯把所有步骤塞进一个主流程里。登录、搜索、采集、翻页、写Excel,全塞在一起,一个流程200多行。改一个地方要找半天,调试时单步执行得点几百下,报错了也不知道具体是哪个环节出了问题。

后来我才意识到:流程不是写出来的,是设计出来的。会基本指令的人能做出能跑的流程,懂子流程的人才能做出好维护、可扩展的流程。今天就把子流程拆分的完整方法论讲一遍。

为什么要拆分子流程:不拆的代价

一个没拆分的流程,所有指令堆在一起:

  • 改登录逻辑,要在200行里找到那5行

  • 某个步骤报错,整个流程从头重跑

  • 想复用“采集商品数据”这段,只能复制粘贴

  • 别人接手你的流程,根本看不懂

拆了之后呢:

  • 主流程只有10-15个子流程调用,像目录一样清晰

picture.image

  • 修改登录,只改A_登录子流程,不影响其他
  • 采集模块可以在不同项目里复用
  • 调试时单独运行某个子流程,不用跑完整流程

picture.image picture.image

ABCD编号法:命名即注释

影刀里子流程默认叫“子流程1”“子流程2”,时间久了根本记不住哪个是哪个。我推荐用ABCD编号法命名,一看就知道顺序和功能。

命名格式

picture.image

[字母前缀][两位数字]_[功能描述]

字母前缀含义

picture.image

前缀含义典型操作
A初始化打开浏览器、登录、清理缓存
B批量采集循环翻页、获取相似元素列表

picture.image | C | 单页解析 | 提取标题/价格/详情 | | D | 数据处理 | 清洗、去重、格式转换 | | E | 输出与通知 | 写Excel、发飞书/邮件 | | F | 异常处理 | 验证码处理、重试机制 | | Z | 测试专用 | 临时调试用,正式版可删除 |

picture.image

数字规则

两位数,从01开始递增。同一前缀内按执行顺序编号。

完整示例(以拼多多商品采集为例):

主流程(不编号,就叫“主流程”)
├── A01_登录拼多多
├── A02_进入搜索页
├── B01_翻页采集控制器
│   ├── C01_采集当前页商品列表
│   ├── C02_解析单个商品(被C01调用)
│   └── C03_翻页到下一页
├── D01_数据去重与清洗
├── E01_写入Excel并发送飞书通知
└── F01_重试机制(被C02调用)

影刀里怎么操作:在左侧流程树中,右键 → 新建子流程,名称框里直接输入A01_登录拼多多。子流程列表会按字母+数字自动排序,非常清晰。

四大拆分原则

原则1:一个子流程只做一件事

判断标准:如果子流程名称里有“并”、“且”、“与”,说明该拆了。

❌ 错误:B_采集数据并写入Excel(做了采集+写入两件事) ✅ 正确:B_采集商品数据 + E_写入Excel(分开)

原则2:可复用的逻辑单独成模块

比如“处理验证码”可能在登录、提交订单、翻页时都会出现。单独建一个F_处理滑块验证码,需要的地方调用它。

原则3:子流程行数控制在30-50行

超过50行说明还可以继续拆。一个窗口能看完的长度,调试最方便。

picture.image

原则4:主流程只做调用

主流程里不要写具体操作指令,只放“调用子流程”指令。主流程就像一本书的目录,一眼看完整个流程的结构。

子流程的参数传递:输入与输出

影刀RPA里,主流程和子流程之间通过流程参数传递数据。在子流程的“流程属性”面板里,可以定义输入参数和输出参数。

支持的参数类型

类型说明
字符串(String)文本数据
数值(Number)数字
布尔值(Boolean)True/False

picture.image | 列表(List) | 数组 | | 字典(Dictionary) | 键值对 | | 密码(Password) | 加密显示 |

picture.image

注意:DataFrame对象目前不支持直接作为参数类型传递。如果要在子流程间传递表格数据,建议用列表嵌套列表(二维数组)代替。

传参实操

第一步:打开子流程,点击顶部“流程属性” → “流程参数”

第二步:添加输入参数(比如关键词列表,类型选“列表”)

第三步:添加输出参数(比如采集结果,类型选“列表”)

第四步:在主流程调用该子流程时,在指令详情面板里填入对应的输入值,并指定输出变量接收返回值。

我的习惯:需要在子流程里用的数据,统一通过参数传参的方式传递进去。子流程返回结果也用返回值。这样每个流程独立性强,移植复用都很方便

子流程的调试:模块化调试法

子流程拆分后,调试也变简单了。

单独运行子流程

在左侧流程树中,右键点击某个子流程 → 运行此流程,可以单独测试这个模块,不用跑完整流程。

注意一个坑:直接运行子流程可能缺少前置条件(比如还没登录、还没到达特定页面)。解决方法:

  • 方法一:在子流程开头加一段“前置条件”指令(获取当前对象、设置变量等),不用的时候注释掉
  • 方法二:在全局变量里设置默认值,供调试时使用
  • 方法三:在调试界面的“调试变量”中直接赋值

报错定位更精准

拆分后,报错日志会显示“A01_登录子流程第12行出错”,秒定位,不用在200行里翻找。

子流程的复用:一次写好到处用

这是子流程最大的价值。比如你写了一个“登录淘宝”的子流程,在其他项目里直接调用就行,不用重新写一遍。

复用时的注意事项

  • 参数要通用:登录子流程的输入参数应该是账号密码,而不是写死在流程里
  • 不要依赖外部变量:子流程需要的所有数据都通过参数传入,不要直接读取主流程的变量
  • 输出要明确:子流程执行完要返回明确的结果(成功/失败/数据)

命名规范的延伸:元素和变量也要规范

子流程命名规范了,元素和变量也不能乱来

元素命名

❌ 默认的“元素1”“元素2”“元素3” ✅ [页面/模块]_[功能]_[类型]

首页_搜索框_输入框
搜索结果页_商品卡片_父容器
搜索结果页_商品标题_文本
详情页_价格_文本
详情页_购买按钮_按钮
登录页_下一页按钮_按钮

变量命名

abtempdata$商品列表(列表)、$当前页码(数字)、$是否登录(布尔)

变量名前加类型前缀,一看就知道是什么类型:

  • $lst_商品列表 → 列表
  • $num_当前页码 → 数字
  • $str_商品名称 → 字符串
  • $bln_是否登录 → 布尔

应用命名:从创建就要规范

应用名称在左上角可以修改,建议创建时就按规范命名,不要用默认的“新建应用1”。

命名格式[平台]_[业务]_[版本号]

拼多多_商品价格监控_V2.3
淘宝_自动上架_V1.0
小红书_达人数据采集_每日版
TEMU_订单批量发货_正式

常见问题速查

问题现象根本原因修复方法
子流程运行报错“变量未定义”子流程直接读取了主流程的变量改用参数传递,把需要的变量作为输入参数传入
子流程返回值一直是空没有设置输出参数或在子流程里没有赋值在流程属性里设置输出参数,子流程结束时赋值
子流程太多分不清顺序命名没带编号用ABCD编号法重命名,按执行顺序编号
改了子流程主流程没生效子流程被其他流程引用,缓存没更新关闭所有引用该子流程的流程,重新打开
子流程超过100行很难调试拆分不够细继续拆分,每个子流程控制在30-50行

推荐资源

  • 影刀官方帮助文档搜索“子流程”,有完整的参数传递说明
  • 影刀开发者社区搜索“模块化”或“子流程”,有大量实战案例分享
  • 影刀官方B站搜索“子流程设计”,有视频教程

#影刀RPA #RPA自动化 #子流程设计 #模块化开发 #开发规范 #电商自动化

作者:林焱

本文为《影刀RPA学习手册》系列文章之一,内容源于实操经验的整理与分享。如果这篇文章对你有帮助,欢迎点赞收藏,下一篇我们聊“定时任务配置与夜间执行避坑指南”。

0
0
0
0
评论
未登录
暂无评论