--- alias: user-guide-change-set-index tags: - change management description: "Manage versions of change-controlled objects through a defined change set approval process" --- # Change Set :lock: ChangeSet.**Show** ## Overview A **Change Set** is an object which is used to bundle together changes to versioned objects. Bear in mind that the **Change Set** only refers to the versioned data of the object, so, the global data is not part of the **Change Set**. In the current Critical Manufacturing MES version, the following objects are change-controlled: * [[user-guide-automation-controller-index]] * [[user-guide-automation-driver-definition-index]] * [[user-guide-automation-protocol-index]] * [[user-guide-automation-workflow-index]] * [[user-guide-bom-index]] * [[user-guide-checklist-index]] * [[user-guide-data-collection-index]] * [[user-guide-data-collection-limit-set-index]] * [[user-guide-document-index]] * [[user-guide-experiment-definition-index]] * [[user-guide-flow-index]] * [[user-guide-inspection-plan-index]] * [[user-guide-maintenance-plan-index]] * [[user-guide-printable-document-index]] * [[user-guide-product-index]] * [[user-guide-product-group-index]] * [[user-guide-protocol-index]] * [[user-guide-recipe-index]] * [[user-guide-uipages-index]] ## Change Set Approvals Individual **Change Set Items** can have individual approval Roles which indicate the **Change Set Item** must be approved by a person that belongs to that Role. Only after all individual **Change Set Items** have been approved can the **Change Set** approval process begin. A **Change Set** can have an Approval Role or an Approval Workflow, but not both. !!! note The Approval Workflow should follow the [[user-guide-change-set-index#state-model|State Model]] described in the section below. All the **Change Set Items** of a given **Change Set** only become Active if the **Change Set** as a whole is approved. The **Change Set** can be approved in three basic ways: 1. No Change Set Approval Role or Approval Workflow defined: the **Change Set** is approved immediately after all **Change Set Items** are approved (if individual **Change Set Item** approval roles have been defined). 2. A Change Set Approval Role is defined: the **Change Set** is approved after all **Change Set Items** are approved (if individual **Change Set Item** approval roles have been defined) and the **Change Set** itself is approved by a person that belongs to the **Change Set** approval Role. 3. A Change Set Approval Workflow is defined: the **Change Set** is approved after all **Change Set Items** are approved (if individual **Change Set Item** approval roles have been defined) and the **Change Set** itself is approved in its final Workflow state. Before the **Change Set** approval reaches the final Workflow state, it must be approved in every intermediate state of the Workflow. In every state of the Workflow, the **Change Set** can be approved only by a person that belongs to the Role defined in the Workflow State (if defined). !!! note The Approval Type of State reviewers is as follows: * Approver - if the Reviewer is set as Approver they must explicitly approve the **Change Set** at a certain state (this action is mandatory and relevant). * Observer - if the Reviewer is set as Observer they can add, approve or reject, but the response is not required and not relevant for the **Change Set** approval, but it will be kept in the historical details of the state transition approval. ## Implicit Change Sets It is possible to have implicit **Change Sets** created automatically for change controlled entities. To enable change controlled entities to have implicit **Change Sets**, it is necessary to change its metadata. To enable implicit **Change Sets** for an entity, it is necessary to perform the following: 1. Go to the **Entity Types** in the **Administration** page group. 2. Open the desired Entity. 3. Select **Edit** to enter edit mode. 4. Make the following changes: * Check the Allow Automatic Change Set option. * Provide the Name Generator that will be used to generate the **Change Set** name. * Optionally, specify an Approval Role or Approval Workflow for the **Change Set**. !!! info If there is no Approval Role or Approval Workflow defined, the Change Set will be automatically approved. 5. Select **Save** to make the changes effective. ## Subscribe to Notifications You can subscribe to **Change Set** notifications. For more information see [[user-guide-manage-change-set-subscribers]]. ## State Model A **Change Set** itself has a system defined state model described in the next figure. ```mermaid 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] L1 -->|Change Set Items Effective| L2["Terminated (automatic)"] 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; classDef mermaid_initial_state fill:#d7e4bd,stroke:#92d050,stroke-width:3px,color:#000; classDef mermaid_final_state fill:#a7e2f2,stroke:#65CDE8,stroke-width:3px,color:#000; class Main mermaid_entity class Start mermaid_start class A1,A2,L1 mermaid_initial_state class C1,L2 mermaid_final_state ``` A **Change Set**, when created, goes to the system state Created. In this state, users can add multiple **Change Set Items**, which are versions of the change-controlled entities. After the desired **Change Set Items** are added, the **Change Set** can be set for approval. At this point, all associated **Change Set Items** become frozen, meaning they can no longer be modified. The **Change Set** then goes through the approval process and can be either be approved or rejected. If the **Change Set** is approved, all **Change Set Items** transition to the Active state. The **Change Set** also contains an additional property, called `Make Change Set Items Effective on Approval`. When this option is enabled, the system attempts to automatically make all **Change Set Items** effective after approval. Once the **Change Set Items** become effective, the **Change Set** is automatically terminated. In case the **Change Set** is rejected, both the **Change Set** and all associated **Change Set Items** are terminated. ## Tying Everything Together ```mermaid 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" ``` ## Sequence Of Steps The necessary steps for correctly using a **Change Set** are the following: 1. Optionally, create the intended Approval Workflow (State Model). 2. Create a **Change Set** and assign **Change Set Items** to it. 3. Request a **Change Set** approval. 4. Optionally, send the **Change Set** for Rework (after addressing rework issues, repeat Step 2). 5. Approve or Reject the **Change Set**. {{ generate_index() }}