影刀RPA 参数传递:主流程与子流程通信

影刀RPA 参数传递:主流程与子流程通信
title: “影刀RPA 参数传递主流程与子流程通信”date: 2026-06-26author: 林焱影刀RPA 参数传递主流程与子流程通信主流程和子流程之间需要传递数据掌握参数传递技巧可以让流程更灵活。什么情况用什么适用场景主流程需要把数据传给子流程处理子流程需要把处理结果返回给主流程需要在多个子流程之间共享数据参数结构复杂需要传递对象不适用场景主流程和子流程不需要通信参数很简单用全局变量就够了不推荐怎么做方法1使用输入参数和输出参数子流程定义输入参数和输出参数主流程调用时传递参数。【影刀操作】- 子流程新建流程「计算折扣」子流程添加输入参数参数名amount参数类型数字参数名customer_level参数类型文本添加计算逻辑添加【条件判断】指令判断条件amount 10000ANDcustomer_level VIP如果为真添加【变量赋值】指令变量discount值0.8添加输出参数参数名discount参数值变量discount【影刀操作】- 主流程打开主流程「处理订单」添加【调用子流程】指令子流程名称计算折扣输入参数amount: 变量order_amountcustomer_level: 变量level保存输出变量discount_result添加【写入日志】指令日志内容折扣 变量discount_result方法2使用全局变量不推荐定义全局变量主流程和子流程都可以访问。【影刀操作】添加【变量赋值】指令全局变量变量名GLOBAL_ORDER_ID值变量order_id在子流程中访问全局变量添加【变量赋值】指令变量local_order_id值全局变量GLOBAL_ORDER_ID注意不推荐使用全局变量因为会导致流程耦合难以维护。方法3使用配置文件把参数写到配置文件主流程和子流程都读取配置文件。【影刀操作】创建配置文件config.json{api_url:https://api.example.com,timeout:30,retry_count:3}在主流程中读取配置添加【读取文件】指令文件路径C:\配置\config.json保存结果变量config把配置作为参数传给子流程方法4使用数据库把参数保存到数据库主流程和子流程都访问数据库。【影刀操作】在主流程中把参数写入数据库添加【Python】指令代码importpymysql connpymysql.connect(hostlocalhost,userroot,passwordpassword,databaserpa)cursorconn.cursor()# 写入参数cursor.execute(INSERT INTO rpa_params (flow_id, param_name, param_value) VALUES (%s, %s, %s),(flow_id,order_id,order_id))conn.commit()在子流程中读取参数添加【Python】指令代码# 读取参数cursor.execute(SELECT param_value FROM rpa_params WHERE flow_id %s AND param_name %s,(flow_id,order_id))order_idcursor.fetchone()[0]方法5使用消息队列主流程和子流程通过消息队列通信适用于异步场景。【影刀操作】在主流程中发送消息添加【Python】指令代码importpika# 连接RabbitMQconnectionpika.BlockingConnection(pika.ConnectionParameters(localhost))channelconnection.channel()# 发送消息message{order_id:order_id,amount:amount}channel.basic_publish(exchange,routing_keyorder_queue,bodystr(message))connection.close()在子流程中接收消息添加【Python】指令代码# 接收消息method_frame,header_frame,bodychannel.basic_get(queueorder_queue,auto_ackTrue)ifbody:messageeval(body)order_idmessage[order_id]有什么坑坑1参数类型不匹配主流程传递的参数类型和子流程期望的类型不匹配解决方法在子流程入口处检查参数类型或添加类型转换坑2参数缺失主流程调用子流程时漏传了必填参数解决方法在子流程入口处检查必填参数是否存在坑3参数过多子流程有十几个参数调用时容易出错解决方法把相关参数封装成对象或使用配置文件坑4全局变量冲突多个流程使用同一个全局变量互相干扰解决方法不要使用全局变量使用参数传递坑5参数传递性能差传递大量数据如10万行Excel性能很差解决方法只传递文件路径在子流程中读取实战技巧清晰的接口子流程的接口要清晰输入参数和输出参数要明确参数校验在子流程入口处校验参数提前发现问题默认值对于可选参数设置合理的默认值文档化子流程的参数要有清晰的文档说明总结参数传递是主流程和子流程通信的方式。通过使用输入参数、输出参数、配置文件、数据库和消息队列可以实现灵活的数据传递。关键是要有清晰的接口设计和参数校验。