RPA 流程的逻辑结构和编程语言一模一样——顺序、条件、循环三种;再加上【变量】这条血脉和【子流程】这个复用手段,就能搭出真正能用的自动化,而不只是一串动作。
1.5.1 认了门,本节上逻辑。如果你学过编程原理课的流程图(4-1)或 C++/Java 的条件与循环,这一节会轻松得多——规则完全相同,只是写的方式从代码变成了拖拽。本节之后,1.5.3/1.5.4 就是把这三结构用在网页和桌面软件上。
一、三种逻辑结构:和编程同源
① 顺序——从上往下依次执行。这是默认形态。
② 条件(判断)——满足条件走一条路,不满足走另一条。
如果 文件名的月份 = 上月 → 归档到【上月】文件夹
否则 → 归档到【本月】文件夹
③ 循环——对一批数据重复同一套动作。
对 表格中的每一行:
打开网页 → 输入这一行的商品编号 → 抓取价格 → 写回这一行的价格列
对照一下:这三种结构就是编程原理课里【流程图的三结构】——顺序、分支、循环。换成拖拽界面,本质没变。
一个实用判断:当你要写第四个重复的动作时,就该考虑用循环了——照抄三遍还能忍,抄到第八遍就该重建。
二、变量:流程的血脉
变量=给数据起的名字,流程的每一步靠它传递数据。
影刀里常见的类型:
| 类型 | 用来存 | 例子 |
|---|---|---|
| 文本 | 字符串、文件路径 | 2026-09 发票.pdf |
| 数字 | 计数、金额 | 203.5 |
| 列表(数组) | 一批同类数据 | 所有文件名 |
| 字典 | 带名字的多个值 | 一行数据:{日期:..., 金额:...} |
| 表格(数据表) | 一张二维表 | 从 Excel 读进来的全部数据 |
三条铁律(和 1.2.3 工作流的变量规矩完全一致):
- 每个动作的输出要【装进】一个变量,否则下一步拿不到;
- 下一步要【引用】这个变量(在属性面板里选,不是手打文本);
- 变量名要起得能读懂——
rows比a1好,lastMonthTotal比x好。流程越复杂,这条越救你的命。
三、子流程与自定义指令:别复制粘贴
当你发现同一段五步动作在流程里出现了三次,把它抽成一个【子流程】或【自定义指令】调用三次。
| 做法 | 好处 | 坏处 |
|---|---|---|
| 复制三遍 | 快 | 改的时候要改三处,改漏一处就出鬼 |
| 抽成子流程 | 改一处全局生效;流程短、好读 | 需要多花几分钟设计参数 |
这条原则和编程里的【函数】一模一样(C++ 课第五章、编程原理 4-4 都讲过):同样的逻辑只应存在一处。
四、一个容易被忽略的问题:要不要【判断】?
RPA 能做简单的判断(等于、包含、大于),但做不了模糊判断(【这条评论态度好不好】【这份合同有没有风险】)。
于是出现一个清晰的分工:
确定性的判断(这个数大于 100 吗) → RPA 自己做
模糊的判断(这条内容合格吗) → 交给 Agent 判断,结果作为条件
怎么把 Agent 的判断接进 RPA 的条件:让 Agent(或工作流)只输出两个词(例如【通过】/【不通过】),RPA 读这个值,条件分支接住。
这就是 1.2.3 里那个设计模式在 RPA 侧的另一半——1.6 整节都在讲这条线怎么接。
五、动手 Demo:写一个【按月份归档文件】的流程
准备:影刀客户端 + 一个用来测试的文件夹(先建一个,里面放 5~10 个随便命名的文本文件,别拿真实资料练手)。
第一步——摆结构(先想清楚,再拖组件):
1. 获取文件夹【测试资料】下的所有文件名 → 变量:文件列表
2. 循环:对 文件列表 中的每一个 文件
2.1 取文件名中的前 7 位(形如 2026-09) → 变量:月份
2.2 判断:文件夹【测试资料\月份】是否已存在
存在 → 直接移动
不存在 → 先创建文件夹,再移动
3. 循环结束后:输出一共处理了多少个文件 → 变量:计数
第二步——照结构拖组件(用到:获取文件列表、循环、字符串处理、条件判断、创建文件夹、移动文件)。
第三步——运行。
看到什么算成功:测试文件夹里自动出现了按月份命名的子文件夹,文件各归各位;运行日志里能看到【循环第 1 次/第 2 次…】的执行记录;最后输出的计数等于文件总数。
读结果:
- 如果文件都跑进了一个文件夹——多半是循环变量忘了引用(用了固定的文件名,而不是【当前循环项】)。这是新手第一大坑,和 1.2.3 的【忘引用】是同一个病;
- 如果报错说文件夹不存在——说明你的条件判断没写好,或者创建文件夹那一步没被执行到;
- 故意试一次异常:在测试文件夹里放一个名字很短的怪文件(比如
a.txt),再跑一遍。看它是崩掉还是跳过——这就是 1.4.2 第 6 项【异常处理】的现场体验。能跳过并记录,才算合格。
30 秒实验
在你刚搭的流程里,把【循环】组件删掉,只保留循环里面的动作(等于只处理第一个文件),运行。
观察:只处理了一个文件就结束了。
结论:循环是【批量】与【单个】的分界线——这也是自动化真正产生价值的地方(处理 1 个文件叫玩具,处理 500 个才叫自动化)。
常见误区
- 【流程越长越强大】——越长越难调。能拆成子流程就拆,主流程只留骨架。
- 【变量名随便起】——
var1、var2、var3在 20 步的流程里会让你彻底失控。这个成本极低、收益极高,别省。 - 【条件判断写得越复杂越好】——多重条件嵌套是 bug 的温床。做法:先把判断结果存进一个布尔变量(
是上月),再按它分支,可读性天差地别。 - 【什么都自己判断】——见第四节:模糊判断必须交给 Agent。硬要用 RPA 做(比如判断文案质量),只能靠关键词匹配,结果必然一塌糊涂。
- 【报错就关掉重跑】——先看日志。循环里的报错往往是【第 37 条数据的问题】,重跑不解决任何事,得回去看第 37 条长什么样。
自测三问(点开对答案)
1. **RPA 的三种基本逻辑结构是什么?和哪门课的知识同源?** 顺序、条件(分支)、循环——**和编程原理课 4-1 的流程图三结构、C++/Java 的条件与循环完全同源**,只是从【写代码】变成【拖组件】。 2. **变量的三条铁律是什么?** ① 上一步的输出要**装进变量**;② 下一步要**显式引用**它(不是手打文本);③ 变量名要**能读懂**。循环里【忘引用当前项】是新手第一大坑。 3. **RPA 做不了哪种判断?该怎么办?** 做不了**模糊判断**(内容好不好、有没有风险)。做法是**把判断交给 Agent,让它只输出【通过】/【不通过】两个词**,RPA 用条件分支接住——这就是 1.6 要讲的对接模式。- ☐ 下一节(1.5.3 网页自动化)
相关笔记
- 基础介绍 —— 界面三区域与第一个流程
- 工作流编排 —— 同一个【节点+变量+分支】思路
- 网页自动化 —— 把这三结构用在浏览器里
- 编程原理 4-1 · 流程图 —— 顺序/分支/循环的原始出处
- 🤖 Agent+RPA实战 · 索引 —— 全课路线图