跳到主要内容

Variable(变量)

设置、计算、转换、重置或删除流程变量。

每行说明你要对一个变量做什么:给计数器加数、拼上 OCR 读到的、把文本转成数字、复制值、重置它。你选操作;节点替你写表达式。

变量在某行首次设置它时自动创建。

用途

给流程一份持续整次运行的记忆——计数器、旗标、复制的值、转换后的 OCR 读数。

何时用

  • 数迭代、尝试或已处理条目。
  • 把 OCR 字符串转成可比较的数字。
  • 复制一个值,让它活过产生它的节点。
  • 设一个旗标供后面的 If 分支。
  • 调试时把值打进运行日志。

何时不用

  • 跨运行记住某物——用按实例变量(下文)或 Runtime Memory
  • 向另一个流程传参——用 Sub Flow 的输入映射。

如何运行

定义本节点的两个性质:

全有或全无。 任一行出错则没有行被应用。你绝不会得到半更新的变量集。

各行互不可见。 所有行在任何行存储之前求值,所以第二行读到的是本节点之前的值——不是第一行刚写的。

各行不是顺序的
行 1: count = {{count}} + 1
行 2: total = {{count}} ← 读到旧的 count

若一个赋值必须看到另一个,用两个 Variable 节点

设置

设置类型备注
Operation选择按 Store a value / Numbers / Text / Convert / Manage 分组
Target变量路径本行写哪个变量
Value / expressionstring≤ 1000 字符
Store as选择Auto、Text 或 Yes/No
If not a number, use数值操作的回退
Ignore surrounding textboolean转数字:取找到的第一个数
Store per instanceboolean写进 Instance 作用域而非本次运行
Expire afterinteger1 秒–1 年;值回到默认

操作

操作效果
StoreSet to存一个值或表达式
NumbersAdd / Subtract未设的变量按 0 处理
NumbersMultiply / Divide未设的变量按 1 处理
TextAppend拼接文本
ConvertConvert to number把文本解析成数,带回退
ManageReset把变量还原为默认值,并保留它
ManageRemove在本次运行余下时间删除变量
ManageShow in run log打印值,不做改动

Reset 不是 Remove。 Reset 恢复声明的默认值并保留变量;Remove 删除它。

Store as

Auto 保持值本来的样子——数字仍是数字、变量保持自身类型、其余成为文本。用 Text 或 Yes/No 强制类型。

屏幕上读来的数字,用 Convert to number,它带回退。

Convert to number——以及你为何需要它

屏幕读数是文本,哪怕它看着像数字。"LEVEL 5" 是字符串;"1167" 也是。

Convert to number 解析它,Ignore surrounding text 取找到的第一个数——"LEVEL 5" 变成 5

If not a number, use 字段在解析失败时提供回退。清空它则该情况走 Failure,你可以分支。

Store per instance

写进 Instance 作用域:值跨运行与重启存活、该实例上每个流程可见、实例间隔离。见变量与记忆

Expire after

时间一到值回到变量默认值(最长一年)。关 = 永久。

端口

端口走它的时机必接
Success所有行已应用(输出:赋值数)
Failure某行值算不出,或类型与变量不符
Fatal配置错误否——永不被走

基础示例

一个重试计数器:

  • Operation:Add to it
  • Target:attempts
  • Value:1

首次运行自动从 0 开始。

实际示例——数并决定

替代多数循环计数器的双节点惯用法:

在自然边界把 items_done 重置为 0——行程真正结束时——不是循环顶部,否则它永远到不了上限。

高级示例——让 OCR 读数可用

没有转换,{{level}} >= 5 比较字符串,悄悄做错事。

最佳实践

  • 每个逻辑步骤一个 Variable 节点。 节点内各行是同时的。
  • 计数器默认 0 null + 1 不是数。
  • 转换总设回退,除非你要 Failure 当分支。
  • 调试用 Show in run log,之后删掉。
  • 在真实边界重置,不在循环顶部。
  • 按含义命名变量——items_done,不是 i
  • 做转换的节点接 Failure。

性能笔记

  • 纯计算——无设备交互。几乎免费。
  • 全有或全无检查先求值所有行再写,所以多行节点是一遍校验一遍写。相比任何检测节点仍微不足道。
  • 按实例写触持久存储。别放进紧循环。

内存笔记

  • 流程变量住在运行上下文里,运行终止即释放。
  • 按实例变量无限期存盘——给它们刻意的重置路径。
  • Remove 在余下运行里释放变量;Reset 保留它在默认值。

常见错误

错误后果修复
对 OCR 文本做算术悄悄错或 Failure先转数字
指望第 2 行看到第 1 行它读节点前的值两个 Variable 节点
指望 Reset 删除Reset 恢复默认用 Remove
计数器无默认算术啥也不出默认 0
循环顶部重置计数永远到不了上限行程边界重置
运行中改变量类型行走 Failure一变量一类型

故障排查

没有变量变化且节点走 Failure。 全有或全无:一行坏挡住全部。逐行查值与类型。

计数器永远是 1。 该行在赋值而非累加。用 Add to it,或 {{count}} + 1

转换持续失败。 文本无可解析数字。开 Ignore surrounding text,或设回退。

按实例的值几天前的旧的。 按实例就是这个意思。在设置流程里显式清除。

FAQ

必须先声明变量吗? 设置它的行会创建它。声明给它类型和默认值,更好。

对未设变量 Add 会怎样? Add/Subtract 视为 0;Multiply/Divide 视为 1

{{name}}${name} 有别吗? 无。

Expire-after 最长? 一年。

相关节点

相关页面