OnWindowTransaction

在成功提交一条或多条记录变更后,执行脚本,并将一个 JSON 对象作为脚本参数传递给它。JSON 对象包含每个已提交记录操作的文件名、基础表名、记录 ID、操作类型以及上下文字段的内容。

激活此脚本触发器的操作是:

  • 记录在创建、修改或删除后提交

  • 未完成的事务处理已成功提交

何时运行脚本 

处理事件之后。

可在何种模式下使用触发器 

浏览和查找模式。

结果 

兼容性 

产品 是否支持

FileMaker Pro

FileMaker Go

FileMaker WebDirect

FileMaker Server

FileMaker Cloud

FileMaker Data API

自定义 Web 发布

原始版本 

20.1

说明 

任何提交一条或多条记录的操作都会触发此脚本触发器,无论该操作是否处于打开的事务处理中(请参阅打开事务处理脚本步骤)。此触发器会向脚本传递一个包含提交信息相关内容的 JSON 对象作为脚本参数。您可以将此触发器与一个脚本配合使用,该脚本用于记录每一条记录的创建、修改和删除情况,例如,记录在变更审计日志中,包括谁进行了操作以及操作时间。

在触发脚本中,使用 Get (脚本参数)函数来检索该 JSON 对象。该 JSON 对象具有以下结构:

复制
{
  "文件名" : {
    "基础表名称" : [
      [ "操作", 记录 ID, 字段内容 ],
      ...
    ]
  }
}
  • “文件名”是不含文件扩展名的数据库文件名。

  • “基础表名称”是受影响的记录的基础表名称。

  • “操作”包括“新建”“修改”“删除”

  • “记录 ID”是记录的内部 ID 号。

  • “字段内容”是记录的上下文字段的内容。您可以使用此字段向脚本传递其他信息(例如,当前用户、时间戳和字段值)。如果字段包含有效的 JSON,则将其作为 JSON 值而不是文本字符串。如果表中不存在匹配的上下文字段,则使用空字符串。

当提交操作影响到多个基础表中的记录时,每个表在“字段名称” 键下都有其专属的数组。 当其他文件中的关联表记录受到影响时,每个文件都有其专属的顶层键。

在配置此触发器时,可在“字段名称”选项中指定上下文字段。 如果“字段名称”选项留空,触发器将在每个基础表中查找名为 OnWindowTransaction 的字段。如果在某个表中未找到匹配的字段,则来自该表的记录的“字段内容”将显示为空字符串。

注释 

  • 此触发器是按文件配置的。如果另一个文件中的关联表记录被修改,即使该文件未配置 OnWindowTransaction 脚本触发器,这些记录条目仍会被包含在 JSON 参数中。

  • 对于已删除的记录,上下文字段数据会在记录被删除之前进行捕获。 对于新增和修改过的记录,在提交记录后捕获上下文字段数据。

  • 还原的记录或事务处理不会激活此触发器。请参阅还原记录/请求还原事务处理脚本步骤。

  • 通过 FileMaker 数据 API 或 OData API 直接访问数据库不会触发此触发器。但通过这些 API 运行的脚本可以激活它。

  • 有关与 OnWindowTransaction 配合使用的审计日志记录脚本示例,请参阅这篇 Claris 工程博客文章