跳转到内容

设置变量

设置变量 是工作流中的基础节点之一,用于定义全局变量或更新变量的值。通过该节点定义的变量作用域为全局,被调用的子工作流中也可以访问到对应的变量。

指令标识:DeclareVariable
指令类型:逻辑控制指令
指令描述:设置变量,用于工作流变量赋值

工作流支持「可视化编排」和「代码编排」两种创建方式。设置变量 在两种方式里都能用,核心是「给一个变量名赋值」。

方式怎么用适合人群
可视化编排(推荐先学)拖入「设置变量」节点,配置变量名称、类型、值和描述大多数用户,零代码,适合快速搭建和调试
代码编排(Python)直接使用 Python 原生的变量赋值语句 var = value熟悉代码的用户

第一次使用建议先用可视化编排跑通。下方「参数说明」给出界面字段和代码属性名。

  • 自动化流程开始前,需要批量初始化多个变量的初始值。
  • 复杂业务逻辑中,需要统一管理多个状态变量或配置参数。
  • 数据处理流程中,需要根据输入动态设置不同类型的变量。
  • 流程控制中,需要一次性定义多个条件判断变量。
  • 变量名唯一且符合命名规范(不允许定义多个同名变量)。
  • 变量类型已明确,支持 StringNumberIntegerBooleanObjectArray
  • 赋值类型与定义类型一致,否则会触发类型转换失败的异常。
  • 变量值可使用常量,也可通过 ${变量名} 引用上游节点的变量。

可在节点中配置以下项:

配置项说明
变量名称NumberList,用于标识该变量,需唯一且符合命名规范
类型变量的数据类型:StringNumberIntegerBooleanObjectArray
变量值变量的具体值,支持常量和变量引用,常量直接输入,引用使用 ${变量名};注意赋值类型与定义类型一致
变量描述对变量用途或含义的补充说明,便于维护和协作
设置变量

下面用一个常见场景演示:在流程开始时初始化一个用户名和年龄变量。按 4 步即可跑起来:

  1. 在工作流画布中添加 设置变量 节点,通常放在流程靠前位置。
  2. 添加一个变量:名称 user、类型 String、值 示例用户
  3. 再添加一个变量:名称 age、类型 Number、值 25
  4. 在输出中配置变量集合名(如 customVariables),运行后通过 ${customVariables.user} 引用。
界面名称代码属性名类型必填默认值说明
输出列表inputListString-变量设置的配置列表,JSON 格式,包含变量名、值和类型等信息,不能为空,例如 [{"name":"var1","value":"hello","type":"string"}]
界面名称代码属性名类型必填说明
输出keyoutKeyString存储变量集合的输出键名,用于在后续步骤中引用设置的变量集合,例如 myVariables
  • 运行日志中节点为成功状态,没有类型转换错误。
  • 输出变量集合(如 customVariables)中包含设置的各个变量。
  • 后续节点能正确引用这些变量,取值符合预期。

该节点失败处理默认为「报错中止」(stop)。

现象 / 报错原文可能原因处理建议
配置节点时报错inputList 为空或非合法 JSON检查变量配置列表是否填写且为合法 JSON
类型转换失败赋值类型与定义类型不一致确保变量值能转换为所定义的类型
变量取值为最后一次赋值多次修改同一个全局变量全局变量以最后一次赋值为准,避免重名重复赋值
后续节点取不到变量引用路径错误通过 ${输出集合.变量名} 正确引用

代码编排以 Python 为主。在代码里,设置变量直接对应 Python 原生的变量赋值,无需单独的指令。

设置变量主要通过可视化编排使用。 在代码编排中,无需调用专门的指令,直接使用 Python 原生的变量赋值即可:

# 设置单个变量
user = "示例用户"
# 设置多个不同类型的变量
age = 25
is_active = True
number_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: 可以通过发送消息节点打印变量值进行观察,跟踪变量的变化情况。