影刀RPA子流程调用:模块化思维入门
影刀RPA子流程调用模块化思维入门作者林焱前言你写的第一个流程可能只有20个步骤觉得自己很厉害。但你写到第5个流程的时候会发现——登录操作在4个流程里重复写、Excel初始化在3个流程里重复写、错误处理在每一个流程里复制粘贴。代码重复是万恶之源。RPA流程也一样。这一篇讲怎么用子流程把重复的部分抽出来让你的流程从一团乱麻变成积木拼接。一、什么是子流程直观地说子流程是一个被封装好的独立功能块它有一个名字、有输入、有输出你可以在任何地方调用它。就像你打电话给外卖平台——你不需要知道后厨怎么炒菜、骑手怎么规划路线你只需要说我要一份黄焖鸡米饭送到XX地址。子流程就是那个外卖平台。影刀里创建子流程右键左侧流程列表 → 新建子流程 → 起个名字 → 在里面写逻辑。二、为什么必须用子流程——三个血的教训教训1登录逻辑改了5个流程全废我早期写了一个电商数据采集系统包含5个独立流程价格采集、库存监控、评价采集、竞品分析、销售报表。每个流程第一步都是登录同一个电商后台。后来电商系统改了登录方式从账号密码改成了扫码登录。结果我花了两天时间把5个流程的登录部分全部改了一遍。如果当时抽成了子流程只改一处就行。教训2一个200步的流程变屎山拼多多店群自动化报活动上架带过的学员里有个人写了一个月度报表自动化流程从头到尾200多步塞在一个流程里。三个月后需求变了要我帮忙改——我看了半个小时才理清逻辑。流程超过50步就要警惕了。超过80步基本就是屎山预定了。拆成子流程每个子流程不超过30步。教训3调试地狱一个流程200步中间第120步报错。你从头跑一遍要等10分钟才能到120步。拆成子流程后你可以单独调试出问题的子流程——给它喂模拟输入数据直接看输出对不对。三、子流程的实战拆分原则原则1按功能拆分一个典型的采集处理流程拆成这样主流程 ├── 子流程初始化创建Excel、设置全局变量 ├── 子流程登录 ├── 子流程数据采集 │ ├── 子流程采集单页 │ └── 子流程翻页判断  ├── 子流程数据处理清洗、计算、格式化 ├── 子流程输出报告写入Excel、生成图表 ├── 子流程通知发邮件/微信 └── 子流程清理关闭Excel、关闭浏览器每个子流程只做一件事名字就是它做的事。原则2参数化——子流程的灵魂如果子流程只能做固定的事那它的价值打折一半。真正厉害的子流程是参数化的——你传入不同的参数它做出不同的结果。不参数化子流程登录淘宝写死账号和密码下次换成京东又要写一个新的登录京东子流程。参数化子流程登录网站 输入参数url网址、username账号、password密码、 login_btn_xpath登录按钮的XPath 内部逻辑 打开网页(url)  输入账号(username) 输入密码(password) 点击(login_btn_xpath) 等待登录成功标识这样同一个子流程可以登录淘宝、京东、OA系统——不同平台传不同的参数就行。原则3子流程要有明确的输入和输出好的子流程像一个函数输入什么、输出什么一目了然。影刀中子流程的输出通过全局变量传递或者在主流程中读取子流程最后设置的变量。建议在子流程注释里写明【子流程名称】登录OA系统 【输入全局变量】OA_URL, OA_USERNAME, OA_PASSWORD 【输出全局变量】LOGIN_STATUS成功/失败, ERROR_MSG错误原因 【副作用】打开浏览器、设置登录Cookie四、实战重构一个采集流程重构前一团乱麻主流程150步 ├── 步骤1-20Excel初始化 ├── 步骤21-40登录网站 ├── 步骤41-120采集数据翻页循环、数据提取、异常处理全混在一起 ├── 步骤121-140数据处理与输出 └── 步骤141-150清理重构后模块化主流程5步 ├── 调用子流程初始化Excel → 参数输出路径 ├── 调用子流程登录 → 参数URL、账号、密码 ├── 调用子流程采集所有数据 → 参数起始页、每次采集条数 │ 内部循环调用子流程采集单页 ├── 调用子流程处理并输出 └── 调用子流程清理主流程从150步缩减到5步——逻辑清晰到非技术人员也能看懂。五、子流程的复用策略建立自己的子流程库把你写得好的子流程保存为模板。随着积累你会有一个私人武器库TEMU店群矩阵自动化运营核价报活动excel_init初始化Excel创建文件、写表头、设置格式web_login通用网页登录safe_click带等待和错误处理的点击safe_input带等待和错误处理的输入page_turner通用翻页器data_cleaner数据清洗去空格、去重、格式化reporter生成报告并发送写新流程时80%的逻辑直接复用只写20%的新业务逻辑。带默认参数的子流程给参数设置默认值大多数场景不用改参数子流程safe_click 参数target_xpath必填timeout默认30retry默认3 一般调用只传target_xpath特殊网页才改timeout和retry。六、子流程的调试技巧单独测试子流程不跑主流程直接在子流程界面点运行。手动设置好它需要的输入变量看输出对不对。在每个子流程入口和出口打日志【子流程开始】登录 | 时间{now} | 参数url{url} ...子流程逻辑... 【子流程结束】登录 | 结果{status} | 耗时{elapsed}秒出问题了看日志就知道卡在哪个子流程、是没进去还是没出来。七、总结子流程不是高级技巧是写第一个流程就应该养成的习惯。从今天开始流程超过50步就拆——至少拆成初始化核心逻辑收尾相同逻辑不复制第三次——第二次出现就抽成子流程子流程要参数化——写死参数等于白拆下一篇开始进入数据采集实战——把你前面学的基础全部用起来从零写一个完整的网页数据采集流程。作者林焱影刀RPA深耕实践者致力于让每个普通人都能学会自动化