logologo
开始
手册
开发
插件
API
English
简体中文
开始
手册
开发
插件
API
English
简体中文
logologo
工作流
概述
快速开始

触发器

概述
数据表事件
定时任务
操作前事件
操作后事件
自定义操作事件
审批
Webhook

节点

概述

人工智能

大语言模型

流程控制

条件
循环
变量
并行分支
调用工作流
流程输出
延时
结束

计算

计算
日期计算
JSON 计算
JSON 变量映射

数据操作

新增数据
更新数据
查询数据
删除数据
SQL 操作

人工处理

人工处理
审批
抄送

扩展类型

HTTP 请求
JavaScript 脚本
通知
邮件发送
响应
响应消息
变量
执行记录
版本管理
高级选项

扩展开发

概述
扩展触发器类型
扩展节点类型
API 参考
Previous Page响应消息
Next Page执行记录

#使用变量

#核心概念

正如程序语言中的变量,在工作流中变量是用于串接和组织流程的重要工具。

在工作流触发后执行每个节点时,一些配置项可以选择使用变量,变量的来源即该节点的上游节点数据,包括以下几类:

  • 触发上下文数据:操作触发、数据表触发等情况下,单行数据对象可以作为变量被所有节点使用,具体依据各个触发器实现各有不同。
  • 上游节点数据:流程进行到任意节点时,之前已完成的节点的结果数据。
  • 局域变量:当节点处在一些特殊分支结构内时,可以使用对应分支内特有的局域变量,例如循环结构中可以使用每轮循环的数据对象。
  • 系统变量:一些内置的系统参数,如当前时间等。

我们在 快速开始 中已经多次使用了变量的功能,例如在运算节点中,我们可以使用变量来引用触发上下文数据,来进行计算:

运算节点使用函数及变量

在更新节点中,使用触发上下文数据作为筛选条件的变量,并引用运算节点的结果作为更新数据的字段值变量:

更新数据节点变量

#数据结构

变量的内部是一个 JSON 结构,通常可以按 JSON 的路径使用数据的特定部分。由于很多变量基于 NocoBase 的数据表结构,关系数据将会作为对象的属性按层级组成类似树的结构,例如我们可以选择查询到数据的关系数据的某个字段的值。另外当关系数据是对多的结构时,变量可能会是一个数组。

选择变量在大多数时候会需要选到最后一层值属性,通常是简单数据类型,如数字、字符串等。但当变量层级中有数组时,末级的属性也会被映射成一个数组,只有对应的节点支持数组的情况下,才能正确处理数组数据。例如在运算节点中,一些计算引擎有专门处理数组的函数,又比如在循环节点中,循环对象也可以直接选择一个数组。

举个例子,当一个查询节点查询了多条数据时,节点结果将会是一个包含多行同构数据的数组:

[
  {
    "id": 1,
    "title": "标题1"
  },
  {
    "id": 2,
    "title": "标题2"
  }
]

但是在后续节点中将其作为变量使用时,如果选择的变量是 节点数据/查询节点/标题 的形式,将会得到一个被映射后是对应字段值的数组:

["标题1", "标题2"]

如果是多维数组(如多对多关系字段),将会得到一个对应字段被拍平后的一维数组。

#系统内置变量

#系统时间

根据执行到的节点,获取执行当时的系统时间,该时间的时区是服务器设定的时区。

#日期范围参数

在查询、更新和删除节点中,配置日期字段筛选条件时可以使用。仅支持“等于”比较时使用,日期范围的起止时间点均基于服务器设定的时区。

日期范围参数