Skip to content

Biểu Thức

Tính năng này cho phép bạn đặt giá trị động cho node dựa trên dữ liệu từ:

TênMiêu tảTruy cập đối tượng con
tableLấy dữ liệu từ Bảngtable.columnName
variablesLấy dữ liệu từ Biếnvariables.variableName
loopDataLấy dữ liệu trong vòng lặp của node Lặp Dữ LiệuloopData.loopId
globalDataLấy dữ liệu chung của kịch bảnglobalData
prevBlockDataLấy giá trị của khối trước đóprevBlockData
googleSheetsLấy dữ liệu từ Google SheetsgoogleSheets.referenceKey
spreadSheetsLấy dữ liệu từ Bảng tínhspreadSheets.referenceKey

Automation sử dụng dấu {{}} và mở rộng nó bằng dữ liệu tương ứng với mỗi loại dữ liệu ở phía trên

Ví dụ khi lấy giá trị đầu tiên của cột trong bảng

Đầu tiên bạn cần tạo một cột trong bảng, trong ví dụ này mình tạo ra một cột có tên cot1tạo cột

Tiếp đó bạn cần chèn dữ liệu vào cột đã tạo bằng node Chèn dữ liệu, ở đây mình đã chèn 2 giá trị a1a2 vào cột chèn dữ liệu vào cột

Cuối cùng lấy giá trị đầu tiên của cột cot1 bằng biểu thức {{table.0.cot1}} ở node Nhấn phímlấy giá trị đầu tiên của cột

Ví dụ khi lấy giá trị của một biến

Đầu tiên mình sẽ chèn giá trị a1 vào biến bien bằng node Chèn dữ liệuchèn giá trị vào biến

Tiếp đó mình sẽ ghi ra giá trị của biến bien bằng biểu thức {{variables.bien}}ghi giá trị biến

Ví dụ khi lặp dữ liệu bằng node Lặp dữ liệu

Đầu tiên mình sẽ nhập giá trị vào node Lặp dữ liệu, sau đó lặp dữ liệu với biểu thức {{loopData.loop}} để dùng với node Nhấn phím trong đó loopData là biểu thức cố định dùng cho node Lặp dữ liệu, loop là biểu thức địa diện cho loopId của node Lặp dữ liệu
setting node

Ví dụ lấy giá trị trong Dữ liệu chung

Đầu tiên mình sẽ nhập giá trị vào Dữ liệu chung, sau đó sử dụng biểu thức {{globalData.0.name}} để lấy ra giá trị đầu tiên của key name và sử dụng trong node Nhấn phímsetting node

Ví dụ khi viết giá trị của node trước đó bằng node Nhấn phím

Đầu tiên mình sẽ mở trang google.com bằng node Mở liên kết,tiếp đó mình sẽ lấy ra giá trị của node trước và ghi ra phần tìm kiếm của trang bằng biểu thức {{prevBlockData}} bằng node Nhấn phím ngay sau setting node

Ví dụ khi lấy giá trị từ Google Sheet bằng node Google Sheet

Mình sẽ cấu hình node Google Sheet với khoá tham chiếu là key. setting node

Sau đó dùng biểu thức googleSheet.key.0.name ở trong node Nhấn phím để lấy ra dữ liệu đầu tiên của cột name. Tương tự, các bạn cũng có thể lấy các giá trị ở hàng dữ liệu trong cột name bằng các số khác nhau như . setting node

Viết Biểu Thức

Để viết một biểu thức, bạn phải tuân theo định dạng {{keyword}} và thay thế keyword bằng một trong các nguồn dữ liệu ở trên. Nó cho phép Automation phân biệt giữa dữ liệu tĩnh và dữ liệu động.

Giả sử bạn có một biến listname trong quy trình và giá trị của nó là một mảng đối tượng. Bạn muốn gửi biến này tới API bằng cách sử dụng HTTP Request.

json
[
  { "name": "Telegram", "url": "https://telegram.org/" },
  { "name": "X", "url": "https://twitter.com/" },
  { "name": "Etsy", "url": "https://www.etsy.com/" }
]
[
  { "name": "Telegram", "url": "https://telegram.org/" },
  { "name": "X", "url": "https://twitter.com/" },
  { "name": "Etsy", "url": "https://www.etsy.com/" }
]

Bạn có thể sử dụng biểu thức sau bên trong phần Nội dung của node HTTP Request:

{{variables.listname}}
{{variables.listname}}

HTTP Request block body

Nhưng điều gì sẽ xảy ra nếu bạn muốn sử dụng thuộc tính url trên phần tử đầu tiên của mảng làm giá trị bên trong node Mở Liên Kết. Để làm được điều đó, hãy sử dụng biểu thức sau:

{{variables.listname.0.url}}
{{variables.listname.0.url}}

New tab block URL

0 trên biểu thức đó có nghĩa là phần tử đầu tiên của mảng. Và nếu bạn muốn lấy phần tử thứ hai của mảng thì hãy thay thế bằng 1, là 2 khi muốn lấy phần tử thứ ba, 3 cho phần tử thứ tư, v.v.

Truy Cập Dữ Liệu Khác Bên Trong Biểu Thức

Để truy cập dữ liệu khác bên trong biểu thức, bạn phải gói biểu thức để truy cập dữ liệu bằng dấu ngoặc ([]).

Ví dụ: khi bạn muốn nhân giá trị biến salary với số 12 bằng hàm $multiply

{{$multiply([variables.salary],12)}}
{{$multiply([variables.salary],12)}}

hoặc khi bạn muốn biết độ dài của bảng bang1 bằng hàm $getLength

{{$getLength[bang1]}}
{{$getLength[bang1]}}

Hàm

Tất cả các hàm dựng sẵn luôn bắt đầu bằng tiền tố $; ví dụ: $funcName(param). Và đây là danh sách tham khảo các hàm có sẵn trong Automation.

$date(date, dateFormat?)

Nhận hoặc định dạng một ngày. Hàm này có hai tham số, tham số thứ hai là tùy chọn.

Nếu muốn định dạng ngày hiện tại, bạn có thể trực tiếp chuyển dateFormat làm tham số đầu tiên, chẳng hạn như {{ $date('dd-MMMM-yyyy') }}, và kết quả sẽ là 14-September-2023. Xem tất cả các định dạng ngày có sẵn trên trang này.

Và đối với tham số ngày, hãy xem định dạng ngày hợp lệ trên MDN page.

Ví dụ

js
{{$date("dd/MM/yyyy-hh:mm aaaa") }} // 01/10/2023-05:00 p.m
{{$date("dd/MM/yyyy-hh:mm aaaa") }} // 01/10/2023-11:00 a.m
{{$date("dd/MM/yyyy-hh:mm aaaa OOOO") }} // 01/10/2023-11:00 a.m
{{$date("timestamp")}} // 132424534
{{$date("dd/MM/yyyy-hh:mm aaaa") }} // 01/10/2023-05:00 p.m
{{$date("dd/MM/yyyy-hh:mm aaaa") }} // 01/10/2023-11:00 a.m
{{$date("dd/MM/yyyy-hh:mm aaaa OOOO") }} // 01/10/2023-11:00 a.m
{{$date("timestamp")}} // 132424534

$rand(min?, max?)

Hàm sẽ tạo một số(cả số nguyên hoặc số thập phân) ngẫu nhiên hoặc 1 số trong phạm vi của 2 tham số minmax.

Ví dụ

js
{{$rand()}} // 23
{{$rand()}} // 13.333333
{{$rand(0, 10)}} // 6
{{$rand(0, 10.4)}} // 2.24234234
{{$rand()}} // 23
{{$rand()}} // 13.333333
{{$rand(0, 10)}} // 6
{{$rand(0, 10.4)}} // 2.24234234

$randint(min?, max?)

Tạo một số nguyên ngẫu nhiên hoặc số trong phạm vi của hai tham số minmax.

Ví dụ

js
{{$randint()}} // 23
{{$randint()}} // 13

{{$randint(0, 10)}} // 6
{{$randint(0, 10)}} // 2
{{$randint()}} // 23
{{$randint()}} // 13

{{$randint(0, 10)}} // 6
{{$randint(0, 10)}} // 2

$getLength(str)

Lấy độ dài của một chuỗi hoặc mảng.

Ví dụ

js
// Lấy độ dài của một chuỗi
{{$getLength("testing")}} // 12

// Lấy độ dài của một bảng
{{$getLength([table]) }}// 4

// Lấy độ dài của cột "văn bản" ở hàng thứ hai
{{$getLength([table.1.text])}} // 99
// Lấy độ dài của một chuỗi
{{$getLength("testing")}} // 12

// Lấy độ dài của một bảng
{{$getLength([table]) }}// 4

// Lấy độ dài của cột "văn bản" ở hàng thứ hai
{{$getLength([table.1.text])}} // 99

$getOTP(secret)

Hàm này sẽ nhận một tham số dưới dạng chuỗi và sau đó tạo ra một mã OTP dựa trên chuỗi đó. Thông thường hàm này sẽ dùng khi các bạn muốn lấy ra đoạn mã theo 2fa nhập vào

Ví dụ

js
{{$getOTP("qwjke234ewrh3249wei")}} // 123456

//Lấy mã otp từ một biến chứa 2fa
//a=qwjke234ewrh3249wei
{{$getOTP([variables.a])}} //123456
{{$getOTP("qwjke234ewrh3249wei")}} // 123456

//Lấy mã otp từ một biến chứa 2fa
//a=qwjke234ewrh3249wei
{{$getOTP([variables.a])}} //123456

$randData(text)

Là hàm tạo dữ liệu ngẫu nhiên, bạn chỉ cần truyền một biểu thức cho tham số của nó, ví dụ $randData("?l") sẽ tạo ra một chữ cái viết thường ngẫu nhiên như a. Biểu thức được hỗ trợ:

  • ?l: chữ thường
  • ?u: chữ hoa
  • ?d: chữ số
  • ?f: chữ thường + chữ hoa
  • ?s: biểu tượng
  • ?m: chữ hoa + chữ số
  • ?n: chữ thường + chữ số
  • ?a: bất kì

Bạn cũng có thể kết hợp các biểu thức này như $randData("?u?l?l?l?l?d?d@gmail.com") sẽ tạo ra mail kiểu abc@gmail.com.

Ví dụ

js
{{$randData("?d?d")}} // 11

{{$randData("?l?l?l?d?d@gmail.com")}} // abc@gmail.com

{{$randData("?d?u?s?l?l?s?a?m") }}// qe7Q@do*?sds
{{$randData("?d?d")}} // 11

{{$randData("?l?l?l?d?d@gmail.com")}} // abc@gmail.com

{{$randData("?d?u?s?l?l?s?a?m") }}// qe7Q@do*?sds

$randDate(minDate?, maxDate?, dateFormat?)

Hàm sẽ tạo một thông số thời gian ngẫu nhiên trong phạm vi của 2 tham số minDatemaxDate dưới dạng 1 dạng hiển thị bất kỳ của dateFormat

Ví dụ

js
{{$date("2023-10-01", "2023-10-05", "DD MMMM YYYY")}} // 3 October 2023
{{$date("2022-10-01", "2023-10-01", "DD MMMM YYYY")}} // 13 December 2022
{{$date("2023-10-01", "2023-10-05", "DD MMMM YYYY")}} // 3 October 2023
{{$date("2022-10-01", "2023-10-01", "DD MMMM YYYY")}} // 13 December 2022

$randPick(data)

Hàm sẽ lấy ngẫu nhiên 1 phần tử trong mảng dữ liệu của biến data. Hàm này thường được sử dụng khi bạn nhập một mảng vào trong hàm.

Ví dụ

js
data =["a","b", "c"]
{{$randPick([variables.data])}} // b
data =["a","b", "c"]
{{$randPick([variables.data])}} // b

$randChoice(...data)

Hàm này khá giống với hàm randPick, khi đều chọn ra một phần tử ngẫu nhiên trong mảng, như hàm này lại có thể nhận nhiều phần tử để sử dụng. Thường bạn sẽ dùng hàm này khi muốn chọn ngẫu nhiên 1 giá trị trong 1 list có trong hàm

Ví dụ

js
{{$randChoice(a,b,c)}} // c
{{$randChoice(a,b,c)}} // c

$multiply(value, multiplyBy)

Được sử dụng để nhân một giá trị.

Ví dụ

js
{{$multiply(10, 12)}} // 120

// Nhân với một biến
//a=8
{{$multiply([variables.variableName], 4)}} //32
{{$multiply(10, 12)}} // 120

// Nhân với một biến
//a=8
{{$multiply([variables.variableName], 4)}} //32

$split(value, param)

Chuyển một chuỗi giá trị thành mảng theo ký tự param mong muốn

Ví dụ

js
{{$split("chao cac ban"," ")}} // ["chao","cac","ban"]

{{$split("chao|moi|nguoi","|" )}} // ["chao","moi","nguoi"]

//Cắt với biến
// a= "Chao cac ban"
{{$split([variables.a]," ")}} // ["chao","cac","ban"]
{{$split("chao cac ban"," ")}} // ["chao","cac","ban"]

{{$split("chao|moi|nguoi","|" )}} // ["chao","moi","nguoi"]

//Cắt với biến
// a= "Chao cac ban"
{{$split([variables.a]," ")}} // ["chao","cac","ban"]

Trong trường hợp giá trị nhập vào của bạn là các giá trị cách nhau bởi dấu xuống dòng split

Khi đó chúng ta cần không thể sử dụng biểu thức như các ví dụ trên. Chúng ta cần tạo một biến và chèn giá trị xuống dòng bằng cách click enter bên trong ô điền giá trị của biến. Sau đó dùng biểu thức split với giá trị param là biểu thức lấy giá trị biến phantachvariables.phantach. Khi đó biểu thức để tách chuỗi thành mảng như sau

split

Khi đó giá trị trả về sẽ là một mảng chứa các giá trị được nhập vào

split

$increment(value, incrementBy)

Dùng để cộng giá trị

Ví dụ

js
{{$increment(22, 6)}} // 28

{{$increment(70, 7)}} // 77

//Cộng với biến
// a = 10
{{$increment([variables.a], 7)}} // 17
{{$increment(22, 6)}} // 28

{{$increment(70, 7)}} // 77

//Cộng với biến
// a = 10
{{$increment([variables.a], 7)}} // 17

$divide(value, incrementBy)

Được dùng để chia giá trị

Ví dụ

js
{{$divide(22, 10)}} // 2.2

{{$divide(9, 3)}} // 3

//Chia với biến
//a=12
{{$divide([variables.a], 3)}} // 4
{{$divide(22, 10)}} // 2.2

{{$divide(9, 3)}} // 3

//Chia với biến
//a=12
{{$divide([variables.a], 3)}} // 4

$subtract(value, incrementBy)

Được dùng để trừ giá trị

Ví dụ

js
{{$subtract(88, 8)}} // 80

{{$subtract(9, 8)}} // 1

//Trừ với biến
//a=12
{{$subtract([variables.a],8)}} // 4
{{$subtract(88, 8)}} // 80

{{$subtract(9, 8)}} // 1

//Trừ với biến
//a=12
{{$subtract([variables.a],8)}} // 4

$slice(value, start, end)

Hàm slice(value, start, end) thực hiện việc cắt (slice) một phần của chuỗi value và lấy các chuỗi trong khoảng start đến end

Ví dụ

js
{{$slice("Hello,world!", 1,6)}}  // Output: "ello,"
// Kí tự được đếm như sau: H1 e2 l3 l4 o5 ,6 w7 o8 r9 l10 d11 !12


{{$slice( "Hello, world!", 7,12)}}  // Output: "world,"
// Kí tự được đếm như sau: H1 e2 l3 l4 o5 ,6 w8 o9 r10 l11 d12 !13

//Cắt chuỗi với biến
//a="Hello,world!"
{{$slice([variables.a],7,12)}}  // Output: "world,"
{{$slice("Hello,world!", 1,6)}}  // Output: "ello,"
// Kí tự được đếm như sau: H1 e2 l3 l4 o5 ,6 w7 o8 r9 l10 d11 !12


{{$slice( "Hello, world!", 7,12)}}  // Output: "world,"
// Kí tự được đếm như sau: H1 e2 l3 l4 o5 ,6 w8 o9 r10 l11 d12 !13

//Cắt chuỗi với biến
//a="Hello,world!"
{{$slice([variables.a],7,12)}}  // Output: "world,"

$replace(value, search, replace)

Được sử dụng để thay thế tìm kiếm chuỗi từ giá trị thành chuỗi thay thế.

Ví dụ

js
{{$replace("OmniLogin rất", "rất", "dễ dùng")}} // OmniLogin dễ dùng

{{$replace("OmniLogin rất", "rất", "tuyệt vời")}} // OmniLogin tuyệt vời

//Cắt chuỗi với biến
//a="OmniLogin rất xịn"
{{$replace([variables.a], "xịn", "tuyệt vời")}} // OmniLogin rất tuyệt vời
{{$replace("OmniLogin rất", "rất", "dễ dùng")}} // OmniLogin dễ dùng

{{$replace("OmniLogin rất", "rất", "tuyệt vời")}} // OmniLogin tuyệt vời

//Cắt chuỗi với biến
//a="OmniLogin rất xịn"
{{$replace([variables.a], "xịn", "tuyệt vời")}} // OmniLogin rất tuyệt vời

$replaceAll(value, search, replace)

Được sử dụng để thay thế tất cả các chuỗi tìm kiếm phù hợp từ giá trị thành chuỗi thay thế.

Ví dụ

js
{{$replaceAll("O-m-nilogin", "-", "")}} // OmniLogin

{{$replaceAll("Omnilogin create virtual browser", " ", "")}} // Omnilogincreatevirtualbrowser

//Cắt chuỗi với biến
//a="OmniLogin rất xịn"
{{$replaceAll([variables.a], " ", "-")}} // OmniLogin-rất-tuyệt-vời
{{$replaceAll("O-m-nilogin", "-", "")}} // OmniLogin

{{$replaceAll("Omnilogin create virtual browser", " ", "")}} // Omnilogincreatevirtualbrowser

//Cắt chuỗi với biến
//a="OmniLogin rất xịn"
{{$replaceAll([variables.a], " ", "-")}} // OmniLogin-rất-tuyệt-vời

$toLowerCase(value)

Được sử dụng để viết thường một giá trị.

Ví dụ

js
{{$toLowerCase("HELLO WORLD!")}} // hello world!

{{$toLowerCase("hELLO wORLD!")}} // hello world!

//viết thường cụm từ với biến
//a="OmniLogin"
{{$toLowerCase([variables.a])}} // omnilogin
{{$toLowerCase("HELLO WORLD!")}} // hello world!

{{$toLowerCase("hELLO wORLD!")}} // hello world!

//viết thường cụm từ với biến
//a="OmniLogin"
{{$toLowerCase([variables.a])}} // omnilogin

$toUpperCase(value)

Được dùng để viết hoa chuỗi kí tự

Ví dụ

js
{{$toUpperCase("OmniLogin")}} // OMNILOGIN

{{$toUpperCase("oMNILOGIN")}} // OMNILOGIN

//viết thường cụm từ với biến
//a="OmniLogin"
{{$toUpperCase([variables.a])}} // OMNILOGIN
{{$toUpperCase("OmniLogin")}} // OMNILOGIN

{{$toUpperCase("oMNILOGIN")}} // OMNILOGIN

//viết thường cụm từ với biến
//a="OmniLogin"
{{$toUpperCase([variables.a])}} // OMNILOGIN

$modulo(num, divisor)

Trả về số dư hoặc số dư có dấu của phép chia.

Ví dụ

js
{{$modulo(22, 5)}} // 2

{{$modulo(-22, 5)}} // -2

{{$modulo(2, 2)}} // 0

{{$modulo(-2, 2)}} // -0

//Chia với biến
//a="12"
{{$modulo([variables.a], 5)}} // 2
{{$modulo(22, 5)}} // 2

{{$modulo(-22, 5)}} // -2

{{$modulo(2, 2)}} // 0

{{$modulo(-2, 2)}} // -0

//Chia với biến
//a="12"
{{$modulo([variables.a], 5)}} // 2

$filter(data, syntax)

Lọc/Truy vấn đối tượng javascript. Automation đang sử dụng thư viện JSONPath để thực hiện truy vấn.

  • data: Đối tượng Javascript để thực hiện truy vấn
  • syntax: JSONPath Syntax

Ví dụ

Truy vấn biến colors với những giá trị này:

json
[
	{ color: "red", value: "#f00" },
	{ color: "green", value: "#0f0" },
	{ color: "blue", value: "#00f" },
	{ color: "cyan", value: "#0ff" },
	{ color: "magenta", value: "#f0f" },
	{ color: "yellow", value: "#ff0" },
	{ color: "black", value: "#000" }
]
[
	{ color: "red", value: "#f00" },
	{ color: "green", value: "#0f0" },
	{ color: "blue", value: "#00f" },
	{ color: "cyan", value: "#0ff" },
	{ color: "magenta", value: "#f0f" },
	{ color: "yellow", value: "#ff0" },
	{ color: "black", value: "#000" }
]
js
{{$filter([variables.colors], "$..color")}}
// ['red', 'green', 'blue', 'cyan', 'magenta', 'yellow', 'black']

{{$filter([variables.colors], "$..value")}}
// ['#f00', '#0f0', '#00f', '#0ff', '#f0f', '#ff0', '#000']
{{$filter([variables.colors], "$..color")}}
// ['red', 'green', 'blue', 'cyan', 'magenta', 'yellow', 'black']

{{$filter([variables.colors], "$..value")}}
// ['#f00', '#0f0', '#00f', '#0ff', '#f0f', '#ff0', '#000']

Dùng Biểu thức JS

js
!!{{ $filter(variables.colors, "$..color")}}
// ['red', 'green', 'blue', 'cyan', 'magenta', 'yellow', 'black']

!!{{ $filter(variables.colors, "$..value")}}
// ['#f00', '#0f0', '#00f', '#0ff', '#f0f', '#ff0', '#000']
!!{{ $filter(variables.colors, "$..color")}}
// ['red', 'green', 'blue', 'cyan', 'magenta', 'yellow', 'black']

!!{{ $filter(variables.colors, "$..value")}}
// ['#f00', '#0f0', '#00f', '#0ff', '#f0f', '#ff0', '#000']

$stringify(value)

Chuyển đổi giá trị JavaScript thành chuỗi JSON.

js
obj =  { name: "John", age: 30, city: "New York" };
{{$stringify(obj)}} //  "{\"name\":\"John\",\"age\":30,\"city\":\"New York\"}"
obj =  { name: "John", age: 30, city: "New York" };
{{$stringify(obj)}} //  "{\"name\":\"John\",\"age\":30,\"city\":\"New York\"}"

$reverse(value)

Đảo ngược thứ tự phần tử của một mảng. Nếu không phải là mảng thì hàm trả về giá trị ban đầu của tham số value

js
arr = [1, 2, 3, 4, 5];
{{$reverse(arr)}} //  [5, 4, 3, 2, 1]

str = "Hello";
{{$reverse(str)}} // "Hello"
arr = [1, 2, 3, 4, 5];
{{$reverse(arr)}} //  [5, 4, 3, 2, 1]

str = "Hello";
{{$reverse(str)}} // "Hello"

$shuffle(value)

Trộn ngẫu nhiên thứ tự phần tử của một mảng. Nếu không phải là mảng thì hàm trả về giá trị ban đầu của tham số value

js
arr = [1, 2, 3, 4, 5];
{{$shuffle(arr) }}//  [5, 1, 2, 3, 4]

str = "Hello";
{{$shuffle(str)}} // "Hello"
arr = [1, 2, 3, 4, 5];
{{$shuffle(arr) }}//  [5, 1, 2, 3, 4]

str = "Hello";
{{$shuffle(str)}} // "Hello"

$includes(data, item)

Chuyển đổi giá trị JavaScript thành chuỗi JSON.

js
arr = [1, 2, 3, 4, 5]
{{$includes(arr, 3)}} //  true

arr = [1, 2, 3, 4, 5]
{{$includes(arr, 6)}} //  false
arr = [1, 2, 3, 4, 5]
{{$includes(arr, 3)}} //  true

arr = [1, 2, 3, 4, 5]
{{$includes(arr, 6)}} //  false

$trim(data)

Loại bỏ khoảng trắng trong một chuỗi ký tự. Nếu không phải chuỗi, hàm sẽ trả về giá trị ban đầu của data

js
{{$trim(" abc ")}} //  "abc"
{{$trim(123)}}//  123
{{$trim(" abc ")}} //  "abc"
{{$trim(123)}}//  123

$match(value, regex, index, flags)

Hàm này kiểm tra xem valueregex có phải là chuỗi không và regex có phải là một đối tượng RegExp hoặc chuỗi không. Nếu cả hai điều kiện đều đúng, hàm sử dụng phương thức match() để tìm kiếm các đối tượng khớp với regex trong value.

js
{{$match("abc",/a/)}} //  "a"
{{$match("abc",/ab/,0, 'i')}} //  "Ab"
{{$match("abc",/a/)}} //  "a"
{{$match("abc",/ab/,0, 'i')}} //  "Ab"

$join(data,sep=" ")

Nối các phần tử của mảng dữ liệu thành một chuỗi. Mặc định các chuỗi các nhau bởi dấu " "

js
a=["an","hai","manh"]
{{$join([variables.a])}} //  "an hai manh"
{{$join([variables.a],",")}} //  "an,hai,manh"
a=["an","hai","manh"]
{{$join([variables.a])}} //  "an hai manh"
{{$join([variables.a],",")}} //  "an,hai,manh"

$find(data, path, value)

Tìm ra các giá trị trùng khớp với dữ liệu đầu vào và trả về một giá trị object

js
const users = [
  { id: 1, name: 'Alice' },
  { id: 2, name: 'Bob' },
  { id: 3, name: 'Charlie' }
];

{{find([variables.users], 'name', 'Bob');}} //{ id: 2, name: 'Bob' }
const users = [
  { id: 1, name: 'Alice' },
  { id: 2, name: 'Bob' },
  { id: 3, name: 'Charlie' }
];

{{find([variables.users], 'name', 'Bob');}} //{ id: 2, name: 'Bob' }

$findAll(data, path, value)

Tìm ra tất cả giá trị ứng với dữ liệu đầu vào và trả về một mảng giá trị

js
const users = [
  { id: 1, name: 'Alice' },
  { id: 2, name: 'Bob' },
  { id: 4, name: 'Bob' },
  { id: 3, name: 'Charlie' }
];

{{findAll([variables.users], 'name', 'Bob');}} //[{ id: 2, name: 'Bob' },{ id: 4, name: 'Bob' }]

const users = [
  { id: 1, name: 'Alice' },
  { id: 2, name: 'Bob' },
  { id: 3, name: 'Charlie' }
];

{{findAll([variables.users], 'name', 'Bob');}} //[{ id: 2, name: 'Bob' }]
const users = [
  { id: 1, name: 'Alice' },
  { id: 2, name: 'Bob' },
  { id: 4, name: 'Bob' },
  { id: 3, name: 'Charlie' }
];

{{findAll([variables.users], 'name', 'Bob');}} //[{ id: 2, name: 'Bob' },{ id: 4, name: 'Bob' }]

const users = [
  { id: 1, name: 'Alice' },
  { id: 2, name: 'Bob' },
  { id: 3, name: 'Charlie' }
];

{{findAll([variables.users], 'name', 'Bob');}} //[{ id: 2, name: 'Bob' }]

Ví dụ

Phần này cung cấp thêm ví dụ về cách viết biểu thức và cấu trúc dữ liệu của dữ liệu nguồn.

Bảng

Bảng được lưu trữ dưới dạng một mảng các đối tượng với cột trong bảng là khóa đối tượng.

json
[
  { "color": "blue", "value": "#00f" },
  { "color": "cyan", "value": "#0ff" },
  { "color": "magenta", "value": "#f0f" },
  { "color": "yellow", "value": "#ff0" },
  { "color": "black", "value": "#000" }
]
[
  { "color": "blue", "value": "#00f" },
  { "color": "cyan", "value": "#0ff" },
  { "color": "magenta", "value": "#f0f" },
  { "color": "yellow", "value": "#ff0" },
  { "color": "black", "value": "#000" }
]
  • Lấy hàng đầu tiên của bảng
    biểu thức: {{ table.0 }}
    đầu ra: { "color": "blue", "value": "#00f" }

  • Lấy hàng thứ hai của bảng.
    biểu thức: {{ table.1 }}
    đầu ra: { "color": "cyan", "value": "#0ff" }

  • Lấy hàng cuối cùng của bảng.
    expression: {{ table.$last }}
    đầu ra: { "color": "black", "value": "#000" }

  • Lấy giá trị color của cột ở hàng đầu của bảng.
    biểu thức: {{ table.0.color }}
    đầu ra: blue

  • Lấy giá trị value của cột ở hàng đầu của bảng.
    biểu thức: {{ table.0.value }}
    đầu ra: #00f

Biến

Các biến được lưu trữ dưới dạng một đối tượng với tên biến là khóa đối tượng.

json
{
  "url": "https://google.com",
  "numbers": [100, 500, 300, 200, 400]
}
{
  "url": "https://google.com",
  "numbers": [100, 500, 300, 200, 400]
}
  • Lấy giá trị của biến url.
    biểu thức: {{ variables.url }}
    đầu ra: https://google.com

  • Lấy giá trị của biến numbers.
    biểu thức: {{ variables.numbers }}
    đầu ra: [100, 500, 300, 200, 400]

  • Lấy giá trị đầu tiên của biến numbers.
    biểu thức: {{ variables.numbers.0 }}
    đầu ra: 100

Biểu Thức JavaScript

Automation cũng hỗ trợ javascript trong biểu thức, nhưng để viết javascript, bạn phải thêm !! ký tự làm giá trị đầu tiên trên trường văn bản của một node.

Ví dụ: từ Số đó là: {{variables.number}} thành !! Số đó là: {{variables.number}}.

JS Expression

Và bạn có thể sử dụng hàm có sẵn giống như hàm javascript.

Ví dụ

  • Dùng hàm có sẵn
js
{{$getLength(table)}} //11

{{$randData("?d?d")}} // 99
{{$getLength(table)}} //11

{{$randData("?d?d")}} // 99
  • Lấy hàng cuối cùng của bảng
js
{{table[table.length - 1].columnName}}
{{table[table.length - 1].columnName}}
  • Lấy dấu thời gian hiện tại
js
{{Date.now()}} //1666237704022
{{Date.now()}} //1666237704022
  • Truy cập dữ liệu vòng lặp và chỉ mục
js
// lặp theo dữ liệu vòng lặp
{{loopData.loopId.data}}

// lặp theo chỉ mục
{{loopData.loopId.$index}}
// lặp theo dữ liệu vòng lặp
{{loopData.loopId.data}}

// lặp theo chỉ mục
{{loopData.loopId.$index}}