Automa工作流表达式

在使用 Automa 创建工作流时,可能经常需要将动态数据插入到模块中。为此,Automa 提供了强大的表达式系统,基于 Mustache 模板并扩展了多个数据源和函数。通过这些表达式,你可以轻松地从变量、表格、循环数据等来源提取数据,并将其动态注入到你的模块中。

动态数据来源

Automa 支持从多个数据源中提取数据来设置动态值:

  • table:从表中获取数据,例如 {{table.0.color}} 来获取第一行的 color 值。
  • variables:从变量中提取数据,例如 {{variables.socials}}
  • loopData:获取循环模块的当前迭代数据,使用 loopData.<loopId>
  • prevBlockData:获取上一个模块的输出数据。
  • globalData:访问工作流的全局数据。
  • googleSheets:从 Google 表格中获取数据,使用 googleSheets.<referenceKey>
  • activeTabUrl:获取当前浏览器标签页的 URL。
  • workflow:访问由执行的工作流模块中产生的数据,使用 workflow.<executeId>

基础表达式语法

表达式的基础形式是 {{ keyword }},其中 keyword 可以是上文提到的数据源。Automa 会通过这种格式区分静态数据和动态数据。

示例

假设你有一个变量 socials,其值为:

    
json
[
  { "name": "GitHub", "url": "https://github.com/AutomaApp" },
  { "name": "Twitter", "url": "https://twitter.com/AutomaApp" },
  { "name": "Discord", "url": "https://discord.gg/C6khwwTE84" }
]

要在 HTTP 请求的正文中发送这个变量的数据,可以使用以下表达式:

    
html
{{variables.socials}}

如果你想获取数组中的第一个元素并访问 url 属性,可以使用:

    
html
{{variables.socials.0.url}}

内置函数

Automa 还支持一系列内置函数,帮助你执行常见的计算和操作。例如:

  • $date(date, dateFormat?):获取或格式化日期,如 {{$date('DD-MM-YYYY')}} 会返回当前日期的格式化版本。
  • $randint(min?, max?):生成一个随机数,如 {{$randint(0, 100)}} 会生成一个 0 到 100 之间的随机数。
  • $getLength(str):获取字符串或数组的长度。
  • $increment(value, incrementBy):执行加法操作。
  • $replace(value, search, replace):在字符串中替换值。

函数示例

    
js
{{$increment(10, 2)}}  // 输出 12
{{$date('DD-MM-YYYY')}}  // 输出当前日期
{{$randData('?l?u?d')}}  // 生成随机字符,例如 "A2b"

访问表达式内部的数据

要访问表达式内部的数据,需要使用方括号将表达式括起来。例如,使用 $increment 函数增加变量值:

    
html
{{$increment([variables.counter], 1)}}

复杂表达式与 JavaScript

在基于 Chromium 的浏览器中,Automa 还支持在表达式中使用 JavaScript。例如,获取表的最后一行数据可以写为:

    
js
{{table[table.length - 1].columnName}}

也可以直接获取当前的时间戳:

    
js
{{Date.now()}}

通过使用 Automa 的动态表达式功能,能够为模块动态设置值,结合 Mustache 模板和内置的函数,轻松管理复杂的工作流逻辑。无论是简单的数据替换,还是复杂的运算与数据查询,Automa 提供了丰富的工具,让你在构建自动化流程时更加高效。

阅读全文
AI工具教程
免费领取AI学习资料 进AI副业交流群
礼物
AI工具教程
免费领取AI学习资料 进AI副业交流群