Skip to content
赞助合作

本站右侧赞助位长期招租

联系我投放

Lifecycle 生命周期

Lifecycle Map 定义了业务对象从创建到归档所经历的状态流转路径。版本控制(Versioning)则记录了对象在各状态下的历次修改,两者配合实现了完整的配置管理能力。


Lifecycle Map 基本概念

一个 Lifecycle Map 由以下元素组成:

元素说明
State(状态)业务阶段节点,一个 Item 在任意时刻只能处于一个状态
Transition(转换)两个状态之间的连接线,表示允许的流转方向
Start State(起始状态)新建 Item 时自动进入的状态
Released State(发布状态)标记为 Released 的状态,Item 到达该状态后被标记为已发布

创建 Lifecycle Map

  1. 导航到 Administration → Life Cycle Maps
  2. 创建新 Map,填写 Name
  3. 在画布区域右键添加 State 节点
  4. 右键某个 State → Add Transition,拖拽到目标 State 完成连接
  5. 如果连线交叉影响可读性,右键 Transition → Add Break 添加拐点

State 配置项

配置项说明
Name状态名称
Label显示标签,支持多语言
Image状态图标
Released勾选后,该状态为发布状态。处于此状态的 Item 被编辑时会触发版本升级(如果 ItemType 开启了版本控制)
Not Lockable勾选后,处于该状态的 Item 不可编辑(只读状态)
State Permission覆盖 ItemType 的默认权限,在该状态下应用指定的权限包
Workflow状态激活时是否自动启动指定的 Workflow
History Template覆盖 ItemType 的历史记录模板
Configure E-Mail状态激活时自动发送通知邮件
Item Behavior该状态下关系的版本行为:Fixed / Float(优先于 RelationshipType 的 Behavior 设置)

Transition 配置项

配置项说明
Role有权执行该流转的 Identity
Server Methods流转前后可触发的 Server Method(OnBefore / OnAfter)
Get Comment勾选后,用户执行流转时弹出对话框要求输入备注
Configure E-Mail流转发生时自动发送通知邮件

绑定 Lifecycle Map 到 ItemType

  1. 打开 ItemType 编辑 → Life Cycles 标签页
  2. 点击 Add,选择目标 Lifecycle Map
  3. 如果 ItemType 配置了 Classification,不同分类可以绑定不同的 Lifecycle Map

Lifecycle 状态下拉仅显示通过 Transition 连接的下一状态

用户不能跳过中间状态直接到达后续状态,所有流转必须遵循 Map 中定义的路径。


状态权限(State Permission)

每个 Lifecycle 状态可以配置独立的权限包,实现在不同业务阶段自动切换访问控制策略:

Lifecycle: Design Request
  ├── Draft        → Permission: "Design Request" (Owner 可编辑)
  ├── In Review    → Permission: "Review Request" (Owner 只读,Engineering 可编辑)
  └── Released     → Permission: "Released Request" (所有人只读)

如果某个状态没有配置 State Permission,则沿用前一个状态的权限。State Permission 必须在 ItemType 的 Permissions 标签页中也被列为可选权限才能生效。


版本控制

版本维度

属性说明
generation系统自动管理的整数代次,每次 Edit → Done 后自动递增
major_rev主修订版本号,从 Revision 序列中读取(如 A → B → C)
minor_rev次修订版本号,保留字段,供自定义开发使用
config_id跨版本共享的配置 ID,所有代次的同一 Item 都保持一致,用于追溯历史
is_current是否为最新代次
is_released是否处于发布状态

开启版本控制

在 ItemType 上设置:

配置项说明
Versionable勾选以启用版本控制
DisciplineAutomatic(每次编辑自动升版)或 Manual(用户手动触发升版)
Revisions关联的 Revision 序列,决定 major_rev 的值

Revision 序列

通过 Administration → Revisions 创建,定义版本号的取值序列。序列中的值用空格分隔,按顺序读取:

A B C D E F G H J K L M N P Q R S T U V W X Y Z

跳过易混淆字母

通常跳过 I 和 O,避免与数字 1 和 0 混淆。如果序列用尽,系统会报错提示 revision sequence exceeded,需要提前评估业务量并预留足够的序列长度。

版本升级触发规则

当 Item 处于标记为 Released 的状态时:

  1. 执行 Edit → Done 后,major_rev 递增(如从 A 升到 B)
  2. Lifecycle 自动重置回 Start State
  3. generation 递增

关系的版本行为

当源 Item 和关联 Item 都有版本控制时,需要决定关系指向哪个版本。这个行为可以在三个层级配置,优先级从高到低为:

  1. Lifecycle State 的 Item Behavior(最高优先级)
  2. RelationshipType 的 Behavior 字段
  3. Relationship Item 上的 behavior 属性(实例级)

行为类型

行为说明
Fixed关系固定指向添加时的那个版本,关联 Item 升版后,源 Item 仍指向旧版本
Float关系始终指向关联 Item 的最新版本
Hard Fixed不可变的 Fixed,即使 Lifecycle 状态切换也不会改变
Hard Float不可变的 Float,即使 Lifecycle 状态切换也不会改变

典型配置策略

Lifecycle States:
  ├── Draft        → Float(开发阶段,始终关联最新文档)
  ├── In Review    → Fixed(评审阶段,锁定当前版本)
  └── Released     → Fixed(发布后,保持已验证的版本)

查看版本历史

打开任意 Item → NavigateVersions,可以查看该 Item 的所有历史版本。右键某个版本标签 → Dock Tab,可以将新旧版本并排对比显示。

本站内容仅供学习与参考

本站总访问量