设置变量
设置变量 是工作流中的基础节点之一,用于定义全局变量或更新变量的值。通过该节点定义的变量作用域为全局,被调用的子工作流中也可以访问到对应的变量。
指令标识:DeclareVariable
指令类型:逻辑控制指令
指令描述:设置变量,用于工作流变量赋值
先选使用方式
Section titled “先选使用方式”工作流支持「可视化编排」和「代码编排」两种创建方式。设置变量 在两种方式里都能用,核心是「给一个变量名赋值」。
| 方式 | 怎么用 | 适合人群 |
|---|---|---|
| 可视化编排(推荐先学) | 拖入「设置变量」节点,配置变量名称、类型、值和描述 | 大多数用户,零代码,适合快速搭建和调试 |
| 代码编排(Python) | 直接使用 Python 原生的变量赋值语句 var = value | 熟悉代码的用户 |
第一次使用建议先用可视化编排跑通。下方「参数说明」给出界面字段和代码属性名。
什么时候用?
Section titled “什么时候用?”- 自动化流程开始前,需要批量初始化多个变量的初始值。
- 复杂业务逻辑中,需要统一管理多个状态变量或配置参数。
- 数据处理流程中,需要根据输入动态设置不同类型的变量。
- 流程控制中,需要一次性定义多个条件判断变量。
- 变量名唯一且符合命名规范(不允许定义多个同名变量)。
- 变量类型已明确,支持
String、Number、Integer、Boolean、Object、Array。 - 赋值类型与定义类型一致,否则会触发类型转换失败的异常。
- 变量值可使用常量,也可通过
${变量名}引用上游节点的变量。
可在节点中配置以下项:
| 配置项 | 说明 |
|---|---|
| 变量名称 | 如 NumberList,用于标识该变量,需唯一且符合命名规范 |
| 类型 | 变量的数据类型:String、Number、Integer、Boolean、Object、Array |
| 变量值 | 变量的具体值,支持常量和变量引用,常量直接输入,引用使用 ${变量名};注意赋值类型与定义类型一致 |
| 变量描述 | 对变量用途或含义的补充说明,便于维护和协作 |
可视化编排:从 0 到跑通
Section titled “可视化编排:从 0 到跑通”下面用一个常见场景演示:在流程开始时初始化一个用户名和年龄变量。按 4 步即可跑起来:
- 在工作流画布中添加 设置变量 节点,通常放在流程靠前位置。
- 添加一个变量:名称
user、类型String、值示例用户。 - 再添加一个变量:名称
age、类型Number、值25。 - 在输出中配置变量集合名(如
customVariables),运行后通过${customVariables.user}引用。
| 界面名称 | 代码属性名 | 类型 | 必填 | 默认值 | 说明 |
|---|---|---|---|---|---|
| 输出列表 | inputList | String | 是 | - | 变量设置的配置列表,JSON 格式,包含变量名、值和类型等信息,不能为空,例如 [{"name":"var1","value":"hello","type":"string"}] |
| 界面名称 | 代码属性名 | 类型 | 必填 | 说明 |
|---|---|---|---|---|
| 输出key | outKey | String | 否 | 存储变量集合的输出键名,用于在后续步骤中引用设置的变量集合,例如 myVariables |
- 运行日志中节点为成功状态,没有类型转换错误。
- 输出变量集合(如
customVariables)中包含设置的各个变量。 - 后续节点能正确引用这些变量,取值符合预期。
该节点失败处理默认为「报错中止」(stop)。
| 现象 / 报错原文 | 可能原因 | 处理建议 |
|---|---|---|
| 配置节点时报错 | inputList 为空或非合法 JSON | 检查变量配置列表是否填写且为合法 JSON |
| 类型转换失败 | 赋值类型与定义类型不一致 | 确保变量值能转换为所定义的类型 |
| 变量取值为最后一次赋值 | 多次修改同一个全局变量 | 全局变量以最后一次赋值为准,避免重名重复赋值 |
| 后续节点取不到变量 | 引用路径错误 | 通过 ${输出集合.变量名} 正确引用 |
Python 代码编排
Section titled “Python 代码编排”代码编排以 Python 为主。在代码里,设置变量直接对应 Python 原生的变量赋值,无需单独的指令。
设置变量主要通过可视化编排使用。 在代码编排中,无需调用专门的指令,直接使用 Python 原生的变量赋值即可:
# 设置单个变量user = "示例用户"
# 设置多个不同类型的变量age = 25is_active = Truenumber_list = [4, 6, 8, 0]user_info = {"name": "示例用户", "age": 25, "city": "城市A"}
# 后续逻辑直接引用这些变量print(user, age, number_list)如果你想在工作流中通过节点动态编排该指令,可使用 执行指令(XML)节点,按上方参数表进行配置。
Q1:多次定义并修改同一个变量的值会有什么影响?
Section titled “Q1:多次定义并修改同一个变量的值会有什么影响?”A: 设置变量节点定义的是全局变量,且不允许定义多个同名变量。多次修改同一个变量的值时,实际生效的值以最后一次赋值为准。
Q2:定义的类型和赋值的数据类型不匹配怎么办?
Section titled “Q2:定义的类型和赋值的数据类型不匹配怎么办?”A: 赋值时会将值转换为变量定义的类型,转换成功则正常赋值,否则会发生异常。
Q3:如何在复杂的工作流中调试变量?
Section titled “Q3:如何在复杂的工作流中调试变量?”A: 可以通过发送消息节点打印变量值进行观察,跟踪变量的变化情况。