工作流变量

工作流变量保存单次执行中的共享数据。在工作流的 Variables 面板定义初始值,在块中使用 <variable.name> 读取,并通过 Variables 块 更新。运行时赋值不会在不同运行之间持久保存。

变量可用于在整个工作流中存储和共享数据,便于维护状态并构建复杂、相互关联的系统。

概览

变量功能作为工作流的中心数据存储,可让你:

存储全局数据:创建在工作流执行期间持续存在的变量

在区块之间共享信息:从工作流中的任意区块访问同一数据

维护工作流状态:在工作流运行过程中跟踪重要值

创建动态工作流:构建可根据存储值进行调整的更灵活系统

创建变量

在工作流的 Variables 面板或 Workflow Variables 组件 中创建和管理变量。每个变量包含:

  • 名称:用于引用该变量的唯一标识符
  • 类型:plain(纯文本)、number、boolean、object、array 或 listingIdentity
  • 初始值:用于初始化每次运行的已保存值;新变量默认为空 plain 文本

访问变量

可从工作流中的任意区块通过变量下拉菜单访问变量。只需:

  1. 在区块内的任意文本字段中输入 <
  2. 浏览下拉菜单,从可用变量中选择
  3. 选择要使用的变量

在文本字段中输入 < 时,会弹出下拉列表,列出所有可用的工作流变量。选择所需项即可插入对该变量的引用。

也可以将连接标签拖入字段,以打开变量下拉列表并访问 可用变量。

变量类型

TradingGoose 中的变量可以存储多种类型的数据:

"Hello, World!"

文本变量存储字符串。适用于存储消息、名称及其他文本数据。

42

数字变量存储数值,可用于计算或比较。

true

布尔变量存储 true/false 值,适用于标志和条件判断。

{
  "name": "John",
  "age": 30,
  "city": "New York"
}

对象变量存储带有属性和值的结构化数据。

[1, 2, 3, "four", "five"]

数组变量存储有序的项目集合。

在区块中使用变量

从区块访问变量时,你可以:

  • 读取其值:在区块逻辑中使用变量的当前值
  • 修改变量:通过 Variables 块赋新值
  • 在表达式中使用:在 Function 代码或条件表达式中计算;Variables 值字段不会执行算术表达式

变量作用域

TradingGoose 中的变量具有全局作用域,这意味着:

  • 可从工作流中的任意区块访问
  • 对变量的更改会在整个工作流执行期间持续有效
  • 每次新运行都会从工作流的实时状态或部署快照加载已保存的初始值;不会保存上次运行中的赋值

Parallel 实例共享这些变量,因此并发写入可能相互覆盖。需要隔离时,应使用各实例的块输出并聚合容器结果。需要跨运行保留的状态请存入持久化存储。

最佳实践

  • 使用描述性名称:选择能清楚表明变量含义的名称。例如,使用 userPreferences,而不是 up。
  • 为变量添加说明:在工作流备注中解释其用途;变量编辑器没有单独的描述字段。
  • 考虑变量作用域:变量在运行期间共享。当读取依赖较早的赋值时,请连接相关块以确保顺序。
  • 尽早初始化变量:在工作流开头设置并初始化变量,确保需要时可用。
  • 处理缺失变量:始终考虑变量可能尚不存在或值不符合预期的情况。在区块中加入适当的校验。
  • 控制变量数量:将变量数量保持在可管理的范围内。变量过多会使工作流难以理解和维护。