了解何时使用记录历史小部件,以及如何根据您的需求进行配置。
谁可以使用此功能
订阅了受监管套餐的用户。
记录历史小部件(RHW)显示与特定表记录相关的已记录数据。这些数据可能包括:
- 表记录的变更
- 来自“完成记录”的数据
- 电子签名(如果该记录包含已签名数据)

要了解何时应使用记录历史小部件,必须先掌握 Tulip 中的GxP 数据采集机制。
当您需要捕获特定生产项目的历史记录时,可使用该小部件,例如
- 记录簿
- 合规性与可追溯性
- 数字历史记录
“记录历史”小部件是如何工作的?
“记录历史”小部件通过收集并显示来自以下来源的数据,为特定记录 ID 提供可视化信息:
- 应用程序
- 表 API
- 表单 UI(管理界面)
- Automation

上图展示了来自不同来源的更新示例。
记录历史小部件显示了与某个记录 ID 相关的以下数据。
- 通过应用程序、表格用户界面、表格API或自动化对该记录字段进行的任何更改
- 对于应用程序,在完成时由记录占位符指向的任何完成数据
- 任何将该记录作为签名数据包含在内的签名
该小部件以可滚动视图显示记录的按时间顺序排列的历史记录,并在刷新时更新(例如,步骤变更)。此视图允许用户查看该记录自创建以来发生的情况或与其相关的情况。
例如,如果通过应用程序、自动化或表 UI 更新了某条记录,小部件会按顺序记录这些更改。

上图的工作流图示说明了记录历史小部件如何捕获来自不同来源的记录信息。每个步骤都会保存原始变量的新迭代版本。记录历史小部件详细记录了在应用程序运行期间进行的每次更新。
数据在记录历史小部件中如何显示?
部分
从各来源收集的数据通过“部分”和“条目”进行可视化展示。所有数据均按时间顺序显示,而“部分”则将同一会话中的数据进行分组。会话的定义依据数据源的不同而有所差异:
- 应用:用户 + 应用(版本) + 站点
- API:API(令牌)
- 表单界面:用户 + 管理界面
- 自动化:自动化名称
当新条目与前一条目不属于同一会话时,系统会显示一个新章节。例如:
- 运行应用的用户已发生变更
- 某条记录先通过应用更新,随后又通过管理界面更新

条目
每个部分内包含一个或多个条目。条目可包含关于记录变更、签名或完成记录的信息。所有条目均附有时间戳。
与记录变更相关的条目
与记录变更相关的条目会显示该记录的完整历史记录,包括各项修改。其中包括:
- 记录的创建
- 记录的更新
- 记录的删除
- 所有已删除的记录
- 步骤/应用变更(若该步骤中收集了数据,则会生成这些条目)

上例展示了一个用户(John Smith)+ 应用(Assemble History Tester)+ 站点(未命名)的章节标题,以及 2 条记录。第一条显示应用步骤,第二条显示已更新的记录及其新旧值。
可选地,已取消和自动注销的应用完成状态可显示为灰色,并带有“已取消”标记,以区别于正常完成状态。请联系您的客户成功经理(CSM)或 Tulip 管理员以启用此界面行为。

收集不同类型的数据
完成记录
完成记录捕获应用程序的流程数据,例如变量的值、加载的记录占位符,以及用户、站点等元数据。每当应用程序完成、被取消,或执行“存储所有应用数据”触发器操作时,都会为该应用程序创建一条新的完成记录。收集的数据在记录历史小部件中标记为“已记录的流程数据”。

将完成数据纳入记录历史小部件的要求:
- 在创建完成记录时,该记录需被加载到任意“表记录占位符”中
- 该“表格记录占位符”已设置为**“保存以供分析”**
记录历史中显示的数据:
- 变量值:所有设置为“保存以供分析”的变量均包含在内。
- 记录ID:任何已加载到设置为“保存以供分析”的记录占位符中的记录的ID。这不包括当前显示记录历史记录的该记录本身。
对表记录数据的修改
可以通过以下三种途径修改表记录数据:
- 在应用程序中,通过记录占位符(从Y站运行了X应用程序)
- 表格用户界面(管理界面)
- 表格API
- 自动化
“记录历史”小部件会显示有关表格记录变更的信息,例如:
- 进行了哪些更改?
- 谁进行了更新?
- 更新来自哪个渠道?(应用、表格界面、表格 API)
- 是在哪个界面中进行的更新?
- 何时发生的变更?
通过记录占位符对记录进行的更改
“John Smith 在 Y 站运行了 App X”对小部件中单条记录显示所做的所有更改,都会显示在一个包含表格记录“更改前”和“更改后”快照的区域中。无论您使用哪个应用,这些更改都会显示出来。
示例
通过表格 UI(管理界面)对记录进行的修改
“通过管理界面更新了记录”通过表格管理界面进行的更改会显示在一个新部分中。每项更改都会作为单独的条目显示,包括:
- 登录用户
- 更改类型
- 旧值与新值
- 时间戳
示例

通过表 API 对记录进行的更改
*“通过 API 更新的记录”*API 请求会将修改指定表中记录的结果显示在新的部分中,包括:
- API 令牌
- 变更类型
- 旧值与新值
- 时间戳
示例

通过自动化对记录进行的更改
*“自动化 X 更新了记录”*可通过自动化对表记录进行修改。这些内容显示在新的部分中,包括:
- 自动化名称
- 更改类型
- 旧值与新值
- 时间戳
示例

配置
将记录历史小部件添加到应用步骤中
- 在应用编辑器中,点击工具栏中的**“嵌入”**。
- 选择**“记录历史**”。

配置选项
在“上下文窗格”中配置“记录历史”小部件。

关联占位符
选择用于加载记录和记录历史的记录占位符。
启用打印
用于从Tulip Player打印记录历史的选项。启用后,小部件的标题栏中将显示一个**“打印”**按钮。
默认排序
选择按以下方式对小部件中的数据进行排序:
- 从最新到最旧
- 从最旧到最新
筛选
您可以通过动态方式(通过变量、表记录或应用信息)或通过由筛选器类型决定的静态值来筛选记录历史。可用的筛选器类型包括:
- 日期时间
- 应用名称
- 步骤名称
- 表字段名称(来自记录占位符所关联的表中的字段)
- 用户(使用该应用的用户)
Tulip 建议至少使用以下筛选条件,因为它们能将数据切分成更易于用户理解的视图:
- 日期时间
- 应用名称
- 步骤名称
在记录更新中隐藏“旧”值
启用此功能后,用户只能看到记录的更新内容及其“新”值。
隐藏流程数据
启用后,来自应用程序的已保存变量数据将在小部件中隐藏。小部件将显示表格更新、签名数据、应用名称、步骤名称和时间戳。这有助于获得高层次视图(不含流程数据),例如纯审核类应用。
仅显示已签署的完成记录
启用后,用户只能查看电子签名记录。
常见问题
如何避免生成日志类细粒度数据?
当表格记录被加载到输入字段中,且用户在该输入字段中进行操作时,同一条记录内会生成非常细粒度的日志类数据。这可能会导致记录历史中出现大量“条目”,并可能使审核流程变得更加困难。将表记录用作输入字段的数据源并非最佳实践,特别是对于 GxP 客户而言。作为替代方案,可将输入字段与一个变量关联,该变量随后将通过“保存所有应用数据”步骤保存到完成记录中。
使用静态值时,为何需要谨慎对待“表字段名称过滤器”?
记录历史小部件将使用字段的当前名称来过滤数据。如果用户更改了表格字段名称,而过滤器仍使用旧的字段名称,这可能会导致数据审核出现不一致。作为替代方案,可以将表格记录用作过滤器。
如何解决“步骤 X 中缺少完成数据”的问题?
当用户在处理表记录时未每次完成应用操作,即用户在单次完成操作中处理多条记录,或者表记录占位符的**“不保存用于分析**”选项被勾选时,可能会出现此问题。


