--- alias: user-guide-protocol-index description: "This documentation outlines a workflow management system for exception handling processes" --- # Protocol :lock: Protocol.**Show** ## Overview **Protocols** are used to address Exception Management, sometimes referred to as NCR (Non-Conformance Report) or OCAPS (Out-of-Control Action Plan System). The Exception Management contains essentially two objects: * **Protocol** - represents the definition of the workflow. * **Protocol Instance** - are run-time occurrences of the workflow based on the **Protocol** definition. Each **Protocol** defines a workflow, as well as a set of parameters that can be used in the different **Protocol** states. Each **Protocol** state can have a specific role associated, a [Checklist](../checklist/index.md), parameters , dispositions for the associated materials, notes and tasks. A **Protocol Instance** can be associated with one or more **Materials**. There are two important **Protocol Instance** properties which apply to all the **Materials** associated with the **Protocol Instance**: * Inhibit Ship - the Materials cannot be shipped to another Facility while the **Protocol Instance** is open. * Inhibit Move From Step - the *Material Step* cannot be changed while the **Protocol Instance** is open. !!! info Protocols are part of *Exception Management* which is a Critical Manufacturing optional module. ## Versioned Data A **Protocol** is a change-controlled object and contains versioned data components. All versions must be associated with a *Change Set* to follow an approval cycle, as shown in the next picture. ```mermaid graph TD subgraph Protocol Main1["Global Data
(Without Change Control)"] --- A1[None] Main2["Versioned Data
(With Change Control)"] --- A2[All other] end 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 Main1,Main2 mermaid_entity class A1,A2 mermaid_entitylinked ``` ## Tying Everything Together ```mermaid graph LR A1[Task] --- L1[Protocol Task] A2[Material] --- L2[Protocol Material] B1[Resource] --- B2[Protocol Resource] B3[Material Deviation] --- L3 B4[Chart Data Point Occurrence] --- L3 B2 --- L3 L2 --- L3[Protocol Instance] L3 ---|Related| L3 A3[Employee] -.- Main[Protocol] A4[Chart Rule] --- Main A5[Data Collection Parameter] --- Main L3 ==== Main L1 --- L3 L2 === Main Main --- A6[State Model] A6 --- A7[State Model State] A7 --- L4[Protocol State Detail] L4 -.- A8[Roles] L4 -.- A9[Checklist] Main === L5[Protocol Parameter] Main === L4 L4 --- L6[Protocol State Detail Parameter] L5 --- L6 L3 --- L7[Protocol Path] L7 --- L8[Protocol Path Parameter] L5 --- L8 L7 -.- A8 L7 -.- L9[Checklist Instance] L3 -.- A10[Product] L3 -.- A11[Facility] L3 -.- A12[Flow] L3 -.- A13[Step] 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,B1,B3,B4,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13 mermaid_businessdata class L1,L2,B2,L3,L4,L5,L6,L7,L8,L9 mermaid_entitylinked class C1,C2,C3,C4,C5,C6 mermaid_context class N1,N2,N3,N4,N5,N6 mermaid_nonbusinessdata click Main "../../business-data/protocol" click A1 "../../business-data/task" click A2 "../../business-data/material" click A3 "../../business-data/employee" click A4 "../../business-data/chart" click A5 "../../business-data/parameter" click A6 "../../administration>state_models" click A7 "../../administration>state_models" click A8 "../../administration/security/roles" click A9 "../../business-data/checklist" click A10 "../../business-data/product" click A11 "../../business-data/facility" click A12 "../../business-data/flow" click A13 "../../business-data/step" click L3 "../../business-data/protocol/protocol-instance" ``` ## Sequence Of Steps The necessary steps for using a **Protocol** are the following: 1. Create the necessary **Checklists** with the scope *Exception Management*. Note that the **Checklists** themselves are versioned entities. 2. Create a **Protocol** - note that it is necessary to associate the **Protocol Version** with a **Change Set**. 3. Approve the **Change Set**, which contains the **Protocol Version** that has been created. 4. Open as many Protocol Instances as desired. !!! info For convenience, the **Protocol** can be configured to use implicit *Change Sets*. Please refer to the [Change Set](../change-set/index.md) section for more information on this topic. {{ generate_index() }}