时间轴介绍
时间轴是飞书人事系统提供的重要特性,它保存了某个对象一条数据的过去、当下、未来的所有信息。每次记录变动都会被识别,每次变动的时候有一个生效的时间点,并且都会生成一个单独的版本来记录这次变动。
以部门为例:
- 2024-1-1 创建了部门A,部门负责人为张三,ID为123
- 2024-1-15 将部门A部门负责人修改为李四,名称A改名为B,;
- 2024-2-1 操作了部门停用; 此时该部门会生成三条时间轴记录,如下:
| 部门ID | 版本ID | 部门名称 | 版本生效时间 | 版本失效时间 | 部门负责人 | 部门启用状态 | 操作 |
|---|---|---|---|---|---|---|---|
| 123 | 100 | A | 2024-1-1 | 2024-1-15 | 张三 | 启用 | 创建了部门A,部门负责人为张三,ID为1 |
| 123 | 200 | ==B== | 2024-1-15 | 2024-2-1 | ==李四== | 启用 | 修改了部门负责人为李四 |
| 123 | 300 | B | 2024-2-1 | 9999-12-31 | 李四 | ==停用== | 部门A改名为部门B,并操作了部门停用 |
- 如果又对这条记录操作了2025-1-1 启用,则会产生第四条时间轴版本记录400,如下:
| 部门ID | 版本ID | 部门名称 | 版本生效时间 | 版本失效时间 | 部门负责人 | 部门启用状态 | 操作 |
|---|---|---|---|---|---|---|---|
| 123 | 100 | A | 2024-1-1 | 2024-1-15 | 张三 | 启用 | 创建了部门A,部门负责人为张三,ID为1 |
| 123 | 200 | ==B== | 2024-1-15 | 2024-2-1 | ==李四== | 启用 | 修改了部门负责人为李四 |
| 123 | 300 | B | 2024-2-1 | 2025-1-1 | 李四 | ==停用== | 部门A改名为部门B,并操作了部门停用 |
| 123 | 400 | B | 2025-1-1 | 9999-12-31 | 李四 | ==启用== | 操作了2025-1-1 启用 |
常见问题
Q:时间轴对象有哪些常见字段?
- 对象ID:对象唯一标识ID,例如部门ID、任职记录ID等
- 时间轴版本ID:每个时间轴版本的唯一标识ID
- 版本生效时间:每个时间轴版本生效的时间点
- 版本过期时间:每个时间轴版本过期的时间点
Q:哪些对象支持时间轴功能?
目前支持时间轴的对象有:部门、地点、公司、成本中心、自定义组织、职务、序列、岗位、任职记录、外派记录
Q:生效日期、失效日期最小单位是什么?
时间轴对象生效、失效日期最小单位到日
Q:对象停用和删除是一个意思么?如何判断对象停用?
对象删除:被删除对象所有时间轴版本都会被删除,且相关查询接口都无法查询到该记录。 对象停用:指的对象某个对象停用,但是接口可查询到该记录(注意:对象停用可能不代表该对象永久停用,可能未来会出现一个版本再将对象启用) 可以通过查询对象的「启用状态」字段,判断该部门是否停用。
Q:时间轴对象支持哪些操作类型?
- 对象创建:一条时间轴对象从无到有的过程,比如创建一个新的部门,指定它的生效时间后,它就存在了。
- 对象删除:Delete 全部版本,相当于删除了整个记录的全部历史
- 版本新建:创建一条新的时间轴版本记录
- 版本更正:修改某条时间轴版本记录
- 版本撤销:删除某条时间轴版本记录
注意:大部分开放平台API为了简化时间轴概念,提供了更易用的更新接口,对外可以屏蔽类似版本操作细节。
Q:我没有时间轴需求,只想知道当下对象是什么内容,并实时同步到系统,如何操作?
大部分对象提供了「当前对象变更」的事件接口,可以通过订阅该接口事件+查询接口同步到系统中。
例如:可以通过订阅【事件】创建部门【事件】更新部门【事件】删除部门 接口,配合 批量查询部门获取到所有当前部门最新变更内容。
另外,「根据时间窗口查询变更对象」的查询接口也在建设中,有消息会进一步通知。
Q:什么时候会触发变更?
- 当前版本特定的字段的修改会触发变更(详情请见文档 时间轴对象触发变更字段)
- 未来生效的版本到生效时间才会触发变更
- 历史版本的修改,只有在【当前使用版本生效时间,当前时间】这段时间之间插入一个历史版本,并且与当前使用版本字段信息不一致才会触发变更
