影刀RPA新手教程:子流程是什么完全指南——把重复的步骤打包成一个工具
影刀RPA新手教程子流程是什么完全指南——把重复的步骤打包成一个工具我刚开始用影刀的时候最受不了的是复制粘贴。比如同一个登录网站的操作在3个不同的流程里都要用到。我傻傻地在每个流程里都重写了一遍——打开浏览器、输入账号、输入密码、点击登录。后来有一天改密码了3个流程全报错我一个一个去改改完第三个的时候差点崩溃。同事问我“你为什么不把登录做成一个子流程”“子流程是啥”“就是把重复的工作打包成一个工具以后直接拿来用。”安装与配置子流程不用安装。它是影刀RPA项目结构的一部分每个流程文件.flow文件就是一个大流程容器里面可以放主流程和多个子流程。在影刀左侧的项目管理面板右键点项目名选新建子流程输入名字一个空的子流程画布就出来了。一个项目里可以有无限制的子流程。每个子流程都是独立的画布可以单独打开编辑也可以单独运行测试。变量与数据类型主流程和子流程互不相通这是新手最容易踩的坑以为主流程里创建的变量子流程里能直接用。错主流程和子流程是两块独立的领地。主流程里的变量a子流程里看不见。子流程里的变量b主流程里也看不见。想让子流程用主流程的数据需要通过输入参数传进去。想让主流程拿到子流程的结果需要通过输出参数传出来。就好比你让同事帮忙办一件事得把需要的材料输入参数交给他他办完后把结果输出参数还给你。你不能直接翻他的抽屉找东西。什么是子流程用生活例子讲清楚子流程就是你自定义的一个工具函数。店群矩阵自动化突破运营极限你在厨房做饭有一个电饭煲。你把米和水放进去输入参数按个按钮过一会儿香喷喷的米饭出来输出参数。你不用关心电饭煲里面怎么煮的你只管用。子流程就是你自己造的电饭煲。把重复的操作逻辑封装进去以后只关心放什么进去和出来什么结果。影刀官方对子流程的描述子流程内指令的编写与主流程的编写方法完全一致。就是说写子流程跟写主流程一样没有新语法要学。网页自动化把登录做成子流程以登录淘宝为例。登录步骤是固定的打开淘宝登录页等待登录页加载输入用户名输入密码点击登录按钮等待登录完成等首页图标出现这6步在主流程里至少要6个指令节点。如果有5个流程都要登录就是30个节点改一个地方就要改5个地方。做成子流程后每个主流程只需要1个节点调用子流程登录淘宝。这就是子流程的核心价值写一次到处用。XPath与CSS子流程里照样用子流程里的元素定位和主流程一模一样。用XPath能找到的元素在子流程里同样能用。比如登录页的密码输入框在子流程里写CSS选择器input[type“password”]。XPath写法//input[type“password”]。两种方式都可以看哪个更稳定就用哪个。我一般优先用CSS选择器因为读起来更直观。流程控制有返回值才叫工具纯操作的子流程不需要输出参数。但如果你希望子流程做完后告诉你成功了还是失败了就需要一个输出参数。比如登录子流程输出一个布尔值True或FalseTrue登录成功False登录失败可能是网络问题或密码错误在主流程里用If判断调用子流程登录淘宝 - 保存结果到login_result 如果 login_result 等于 True 继续后续操作 否则 日志输出登录失败跳过本次任务这种设计叫有错误不中断优雅地跳过。生产环境里非常重要。数据处理子流程之间的数据流转子流程之间也可以互相调用。子流程A可以调用子流程B。比如子流程登录内部又调用了一个子流程验证码识别。主流程调用登录登录内部调用识别验证码。一层一层嵌套但逻辑很清晰。不过一个细节要注意子流程之间调用也需要注意参数的传递。如果子流程A调用子流程BA需要给B传数据B需要给A返回数据。影刀的流程参数传递规则是调用方给被调用方传输入参数被调用方给调用方返回输出参数。进阶技能什么时候应该做子流程经验规则一个操作出现2次以上就该做成子流程。哪怕你现在只用了一次如果将来很可能再用也做。我吃过不做子流程的亏——当时偷懒想着就用一次结果两个月后需求变了用了7次改得直想哭。还有一个信号一个流程的节点超过20个就应该拆分子流程。人一次能理解的节点有限20个以内能搞懂超过20个就开始晕了。平台实战从登录开始以登录网站为案例3步走第一步创建子流程右键项目名 - 新建子流程 - 命名为子流程_登录淘宝 - 确定temu店群自动化报活动案例第二步在子流程画布上编写登录逻辑拖入打开网页、等待元素、输入文本、点击元素等指令和写普通流程一样第三步在主流程里调用拖入调用子流程指令 - 选中子流程_登录淘宝 - 配置输入输出参数运行主流程子流程被调用时自动执行登录逻辑。鼠标键盘与图像子流程内的操作如果登录后有验证码滑块的场景子流程里也可以包含图像操作。比如淘宝登录后弹出滑块验证在子流程里加入等待图片出现指令等待滑块出现图像拖拽指令拖动滑块。流程设计登录子流程不处理验证码可以。再做一个子流程_处理滑块验证登录子流程里调用它。这就是子流程的分层思想。系统联动子流程库的建设随着做的流程越来越多你会积累自己的子流程库登录淘宝、登录京东、发飞书通知、读Excel文件、正则提取手机号……建议在项目里建一个专门的子流程组文件夹命名通用工具、“电商登录”、数据处理等方便查找。我之前做的一个电商数据采集项目64个主流程复用了28个子流程。新加一个采集流程基本上拖3个子流程就能搞定。像搭积木一样。这个思路在home.linyan.cloud的RPA架构设计文章里有更详细的说明。工程化规范子流程命名规范以子流程_开头一眼认出是子流程用动词名词格式登录、发通知、提取数据例子流程_登录淘宝、子流程_提取手机号、子流程_发飞书通知注释要做好每个子流程的开头多加一个日志输出节点写上这个子流程的功能描述。别人包括三个月后的你自己打开一个子流程第一眼就知道它是干嘛的。常见报错与解决“未找到子流程”检查子流程文件名是否正确大小写是否一致。影刀对大小写敏感。“子流程未设置输出参数”如果你想获取子流程的返回值但子流程里没有配置输出参数就会报错。在子流程的属性面板添加输出参数。“参数类型不匹配”主流程传的参数类型和子流程接收的类型不一致。比如主流程传的是数字123子流程期望接收的是字符串123。统一类型就好了。#影刀RPA #RPA教程 #影刀新手教程 #子流程 #流程封装 #自动化设计 #影刀进阶作者林焱