跳转至

变更集#

🔒 ChangeSet.Show

概述#

变更集是一个对象,用于将变更捆绑到版本控制对象。请记住,变更集仅指对象的版本控制数据,也就是说,全局数据不是变更集的一部分。

在当前的凯睿德制造软件版本中,以下对象是更改受控对象:

变更集审批#

单个变更集项目可以具有单独的审批角色,这些角色表明变更集项目必须由属于该角色的人员批准。只有在所有单独的变更集项目都获得批准后,变更集审批流程才能开始。变更集可以具有审批角色或审批工作流,但不能同时具有这两个角色。

指定变更集的所有变更集项目只有在变更集作为一个整体获得批准时才会变为活动状态。变更集可通过三种基本方式获得批准:

  1. 未定义变更集审批角色或审批工作流:在批准所有变更集项目后立即批准变更集(如果已定义单个变更集项目审批角色)。
  2. 定义变更集审批角色:变更集在所有变更集项目获得批准(如果已定义单个变更集项目审批角色)且变更集本身由属于变更集审批角色的人员批准后获得批准。
  3. 定义变更集审批工作流:变更集在所有变更集项目获得批准(如果已定义单个变更集项目审批角色)且变更集本身在其最终工作流状态下获得批准后获得批准。在变更集审批达到最终工作流状态之前,必须在工作流的每个中间状态下进行审批。在工作流的每个状态中,*变更集只能由属于工作流状态(如果已定义)中定义的角色的人员批准。

隐式变更集#

可以为更改受控实体自动创建隐式变更集。为了使更改受控实体具有隐式变更集,必须更改其元数据。

要为实体启用隐式变更集,必须执行以下操作:

  1. 转至“管理”页面组中的“实体类型”。
  2. 打开所需实体。
  3. 按“编辑”进入编辑模式。
  4. 进行以下更改:

  5. 选中“允许自动变更集”选项。

  6. 提供将用于生成变更集名称的名称生成器。
  7. 选择性地为变更集或审批工作流指定审批角色。

    Info

    如果没有定义审批角色或审批工作流,则系统会自动批准变更集。

  8. 按“保存”以使更改生效。

状态模型#

变更集本身具有系统定义的状态模型,如下图所示。

graph TD
    Start -->|Create Change Set| A1
    A1[Created] -->|Request Change Set Approval| A2[In Approval]
    A2 -->|Rework Change Set| A1
    A2 -->|Approve Change Set| L1[Approved]
    A2 -->|Reject Change Set| C1[Rejected]

classDef mermaid_title color:#000, fill:#fafafa, stroke:#fafafa, stroke-width:0x, font-size:100%, font-weight:200;
classDef mermaid_start color:#000, fill:#fafafa, stroke:#fafafa, color:#fafafa, stroke-width:0x, font-size:100%, visibility: hidden;
classDef mermaid_businessdata color:#000, fill:#65CDE8, stroke:#65CDE8, stroke-width:0px, font-size:100%;
classDef mermaid_nonbusinessdata color:#000, fill:#B7DEE8, stroke:#B7DEE8, stroke-width:0px, font-size:100%;
classDef mermaid_entity color:#000, fill:#FB9F53, stroke:#FB9F53, stroke-width:0px, font-size:100%;
classDef mermaid_entitylinked color:#000, fill:#FCD5B5, stroke:#FCD5B5, stroke-width:0px, font-size:100%;
classDef mermaid_context color:#000, fill:#B9CDE5, stroke:#B9CDE5, stroke-width:0px, font-size:100%;
classDef mermaid_optional color:#000, fill:#B7DEE8, stroke:#65CDE8, stroke-width:1px, font-size:100%, stroke-dasharray: 5 5;
classDef mermaid_state color:#000, fill:#d7e4bd, stroke:#000, stroke-width:1px, font-size:100%, font-weight:300;
class Main mermaid_entity
class Start mermaid_start
class A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12 mermaid_state
class L1,L2,L3,L4,L5,L6 mermaid_state
class C1,C2,C3,C4,C5,C6 mermaid_context
class N1,N2,N3,N4,N5,N6 mermaid_nonbusinessdata

创建变更集后,变更集将进入已创建状态。在该状态下,可以添加多个变更集项目,这些项目是更改受控实体的版本。然后发送变更集进行审批 - 此时,所有变更集项目都予以冻结,也就是无法更改。变更集随后可予以拒绝或批准。如果变更集被拒绝,则所有关联的变更集项目都将终止使用。如果变更集获得批准,则所有变更集项目都将变为活动状态。变更集包含一个附加属性 - 使变更集项目在批准后生效 - 该属性将尝试在变更集获得批准后使所有变更集项目生效。

将一切捆绑在一起#

graph TD
    Main[Change Set] -.- A1[Approval Role]
    N1[Approval Workflow] -.- Main
    Main === L1[Change Set Item]
    A1[Approval Role] -.- L1
    L1 ---A3[Product]
    L1 --- A4[Flow]
    L1 --- A5[...]

classDef mermaid_title color:#000, fill:#fafafa, stroke:#fafafa, stroke-width:0x, font-size:100%, font-weight:200;
classDef mermaid_start color:#000, fill:#fafafa, stroke:#fafafa, color:#fafafa, stroke-width:0x, font-size:100%, visibility: hidden;
classDef mermaid_businessdata color:#000, fill:#65CDE8, stroke:#65CDE8, stroke-width:0px, font-size:100%;
classDef mermaid_nonbusinessdata color:#000, fill:#B7DEE8, stroke:#B7DEE8, stroke-width:0px, font-size:100%;
classDef mermaid_entity color:#000, fill:#FB9F53, stroke:#FB9F53, stroke-width:0px, font-size:100%;
classDef mermaid_entitylinked color:#000, fill:#FCD5B5, stroke:#FCD5B5, stroke-width:0px, font-size:100%;
classDef mermaid_context color:#000, fill:#B9CDE5, stroke:#B9CDE5, stroke-width:0px, font-size:100%;
classDef mermaid_optional color:#000, fill:#B7DEE8, stroke:#65CDE8, stroke-width:1px, font-size:100%, stroke-dasharray: 5 5;
class Main mermaid_entity
class A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12 mermaid_businessdata
class L1,L2,L3,L4,L5,L6 mermaid_entitylinked
class C1,C2,C3,C4,C5,C6 mermaid_context
class N1,N2,N3,N4,N5,N6 mermaid_nonbusinessdata

click Main "../../business-data/change-set"
click A1 "../../administration/security/roles"
click A3 "../../business-data/product"
click A4 "../../business-data/flow"

步骤顺序#

正确使用变更集的必要步骤如下:

  1. 选择性地创建预期的审批工作流(状态模型)。
  2. 创建变更集并为其分配变更集项目。
  3. 请求变更集审批。
  4. 选择性地发送要返工的变更集(解决返工问题后,重复步骤2)。
  5. 批准或拒绝变更集