Universal State Model#
All system objects follow a system life cycle state model, which is important to understand the concepts of the system.
graph TD
Start ==>|Create| A1[Created]
A2 ==>|Approve| N1[Active]
N1 -->|Terminate| N2[Terminated]
N2 -->|Unterminate| A1
N1 <==>|Set Effective Version| A3[Effective]
A1 --->|Terminate| N2
A2 -.->|Rework| A1
A3 -.->|Terminate| N2
A1 ==>|Request Approval| A2[Frozen]
A2 --->|Reject| N2
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 The Universal State Model is stored in every object such as the Universal State property. Once an object is terminated it can be purged from the database depending on the defined retention time for the entity type.
There are two types of objects:
- Non-Versioned objects - do not require change control.
- Versioned objects - require change control.
The following objects are versioned:
- Automation Controller
- Automation Driver Definition
- Automation Protocol
- BOM
- Checklist
- Data Collection
- Data Collection Limit Set
- Document
- Experiment Definition
- Flow
- Inspection Plan
- Maintenance Plan
- Printable Document
- Product
- Product Group
- Protocol
- Recipe
- UI Page
Non-Versioned Objects#
Non-Versioned objects, also referred to as Normal objects are not subject to change control. They are created in the Active state and, once terminated, they move onto the Terminated state.
Warning
A terminated object can only be unterminated if it has not yet been purged from the database.
Versioned Objects#
Versioned objects are special change-controlled entities, which consist of two parts:
- A fixed global component, which applies to all versions of the object.
- A variable versioned portion, which refers only to the specific version.
For all effects, a versioned object is treated as a single object containing both the global and versioned portions.
Info
In the system implementation, version zero will always represent the current effective version, or if no effective version exists, it will represent the highest non-terminated version.
At any given time, the object can be seen as the Global data plus the current Effective data.
The following rules apply to versioned objects:
- The global data is only created when creating the object for the first time and it can be changed without going through a change control process.
-
When creating a new version, the version must always be associated with a Change Set (implicit Change Sets are possible).
Note
For more information, see Change Set.
-
When setting a new version Effective, the previous effective version becomes Active.
graph LR
subgraph Global Data
A1[Effective Version]
end
subgraph Versioned Data
direction TB
A2[Version 1]
A3[Version 2]
A4[Version 3]
A5[Version n]
end
A1 ==> A4
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 N1,N2,N3,N4,N5,N6 mermaid_nonbusinessdata Each version of a versioned object follows the state model described in the following image:
graph TD
Start ==>|Create Version| A1[Created]
A2 ==>|Approve Change Set| N1[Active]
N1 -->|Terminate| N2[Terminated]
N2 -->|Unterminate Version| A1
N1 <==>|Set Effective Version| A3[Effective]
A1 --->|Terminate Change Set| N2
A2 -.->|Rework Change Set| A1
A3 -.->|Terminate| N2
A1 ==>|Request Change Set Approval| A2[Frozen]
A2 --->|Reject Change Set| N2
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 For a Versioned object to become Active it needs to go through a Change Set approval process. For more information, see Change Set.