Chuyển tới nội dung chính

Variable (Biến)

Gán, tính, chuyển đổi, reset, hay gỡ các biến flow.

Mỗi dòng nói bạn muốn làm gì với một biến: cộng vào bộ đếm, nối thứ OCR đọc, chuyển chữ thành số, chép giá trị, reset nó. Bạn chọn thao tác; node viết biểu thức giùm.

Biến được tạo tự động lần đầu một dòng gán nó.

Mục đích

Cho flow trí nhớ kéo dài trọn lần chạy — bộ đếm, cờ, giá trị chép, kết quả OCR đã chuyển đổi.

Khi nào dùng

  • Đếm lượt, lần thử, hay mục đã xử lý.
  • Chuyển chuỗi OCR thành số so sánh được.
  • Chép giá trị để nó sống qua node sinh ra nó.
  • Đặt cờ để If sau rẽ theo.
  • In giá trị vào log khi gỡ lỗi.

Khi nào không dùng

  • Nhớ qua các lần chạy — dùng biến theo-instance (dưới) hoặc Runtime Memory.
  • Truyền đối số sang flow khác — dùng input mapping của Sub Flow.

Cách nó chạy

Hai tính chất định nghĩa node này:

Tất-cả-hoặc-không. Một dòng lỗi thì không dòng nào áp. Không bao giờ có bộ biến cập nhật dở.

Các dòng không thấy nhau. Mọi dòng định giá trước khi dòng nào lưu, nên dòng hai đọc giá trị trước node này — không phải giá trị dòng một vừa ghi.

Các dòng không tuần tự
Dòng 1: count = {{count}} + 1
Dòng 2: total = {{count}} ← đọc count CŨ

Nếu một phép gán phải thấy phép gán khác, dùng hai node Variable.

Thiết lập

Thiết lậpKiểuGhi chú
Operationlựa chọnNhóm theo Store a value / Numbers / Text / Convert / Manage
Targetđường dẫn biếnBiến dòng này ghi
Value / expressionstring≤ 1000 ký tự
Store aslựa chọnAuto, Text, hay Yes/No
If not a number, usegiá trịDự phòng cho thao tác số
Ignore surrounding textbooleanConvert-to-number: lấy số đầu tiên tìm thấy
Store per instancebooleanGhi vào scope Instance thay vì lần chạy
Expire afterinteger1 s – 1 năm; giá trị hồi về mặc định

Các thao tác

NhómThao tácHiệu ứng
StoreSet toLưu giá trị hoặc biểu thức
NumbersAdd / SubtractBiến chưa gán coi là 0
NumbersMultiply / DivideBiến chưa gán coi là 1
TextAppendNối chuỗi
ConvertConvert to numberPhân tích chữ thành số, kèm dự phòng
ManageResetTrả biến về mặc định, giữ nó
ManageRemoveXóa biến cho phần còn lại lần chạy
ManageShow in run logIn giá trị không thay đổi gì

Reset không phải Remove. Reset khôi phục mặc định khai và giữ biến; Remove xóa nó.

Store as

Auto giữ nguyên bản chất giá trị — số vẫn là số, biến giữ kiểu riêng, còn lại thành chữ. Ép kiểu bằng Text hay Yes/No.

Số đọc từ màn, dùng Convert to number, có kèm dự phòng.

Convert to number, và vì sao bạn cần nó

Kết quả đọc màn là chữ, kể cả khi trông như số. "LEVEL 5" là chuỗi; "1167" cũng vậy.

Convert to number phân tích nó, và Ignore surrounding text lấy số đầu tìm thấy — "LEVEL 5" thành 5.

Ô If not a number, use cấp dự phòng khi phân tích hỏng. Xóa trống nó làm ca đó rẽ Failure, rẽ theo được.

Store per instance

Ghi vào scope Instance: giá trị sống qua các lần chạy và khởi động lại, mọi flow trên instance đó thấy, và cách ly giữa các instance. Xem Biến và bộ nhớ.

Expire after

Giá trị hồi về mặc định của biến khi hết giờ (tối đa một năm). Tắt = vĩnh viễn.

Port

PortĐi vào khiBắt buộc
SuccessMọi dòng đã áp (output: số dòng gán)
FailureMột dòng không tính được giá trị, hay kiểu lệch với biếnKhông
FatalLỗi cấu hìnhKhông — không bao giờ được đi

Ví dụ cơ bản

Bộ đếm lần thử:

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

Tự khởi từ 0 ở lần chạy đầu.

Ví dụ thực tế — đếm và quyết

Cặp hai node thay thế đa số bộ đếm vòng lặp:

Reset items_done về 0 ở ranh giới tự nhiên — khi một chuyến thật sự kết thúc — không phải đầu vòng lặp, kẻo nó không bao giờ chạm ngưỡng.

Ví dụ nâng cao — biến kết quả OCR thành dùng được

Thiếu bước chuyển, {{level}} >= 5 so chuỗi và lặng lẽ làm điều sai.

Best practices

  • Một node Variable mỗi bước logic. Các dòng trong node là đồng thời.
  • Cho bộ đếm mặc định 0. null + 1 không phải số.
  • Luôn đặt dự phòng cho chuyển đổi, trừ khi muốn Failure làm nhánh.
  • Dùng Show in run log khi gỡ lỗi, rồi gỡ đi.
  • Reset ở ranh giới thật, không phải đầu vòng.
  • Đặt tên biến theo nghĩaitems_done, không phải i.
  • Nối Failure trên node làm chuyển đổi.

Ghi chú hiệu năng

  • Tính toán thuần — không tương tác thiết bị. Gần miễn phí.
  • Kiểm tất-cả-hoặc-không định giá mọi dòng rồi mới ghi, nên node nhiều dòng làm một lượt kiểm một lượt ghi. Vẫn tí hon so với mọi node phát hiện.
  • Ghi theo-instance chạm lưu trữ bền. Tránh đặt trong vòng lặp siết.

Ghi chú bộ nhớ

  • Biến flow sống trong ngữ cảnh lần chạy, giải phóng khi kết thúc.
  • Biến theo-instance bền trên đĩa vô hạn — cho chúng đường reset chủ đích.
  • Remove giải phóng biến cho phần còn lại lần chạy; Reset giữ nó cấp phát ở mặc định.

Lỗi thường gặp

LỗiHậu quảCách sửa
Tính toán trên chữ OCRSai âm thầm hoặc FailureConvert to number trước
Kỳ vọng dòng 2 thấy dòng 1Nó đọc giá trị trước-nodeHai node Variable
Kỳ vọng Reset xóaReset khôi phục mặc địnhDùng Remove
Bộ đếm không mặc địnhPhép cộng chẳng ra gìMặc định 0
Reset bộ đếm đầu vòngKhông bao giờ chạm ngưỡngReset ở ranh giới chuyến
Đổi kiểu biến giữa chừngDòng rẽ FailureMột kiểu một biến

Khắc phục sự cố

Không biến nào đổi và node rẽ Failure. Tất-cả-hoặc-không: một dòng hỏng chặn mọi dòng. Kiểm giá trị và kiểu từng dòng.

Bộ đếm mãi là 1. Dòng đang gán thay vì cộng. Dùng Add to it, hay {{count}} + 1.

Chuyển đổi hỏng liên tục. Chữ không có số phân tích được. Bật Ignore surrounding text, hoặc đặt dự phòng.

Giá trị theo-instance cũ từ nhiều ngày. Theo-instance nghĩa là vậy. Clear tường minh trong flow setup.

FAQ

Phải khai biến trước không? Dòng gán sẽ tạo nó. Khai trước cho kiểu và mặc định thì tốt hơn.

Add lên biến chưa gán thì sao? Add/Subtract coi là 0; Multiply/Divide coi là 1.

{{name}} khác ${name}? Không.

Expire-after tối đa? Một năm.

Node liên quan

  • If — rẽ theo thứ đã lưu
  • Read Text — nguồn giá trị thường gặp
  • Runtime Memory — bộ nhớ liên-lần-chạy có TTL
  • Sub Flow — truyền giá trị sang flow khác

Trang liên quan