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 工程博客文章。