当前位置: 首页 > news >正文

影刀RPA新手教程:多流程协调完全指南——让一个流程跑完之后自动触发另一个

影刀RPA新手教程:多流程协调完全指南——让一个流程跑完之后自动触发另一个

一、开篇:一个流程不够用

刚开始用影刀的时候,我所有的逻辑都挤在一个流程里。

打开网页、采集数据、清洗数据、生成报表、发送邮件……一个流程里塞了上百个步骤。

每次改一个小地方都要加载半天,而且只要一个步骤出错,后面的全泡汤。

后来同事告诉我:你可以把流程拆开,一个流程只做一件事,然后用"调用子流程"把它们串起来。

当时我感觉打开了新世界的大门。今天教你从零搭建多流程协调的自动化方案。

二、安装与流程管理

影刀安装:官网下载Windows版,默认安装,勾选浏览器扩展。

安装好之后打开影刀,点击左侧"我的流程",就能看到所有已创建的流程。

每个流程都是一个独立的文件,可以单独编辑、单独运行、单独发布。

流程列表页面有一些操作按钮:新建流程、导入流程、导出流程、删除流程。

多流程协调的关键指令是"调用子流程"和"调用流程并等待返回"。

这两个指令在左侧指令列表的"流程控制"分类里可以找到。

三、元素定位回顾

虽然调用子流程不直接涉及元素定位,但被调用的子流程里必然有元素操作。

写子流程时元素定位的基本原则和主流程一样。

XPath定位:尽量用语义化的表达式,//input[@id='search-box']/html/body/div[3]/...靠谱。

CSS选择器定位:#search-box(找id)、.search-input(找class)、[data-type="primary"](找自定义属性)。

在每个子流程里独立捕获元素,不要在流程之间共享元素对象。

因为不同流程跑的时候浏览器会话不同,共享元素对象会失效。

四、变量与数据传递

多流程协调的核心难点是:数据怎么在流程之间传递。

影刀提供了几种数据传递方式:

拼多多店群自动化报活动上架!

方式一:调用子流程时传参数。在"调用子流程"指令里,有一个"输入参数"配置区。

你可以在主流程里定义参数,子流程接收参数后处理,处理完返回结果。

方式二:使用全局变量。在影刀的"变量管理"里,把变量的"作用范围"设置为"全局"。

全局变量可以在所有流程里访问,适合存配置信息、Webhook地址等。

方式三:通过文件传递数据。

流程A把数据写入一个Excel文件,流程B读取这个Excel文件。这是最经典的方式。

数据类型在传递时要注意:数字传过去还是数字,字符串传过去还是字符串,列表传过去还是列表。

五、流程控制:调用子流程的核心指令

影刀里协调多个流程的指令主要有以下几个:

  1. “调用子流程”:调用另一个流程并等它执行完毕,再继续往下走。

  2. “调用流程并等待返回”:调用子流程并获取它的返回值。

  1. “异步调用流程”:调用另一个流程但不等待,主流程继续往下走。

这三种的选择:

  • 如果流程B依赖流程A的结果,用"调用子流程"
  • 如果流程B只是流程A的后续,不需要等结果,用"异步调用"
  • 如果你需要子流程处理完返回一个值,用"调用流程并等待返回"

拖指令到画布上,双击选择要调用的流程名称即可。

六、核心实战:串行三流程

现在做一个经典的三流程串行案例。

流程A:数据采集流程。打开网页,登录,抓取10个商品的数据,保存到Excel。

流程B:数据处理流程。读取流程A保存的Excel,计算汇总数据(总销售额、平均值、TOP3),把结果保存到另一个Excel。

流程C:报告发送流程。读取流程B保存的结果Excel,格式化消息,发送飞书通知。

用"调用子流程"指令把三个流程串起来:

主流程(调度流程)只有三个步骤:

  • 步骤1:调用子流程(选"流程A_数据采集")
  • 步骤2:调用子流程(选"流程B_数据处理")
  • 步骤3:调用子流程(选"流程C_报告发送")

每个子流程独立开发和测试,跑通后再串起来。

这样做的好处是如果流程B报错,流程A不受影响,改完流程B单独重跑就行。

七、数据处理:文件作为桥梁

在多流程协调中,Excel文件是最常用的数据传递桥梁。

流程A写入Excel的规范:

  • 统一保存到固定路径,如D:\RPA_Data\
  • 文件名带上日期和流程标识,如data_采集_20240626.xlsx
  • 数据写入固定的工作表名称,如"原始数据"

流程B的读取规范:

  • 从固定路径读取
  • 根据日期找到对应的文件
  • 先检查文件是否存在,不存在就报错告警

Python代码片段,在"执行Python代码"指令里查找文件:

importos file_dir="D:/RPA_Data/"all_files=os.listdir(file_dir)today_file=Noneforfinall_files:if"采集_"+today_strinf:today_file=file_dir+fbreakiftoday_fileisNone:raiseException("今日采集文件不存在!")

这样流程B就能自动找到流程A今天创建的文件了。home.linyan.cloud上有更完整的多流程文件管理模板。

八、进阶:异步多流程并行

有时候你需要让多个流程同时跑,提高效率。

比如同时从三个网站采集数据,三个流程互不影响。

用"异步调用流程"指令,同时启动流程A、流程B、流程C。

每个流程跑自己的网站,采集完后各自保存到不同的Excel。

等所有流程跑完,再调用一个汇总流程合并数据。

异步调用的注意事项:

  • 异步流程之间不要写同一个文件
  • 异步流程不要用同一个浏览器窗口
  • 如果某个异步流程出错,不会影响其他异步流程
  • 异步流程的日志是独立的,需要分别查看

九、平台实战:一个完整的日报系统

现在搭建一个完整的每日自动化日报系统。

调度配置:每天早上9:00触发

流程结构:

  1. 主调度流程(入口)
    • 日志输出:“日报系统开始运行”
    • 调用子流程:数据采集
    • 调用子流程:数据处理
    • 调用子流程:报告生成
    • 调用子流程:消息推送
    • 日志输出:“日报系统运行完毕”

子流程说明:

数据采集流程:打开3个数据源网站,依次采集销售数据、客户数据、库存数据,分别保存到3个Excel文件。

TEMU店群矩阵自动化运营核价报活动

数据处理流程:读取3个Excel文件,做数据关联和汇总计算,生成日报汇总表。

报告生成流程:根据汇总数据生成HTML格式的日报文件。

消息推送流程:把日报的摘要内容通过飞书和邮件发送给相关人员。

每个子流程都包在Try-Catch里,出错时发告警消息然后终止。

十、系统联动

多流程协调可以和更多系统联动。

与API接口联动:流程A请求外部API获取数据,流程B处理API返回结果。

与数据库联动:流程A从数据库查询,流程B写入处理结果。

与审批系统联动:流程A发送审批请求,流程B等待审批结果后继续。

执行来源的配置:调用子流程时可以选择执行来源,包括period(计划)、timer(定时)、api(API)。

机器人执行策略:any(任意空闲机器人)、all(全部机器人)。

十一、工程化规范

多流程工程的工程化规范:

  1. 每个子流程职责单一,只做一件事。

  2. 子流程命名用"类型_功能_版本"格式,如"采集_百度热搜_v1"。

  3. 子流程之间通过固定路径的文件传递数据,不通过全局变量。

  4. 每个子流程独立测试,独立部署。

  5. 主调度流程只负责串联,不写业务逻辑。

  6. 每个子流程都包Try-Catch,异常处理比单流程更重要。

  7. 子流程的入参和出参要有文档注释。

  8. 修改子流程时确保不影响其他依赖它的流程。

十二、速查表

流程调用指令速查:

  • 调用子流程:同步调用,等待子流程执行完
  • 调用流程并等待返回:同步调用并获取返回值
  • 异步调用流程:异步调用,不等待

执行策略速查:

  • any:随机选一台空闲机器人
  • all:所有机器人同时执行
  • assign:指定具体机器人
  • group:按机器人分组指定

数据传递方式速查:

  • 传参:调用子流程时传递参数
  • 文件:通过Excel/CSV/JSON文件传递
  • 全局变量:通过全局作用域的变量传递
  • 数据库:通过数据库表中转

常见问题:

  • “子流程未找到”:检查流程名称是否正确,流程是否已发布
  • “参数类型不匹配”:检查传入参数和子流程定义的参数类型是否一致
  • “子流程执行超时”:子流程执行时间太长,需要拆分或优化

作者:林焱

#影刀RPA #RPA教程 #多流程 #子流程 #影刀新手 #自动化架构

http://www.jsqmd.com/news/1098316/

相关文章:

  • 影刀RPA新手教程:变量未定义报错完全指南——为什么说变量不存在
  • 别再手动补桩!AI驱动的边界测试生成术(含Mock策略决策树+异常传播路径图谱)
  • 【课程设计/毕业设计】基于 SpringBoot 的学生评教数据统计分析系统的设计与实现 基于 SpringBoot 的高校教学反馈评价服务系统【附源码、数据库、万字文档】
  • WVP-GB28181-Pro视频点播超时难题深度剖析:架构解析与性能优化最佳实践
  • 传统线下体验店必须大规模,编程小型楼中店体验营收模型,低投入精准匹配小众设计师品牌。
  • 别再磨掉所有铁锈!Rust Reformer 正确使用指南(附完整流程)
  • 5个实用技巧让微信聊天记录永久保存:WeChatMsg完全解决方案
  • 影刀RPA新手教程:子流程复用完全指南——一个子流程在10个地方调用
  • 别再截图了!用Mermaid Live Editor + Docker,5分钟在NAS上搭建你的专属图表工作站
  • JPEXS Free Flash Decompiler终极指南:解锁Flash逆向工程的完整工具链
  • 企业级权限管理平台架构深度解析:从RBAC模型到微服务扩展
  • 向量检索 Retrieval:Scoring(打分) + Chunk Overlap(块重叠)完整讲解
  • 别再死记硬背PV操作了!用Python模拟生产者-消费者问题,5分钟搞懂信号量本质
  • DL-Hub 开源项目深度解析:构建面向深度学习研究与实验的一站式模型训练与管理平台实战指南
  • 有源 / 无源蜂鸣器完整对比手册 —— 外观区分、参数选型、驱动电路、工程代码、场景落地全解(一)
  • MySQL数据库入门到实践:从安装配置到SQL查询与性能优化全攻略
  • 深度解析CXPatcher:CrossOver依赖升级与兼容性增强技术
  • YOLOv8性能优化实战:从1.2FPS到35FPS的全链路加速方案
  • 终极指南:5分钟为Zabbix添加多GPU监控的完整方案
  • 【2027最新】基于SpringBoot+Vue的全家桶pc端仿淘宝系统管理系统源码+MyBatis+MySQL
  • 前后端分离公益服务平台系统|SpringBoot+Vue+MyBatis+MySQL完整源码+部署教程
  • MySQL数据分析实战:从零掌握SQL核心技能,完成电商销售分析
  • 【2027最新】基于SpringBoot+Vue的公益服务平台管理系统源码+MyBatis+MySQL
  • Yahoo Finance API:构建企业级金融数据解决方案的.NET实践指南
  • 终极BetterJoy使用指南:让Switch手柄在PC上完美运行的3个关键步骤
  • C语言学习笔记20260630-动态整数序列维护(顺序表综合应用)
  • 工业LED驱动模块电源技术选型参考:钡特 NCD24-1000 与 KC24H-1000R3 硬件设计适配解析丨-1200丨-700丨国产化丨DC-DC
  • YOLOv8推理优化实战:从1.2FPS到35FPS的全链路性能提升指南
  • 2026Word文档压缩大小完整实操指南:压缩图片、另存为瘦身全流程讲解
  • SRC漏洞挖掘实战指南:从零入门到精通,掌握合法渗透测试核心技能