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

影刀RPA保姆级教程:流程参数实战——子流程之间如何传递数据

把大流程拆成子流程之后,问题来了:子流程A采集到的商品链接,怎么传给子流程B去打开?

流程参数就是子流程之间的“数据快递”。 主流程把数据打包(输入参数)发给子流程,子流程处理完再把结果打包(输出参数)送回主流程。

picture.image

我也是拆了子流程之后才发现,不会传参数等于没拆。

一、参数长什么样?

picture.image

在影刀里,参数就是带类型的变量,专门用来在流程之间传递。

三种参数类型

picture.image

类型方向谁给谁举例
输入参数主流程传给子流程把“连衣裙”传给搜索子流程
输出参数子流程返回给主流程子流程返回“采集到30条数据”
输入输出参数双向传递比较少用

picture.image

视觉区分:在子流程顶部,输入参数是绿色箭头进入,输出参数是蓝色箭头出去。

二、第一步:定义子流程的输入参数

picture.image 场景:写一个子流程“B_搜索商品”,需要主流程告诉它搜什么关键词。

操作步骤

  1. 打开子流程“B_搜索商品”

picture.image 2. 点击顶部工具栏的“流程参数”按钮(齿轮图标)

  1. 点击“添加” → 选择“输入参数
  2. 填写:
    • 参数名:关键词(英文或拼音,不要中文)
    • 显示名:搜索关键词(中文说明,方便看)

picture.image

  • 参数类型:字符串
  • 默认值:留空或者填“连衣裙”
  1. 点确定

参数类型怎么选

picture.image

你要传什么选类型
文本、单个词字符串
数字(价格、数量)整数 / 小数
是/否布尔
多个值(如商品列表)列表
Excel行数据字典 / 列表

子流程内部怎么用输入参数

在子流程的指令里,用{关键词}(花括号包起来)代表这个参数。

比如“输入文本”指令,输入内容填{关键词}

三、第二步:定义子流程的输出参数

场景:搜索完成后,要告诉主流程“找到了多少商品”。

操作步骤

  1. 还是在“流程参数”窗口
  2. 添加 → 选择“输出参数
  3. 填写:
    • 参数名:搜索结果数量
    • 显示名:搜索结果数量
    • 参数类型:整数

picture.image 4. 点确定

子流程内部怎么赋值给输出参数

在子流程的最后,用“设置变量”指令,把值赋给输出参数。

设置变量:搜索结果数量 = {采集到的商品列表长度}

注意:输出参数的名字在子流程内部也是当变量用,可以直接赋值。

多个输出参数:可以定义多个,比如是否成功(布尔)、第一条商品链接(字符串)。

四、第三步:主流程调用子流程并传参

操作步骤

  1. 在主流程里拖入“调用子流程”指令
  2. 选择子流程“B_搜索商品”
  3. 右侧详情面板会出现“输入参数”区域
  4. 在“关键词”这一行,选择主流程里的变量,比如{主流程关键词}
  5. 如果有输出参数,下方“输出参数”区域会自动出现
  6. 新建变量接收输出结果,比如{采集数量}

配置示例

picture.image

# 主流程
设置变量:主流程关键词 = “连衣裙”

调用子流程:B_搜索商品
    输入参数:关键词 = {主流程关键词}
    输出参数:搜索结果数量 → 存到变量 {商品数量}

输出日志:“搜索完成,找到{商品数量}个商品”

五、实战案例:关键词搜索+采集+写入(完整传参链)

子流程A:B_搜索并采集(输入:关键词,输出:商品列表)

内部逻辑:

  1. 打开拼多多,输入{关键词}搜索
  2. 等待结果
  3. 获取相似元素列表(所有商品标题)
  4. 把标题列表赋值给输出参数商品列表

子流程B:C_写入Excel(输入:商品列表,输出:写入行数)

内部逻辑:

  1. 打开Excel
  2. 列表循环遍历{商品列表}
  3. 逐行写入
  4. 输出参数写入行数 = 循环次数

主流程

1. 设置变量:待搜索词 = “连衣裙”
2. 调用 B_搜索并采集
   输入:关键词 = {待搜索词}
   输出:商品列表 → {采集到的标题列表}
3. 调用 C_写入Excel
   输入:商品列表 = {采集到的标题列表}
   输出:写入行数 → {行数}
4. 输出日志:“成功写入{行数}条数据”

六、高级技巧:参数传对象(元素、Excel对象)

场景:主流程打开了Excel,想把“这个打开的Excel”传给子流程去写入。

方法:输出参数类型选“通用值”,可以传Excel对象、Web页面对象等。

操作

  1. 主流程:“打开Excel” → 输出到变量Excel对象
  2. 调用子流程时,把{Excel对象}作为输入参数传进去
  3. 子流程的输入参数类型选“通用值
  4. 子流程内部直接用这个对象,不需要再打开一次

注意:传对象时,子流程里不能关闭这个对象,否则主流程再用会报错。

七、常见误区

误区1:参数名用中文 ❌ 输入参数名写“关键词”(中文),在子流程里用{关键词}有时会识别不了 ✅ 用英文或拼音guanjiancikeyword

误区2:输出参数忘记赋值 ❌ 定义了输出参数,但子流程结束前没给它赋值 → 主流程收到的是空值 ✅ 子流程结束前,用“设置变量”把值赋给输出参数

误区3:输入参数和子流程内部变量重名 ❌ 输入参数叫keyword,子流程内部也用keyword作为临时变量 → 会覆盖 ✅ 输入参数叫p_keyword,内部临时变量用temp_keyword

误区4:传列表时忘了用列表循环 ❌ 把整个列表一次性写入Excel的一行 ✅ 用列表循环遍历列表,逐行写入

八、调试技巧:看参数传没传对

在主流程调用子流程前,加一条“输出日志”打印要传的参数:

输出日志:“准备调用搜索子流程,关键词={主流程关键词}”

在子流程的第一条指令,打印收到的输入参数:

输出日志:“子流程收到关键词:{关键词}”

在子流程的最后,打印输出参数的值:

输出日志:“子流程准备返回,搜索结果数量={搜索结果数量}”

这样跑一遍日志,就能看到数据在哪个环节丢了。

常见问题/易错速查

问题原因解决方法
主流程调用子流程时输入参数区域是空的子流程没定义输入参数去子流程的“流程参数”里添加
子流程里用{参数名}报错参数名拼错了或大小写不对检查参数名,影刀区分大小写
输出参数在主流程里是空值子流程忘记给输出参数赋值在子流程结束前加“设置变量”
传列表进去,子流程收到的是字符串参数类型选成了“字符串”改成“列表”类型
传Excel对象报错子流程里关闭了Excel不要在子流程里关闭,回主流程关

推荐资源

影刀官方示例:市场搜索“流程参数示例”,下载后看主流程和子流程的参数配置。

我的习惯命名规范

  • 输入参数:in_xxx(如in_keyword
  • 输出参数:out_xxx(如out_count
  • 内部临时变量:tmp_xxx

这样一眼就能看出变量的作用域。


最后说一句
参数传递是子流程拆分的“黏合剂”。没学会之前,我把所有代码写在一个流程里,因为不知道怎么传数据。学会之后,一个应用拆成十多个子流程,每个都能单独测试和维护。

记住:输入参数是问子流程“你需要什么”,输出参数是问子流程“你给了我什么”

作者:林焱

本文为《影刀RPA学习手册》系列文章之一,内容源于实操经验的整理与分享。

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