Skip to content

getWorkflowStaticData(type)#

该方法用于访问工作流的静态数据。

实验性功能

  • 测试工作流时静态数据不可用。工作流必须处于激活状态并通过触发器或webhook调用才能保存静态数据。
  • 在高频工作流执行下,此功能可能表现不稳定。

您可以直接在工作流中保存数据。这些数据应当保持较小规模。

例如:您可以保存从RSS订阅或数据库处理的最后一项的时间戳。该方法始终返回一个对象,您可以对该对象的属性进行读取、删除或设置操作。当工作流执行成功时,n8n会自动检查数据是否发生变化,并在必要时保存。

静态数据分为两种类型:全局数据和节点数据。全局静态数据在整个工作流中共享,工作流中的每个节点都可以访问它。节点静态数据则是特定于节点的,只有设置该数据的节点才能再次获取它。

全局数据示例:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
// 获取全局工作流静态数据
const workflowStaticData = $getWorkflowStaticData('global');

// 访问其数据
const lastExecution = workflowStaticData.lastExecution;

// 更新其数据
workflowStaticData.lastExecution = new Date().getTime();

// 删除数据
delete workflowStaticData.lastExecution;
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
# 获取全局工作流静态数据
workflowStaticData = _getWorkflowStaticData('global')

# 访问其数据
lastExecution = workflowStaticData.lastExecution

# 更新其数据
workflowStaticData.lastExecution = new Date().getTime()

# 删除数据
delete workflowStaticData.lastExecution

节点数据示例:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
// 获取节点的静态数据
const nodeStaticData = $getWorkflowStaticData('node');

// 访问其数据
const lastExecution = nodeStaticData.lastExecution;

// 更新其数据
nodeStaticData.lastExecution = new Date().getTime();

// 删除数据
delete nodeStaticData.lastExecution;
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
# 获取节点的静态数据
nodeStaticData = _getWorkflowStaticData('node')

# 访问其数据
lastExecution = nodeStaticData.lastExecution

# 更新其数据
nodeStaticData.lastExecution = new Date().getTime()

# 删除数据
delete nodeStaticData.lastExecution

模板与示例#