# 历史

> 已记录运行的浏览界面：Process 树的历史根节点、列表和打开的运行记录、每一部分涵盖什么、需要哪些权限，以及运行时停止时什么会被拒绝。

每一次运行都保存在它自己的、自成一体的文件里。**历史**是 Process 页面工作区栏的第三个根节点，排在模型和模板后面：它是一个叶节点，因为每一份已记录的运行记录都是某个流程的一次执行，而这个浏览界面只是同一个工作区的一个界面。选中它，浏览界面就在内容面板里打开；地址 `/histories` 是指向同一节点的深层链接，因此书签照样能打开这些运行记录。运行档案直接从运行记录文件里读出，与当前的配置无关：删除产生这次运行的模型、单元或流程，都不会动到这次运行记录。

面板左边是列表和它的筛选条件，右边是选中运行记录的档案，两边各自滚动。运行记录一旦打开，面板标题栏上的按钮就把整个内容面板交给这份档案，再按同一个按钮又把列表调回来；删除打开的运行记录或清除选择，列表也会自己回来。工程锁定从不让这个浏览界面失效：一份已记录的运行记录是证据，不是配置，因此在某个单元正在记录的时候，浏览、导出和出具报告照常可用。

## 权限 {#permissions}

| 权限 | 打开什么 |
| --- | --- |
| 查看历史 | 历史根节点，以及在 Process 页面里除此之外一无所有的身份所看到的那个页面。读取一份档案的每一部分、筛选列表，还有报告卷宗里的打开 PDF，它交出的是档案本身早已指名的那份文档。 |
| 管理历史 | 删除一次运行记录，单条或整批，以及撰写、修改和删除它的备注与标注。 |
| 导出/导入历史 | 导出 CSV、导出 XLSX、导出 GLAB、生成 PDF、报告卷宗里的生成报告，以及导入。 |
| 运行流程（配合查看历史） | 新建标签、生成标签、打印和重新打印标签、重发报告、重新发送数据库行：凡是记下一件新的产物、把一份文档送进队列或把一行发给数据库的，都归它。 |

时间戳在内部按 UTC 记录，在屏幕上按工作站本地时间显示，格式在[设置](settings-localization)里配置；每一份导出文件都会声明它的时间戳是按哪个基准读的。

## 细节写在哪里 {#where-the-detail-lives}

| 页面 | 涵盖 |
| --- | --- |
| [运行记录列表](histories-list) | 归档的翻页、筛选和刷新，一行的构成，以及删除一次运行记录或一整批。 |
| [运行档案](histories-record) | 打开的运行记录显示什么：它上方的那些动作、带开始时记下的元数据和两个当事人的表头、联锁提示、数据记录图表、已判定的判据，以及事件条目的发生记录。 |
| [备注与标注](histories-notes) | 记进运行记录文件的自由附注和图表标记。 |
| [标签与报告](histories-documents) | 这次运行的标签产物和报告登记、它们的投递尝试，以及新建或重出一份的那些动作。 |
| [导出一次运行记录](histories-export) | CSV、XLSX、GLAB 和 PDF，文件如何命名，以及每一种到底包含什么。 |
| [导入运行记录](histories-import) | 把在另一套安装上记录的 `.glab` 文件收进这个归档。 |

## 写入与运行时停止 {#writes-and-the-stopped-runtime}

删除、写备注、加标注、发出或打印标签、重发报告和导入，都会改动工作站的记录，因此运行时停止期间它们每一个都会被拒绝，理由是“运行时已停止”，它们的控件也会变灰并显示“工作站处于只读状态。”读取、筛选、导出和生成 PDF 照常可用：一次导出是对运行记录文件的读取，从来不是对它的写入。
