# Configuring HACCP (HACCP)

<a href="/en/gr/576286/">QualityOne Vaults</a>
 enable organizations to efficiently standardize food safety practices across regions and local manufacturing sites using the HACCP (Hazard Analysis Critical Control Points) methodology. Users can create model <a href="/en/gr/492246/">HACCP plans</a>
 in Vault to define principles and procedural requirements for maintaining the HACCP system. To save time and effort, users can copy existing model HACCP plans as templates when creating new HACCP plans.

## Configuration Overview {#config}

Configuring your Vault to use HACCP involves the following steps:

* [Configure  objects][10]
* [Configure picklists][11]
* [Configure object layouts][5]
* [Configure lifecycles][6]
* [Configure workflows][7]
* [Configure object actions][8]
* [Configure the HACCP Flow Diagram][9]
* [Configure HACCP Document Generation][12]
* [Configure user permissions][1]

<div class="note-border alert-info">
  <div class="alert alert-info" role="alert">
    <div><i class="far fa-info-circle"></i></div>
    <div class="alert-text">
      <p><strong>Note</strong>: Depending on your Vault’s creation date and which features are currently enabled and configured, some of the steps described in this article may be unavailable or already complete in your Vault.</p>
    </div>
  </div>
</div>



## Configuring Objects {#object-types}

You must activate the _HACCP Plan_ and _HACCP Plan Design_ <a href="/en/gr/32857/">object types</a>
 on the _HACCP Plan_ object in order to run the _Create HACCP Plan from Design_ and _Create HACCP Plan Design from Design_ actions.

If fields on the _HACCP Plan_ object are configured to be <a href="/en/gr/15057/#values">unique</a>
, they must also be <a href="/en/gr/15057/#required">required</a>
.

To use the HACCP Flow Diagram and perform hazard analysis, you must activate object types for the following objects:

* _HACCP Plan Process Step_
* _Process Step_
* _CCP-Hazard Analysis_
* _CCP Library_
* _PRP/CM - Hazard Analysis_
* _HACCP Hazard Control_

To create _HACCP Plan Process Steps_ from the HACCP Flow Diagram and run the _Create HACCP Plan Design from Design_ and _Create HACCP Plan from Design_ actions, you must <a href="/en/gr/30986/#how-to-configure-system-managed-object-record-names">enable</a>
 the _System manages field value (read-only)_ checkbox on the _Name_ (`name__v`) field on the following objects:

* _CCP-Hazard Analysis_
* _HACCP Plan Ingredient_
* _HACCP Plan Process Step_
* _Process Hazard Analysis_
* _Ingredient Hazard Analysis_
* _PRP/CM - Hazard Analysis_
* _HACCP Hazard Control_

### Configuring Hazard Analysis Fields {#ha-fields}

To perform hazard analysis using the HACCP Flow Diagram, you must ensure the following fields on the _Process Hazard Analysis_ object are activated:

* _CCP_
* _Control Measure_
* _Hazard Analysis Complete_
* _Hazard Analysis Complete Reason_
* _Hazard Classification_
* _Hazard Classification Group_
* _Modification_
* _OPRP_
* _Origin & Nature of the hazards_
* _Potential Hazard Identified_
* _PRP_
* _Risk Category_
* _Significant Hazard_
* _Subsequent Step_

You must <a href="/en/gr/32857/#assign">assign</a>
 the _Hazard Analysis Complete_ and the _Hazard Analysis Complete Reason_ fields to all _HACCP Plan Process Step_ object types, and to the _HACCP Plan Process Step Group_ object.

If your organization uses a HARPC (Hazard Analysis and Risk-Based Preventive Controls) system, you must activate the _Is FSMA Food Safety Plan?_ field on all relevant _HACCP Plan_ object types.

#### Defining Hazard Analysis Outcomes {#outcomes}

You can define <a href="/en/gr/42857/">formulas</a>
 for showing and hiding each outcome section of a hazard analysis on the HACCP Flow Diagram. For instance, the following formula configured on the _CCP_ field of the _Process Hazard Analysis_ object tells Vault when to display the _CCP_ section:

```
(subsequent_step_eliminate_reduce__v = false) && (eliminate_reduce_occurrence__v = true) && (do_control_measures_exist__v = true)
```

To configure, define a formula on the following _Process Hazard Analysis_ fields:

* _CCP_
* _PRP_
* _OPRP_
* _Control Measure_
* _Subsequent Step_
* _Modification_

## Configuring Picklists {#picklists}

Your Vault includes the following picklists for categorizing and filtering hazards as part of the hazard analysis process, which you can customize as needed to fit your business needs:

* **Hazard Analysis Complete Reason**: Users can select from multiple values to give a reason for the <a href="/en/gr/726017/#completeness">hazard analysis completeness status</a>
 on a _Process Hazard Analysis_ record.
* **Step Hazard Analysis Complete Reason**: Users can select from multiple values to give a reason for the <a href="/en/gr/726017/#completeness">hazard analysis completeness status</a>
 on a _HACCP Plan Process Step_ record.
* **Group Hazard Analysis Complete Reason**: Users can select from multiple values to give a reason for the <a href="/en/gr/726017/#completeness">hazard analysis completeness status</a>
 on a _HACCP Plan Process Step Group_ record.
* **Hazard Analysis Type**: Users can select either _Material Hazard Analysis_ or _Process Hazard Analysis_ to classify the hazard analysis type on a _Process Hazard Analysis_ record.
* **Hazard Classification Group**: Users can select from multiple values to classify a hazard on a _Process Hazard Analysis_ and _Hazard_ record.
* **Hazard Classification**: Users can select from a list of pre-defined values determined by their selection for _Hazard Classification Group_ to further classify a hazard.
* **Origin & Nature of the hazards**: Users can select from multiple values to describe hazards in a _Process Hazard Analysis_ record.
* **Preventive Control Type**: Users can select from multiple values on a _Process Hazard Analysis_ to describe the type of preventive control applied as part of a HARPC plan.

Configure the _Hazard Classification Group_ or both the _Hazard Classification Group_ and _Hazard Classification_ picklists with values applicable to your organization's business needs, or use the values provided in <a href="/en/gr/544049/#hazards">Configuring Material Verification Checklists</a>
.

If you configure both picklists, you must also <a href="/en/gr/53941/#configuring-dependent-picklists">configure a picklist dependency</a>
 on the _Hazard Classification Group_ picklist to make values available to select for the _Hazard Classification_ field.

## Configuring Object Layouts {#layouts}

HACCP provides a default <a href="/en/gr/26387/">object layout</a>
 for the _HACCP Plan_ object to allow users to create, analyze, and review food safety-related procedures. You can customize object layouts or create custom object layouts from **Admin > Configuration > Objects > HACCP Plan > Layouts**.

* For the _HACCP Plan_ (`haccp_plan__v`) object:
  * **Detail Form Section**: If your organization uses a HARPC system, add the _Is FSMA Food Safety Plan?_ field.
  * **Related Object Section**: Insert the _HACCP Plan Process Step_, _HACCP Plan Ingredient_, and _HACCP Plan Process Step Group_ objects.
    * If your Vault does not have <a href="/en/gr/771988/">HACCP Plan Translation</a>
 enabled, add the _HACCP Plan - Material_ object and deactivate the _Material_ field in the _Details_ section.
    * If your Vault has <a href="/en/gr/771988/">HACCP Plan Translation</a>
 enabled, insert the _HACCP Plan Materials_ control section with the slider (<img class="inline" src="https://platform.veevavault.help/assets/images/CPC-Icon-Slider.png" alt="Slider Icon" style="" />) icon and deactivate the _Material_ field in the _Details_ section.
* For the _HACCP Plan Process Step_ (`haccp_plan_process_step__v`) object:
  * **Detail Form Section**: Add the _Hazard Analysis Complete_ and _Hazard Analysis Complete Reason_ fields.
  * **Related Object Section**: Insert the _HACCP Plan Process Step Group_ (`haccp_plan_process_step_group__v`) object to display a list of groups associated with the process step.
* For the _HACCP Plan Process Step Group_ (`haccp_plan_process_step_group__v`) object:
  * **Detail Form Section**: Add the _Hazard Analysis Complete_ and _Hazard Analysis Complete Reason_ fields.
* For the _Hazard_ (`hazard__v`) object:
  * **Detail Form Section**: Add the _Hazard Classification Group_ field. If your configuration uses the _Hazard Classification_ field, you must also add it.
* For the _Process Hazard Analysis_  (`process_hazard_analysis__v`) object:
  * **Detail Form Section**: 
    * Add the following fields:
        * _HACCP Plan Process Step Group_
        * _Hazard Analysis Complete_
        * _Hazard Analysis Complete Reason_
        * _Hazard Analysis Type_
        * _Hazard Classification Group_
        * _Significant Hazard_
    * Add the _Hazard Classification_ field, if relevant to your configuration
    * If your organization uses a HARPC system, add the following fields:
        * _Is Preventive Control required?_
        * _Preventive Control Justification_
        * _Type of Preventive Control_
* For the _Process Hazard Analysis - Hazard_ (`pha_hazard__v`) object:
  * **Detail Form Section**: Add the _Brief Description_ field.

## HACCP Plan Lifecycle {#lifecycles}

HACCP includes the _HACCP Plan Lifecycle_ <a href="/en/gr/29798/">object lifecycle</a>
, which your organization can use and <a href="/en/gr/30683/">customize</a>
 to suit your specific needs.

## HACCP Workflows {#workflows}

The _HACCP Plan Lifecycle_ includes standard <a href="/en/gr/33498/">object workflows</a>
 which your organization can use and <a href="/en/gr/33550/">customize</a>
 to suit your specific needs.

## Configuring HACCP Object Actions {#actions}

The _HACCP Plan_ object lifecycle contains the following standard actions:

* **[Create HACCP Plan Design from Design][2]**: Copies the hierarchy of a _HACCP Plan Design_ and its <a href="/en/gr/492246/#deep-copy">related records</a>
 into a new set of records. The _Source HACCP Plan_ field in the new _HACCP Plan_ record will contain the ID of the copied _HACCP Plan_.
* **[Create HACCP Plan from Design][2]**: Offers the same functionality as the _Create HACCP Plan Design from Design_ action except _HACCP Plan_ is the target object type rather than _HACCP Plan Design_.
* **[HACCP Flow Diagram actions][4]**: Support the functionality of HACCP Flow Diagrams, enabling users to launch, lock, and unlock diagrams directly from a specific _HACCP Plan_.

### Configuring the Create HACCP Plan from Design & Create HACCP Plan Design from Design Actions {#haccp-from-design}

Depending on your business needs, add these actions as a <a href="/en/gr/43127/#assign-actions">record action</a>
 on the _HACCP Plan_ object to:

* Add these actions as <a href="/en/gr/59885/#user-actions">user actions</a>
 on any _HACCP Plan Lifecycle_ state.
* Add these actions as <a href="/en/gr/59885/#entry-actions">entry actions</a>
 on any _HACCP Plan Lifecycle_ state.

When users run the _Create HACCP Plan Design from Design_ or _Create HACCP Plan from Design_ actions, the _Source HACCP Plan_ field in the new _HACCP Plan_ record will contain the ID of the copied _HACCP Plan Design_. Vault does not copy:

* System-managed fields.
* Inactive object types.
* Inactive object fields.
* Any fields with the _Do not copy this field in Copy Record_ checkbox selected.

#### Configuring HACCP Plan Copy Objects {#copy-objects}

All <a href="/en/gr/492246/#deep-copy">standard transactional HACCP objects</a>
 are included in HACCP deep copy actions. To include additional objects in the copy, see <a href="/en/gr/771988/#copy-custom-objects">Configuring HACCP Plan Translation</a>
.

### Configuring HACCP Flow Diagram Actions {#diagram-actions}

The following actions support the HACCP Flow Diagram:

* **Launch Process Flow Diagram**: Allows users to launch the HACCP Flow Diagram for a _HACCP Plan_ record. 
* **Lock HACCP Flow Diagram and Unlock HACCP Flow Diagram**: Prevents users from editing the HACCP Flow Diagram and unlocks the diagram so users can make updates.

To make these actions available to users on a _HACCP Plan_, first add them as <a href="/en/gr/43127/#assign-actions">record actions</a>
 on the _HACCP Plan_ object. You can then add these actions to the relevant _HACCP Plan_ lifecycle states as <a href="/en/gr/59885/#user-actions">user actions</a>
 or <a href="/en/gr/59885/#entry-actions">entry actions</a>
.

## Configuring the HACCP Flow Diagram {#diagram}

You can configure some fields and subsections that display within the _Hazard Analyses_ section of the _Information_ panel when users perform hazard analysis from the HACCP Flow Diagram. You cannot create new sections.

### Hiding Subsections {#hide}

To hide the _Hazard Assessment_ and _Categorization of Control Measures_ subsections:

1. Navigate to **Admin > Configuration > HACCP Setup > HACCP Flow Diagram Information Panel Sections**.
2. Select the **Hazard Assessment Subsection** or **Categorization of Control Measures Subsection** record.
3. From the **All Actions** menu of the subsection record, select **Edit**.
4. Set the _Hide Section_ field to **Yes**.
5. Click **Save**.

### Configuring Fields {#fields}

To configure fields to display in the _Potential Hazard Description_ and _Hazard Assessment_ subsections:

1. Navigate to **Admin > Configuration > HACCP Setup > HACCP Flow Diagram Information Panel Sections**.
2. Select the **Potential Hazard Subsection** or **Hazard Assessment Subsection** record. Field configuration is not available for other *Hazard Analysis* subsections.
3. Under _HACCP Flow Diagram Info Panel Section Fields_, click **Create**.
4. Enter a **Name** for the section field record. This value does not display anywhere outside the Admin area and is for configuration tracking purposes only.
5. Optional: Enter a **Label** and **Description**.
6. In the **Object** field, select **Process Hazard Analysis**.
7. Enter a **Field** that exists on the _Process Hazard Analysis_ object. This value must be in the following format: `Field.[field_name__v]`, for instance, `Field.ccp__v`.
8. Enter a **Display Order**.
9. Click **Save**.

To map fields that display in the _Hazard Assessment_ subsection:

1. Under _HACCP Flow Diagram Info Panel Section Field Mappings_, select the field mapping you wish to configure. You cannot create new field mappings.
2. From the **All Actions** menu, select **Edit**.
3. Optional: Update the **Label** and **Description**.
4. Enter a **Field** on the _Process Hazard Analysis_ object from which to map the value. This value must be in the following format: `Field.[field_name__v]`, for instance, `Field.severity__v`.
5. Click **Save**.

## Configuring HACCP Document Generation {#haccp-docs}

To configure HACCP Document Generation, do the following:

* Activate the _HACCP Plan Reports_ document type.
* Create a _HACCP Template_ document template. For more information about creating a document template and configuring Merge Fields, see <a href="/en/gr/5509/">Managing Document Templates</a>
, <a href="/en/gr/30965/">Using Merge Fields for Microsoft Word & Excel</a>
 and <a href="/en/gr/63256/">Configuring Merge Fields for Microsoft Word & Excel</a>
.
* Configure the appropriate <a href="/en/gr/2306/">lifecycles</a>
 and <a href="/en/gr/50498/">workflows</a>
 for the _HACCP Plan Report_ <a href="/en/gr/618/">document types</a>
.

## Limitations {#Limitations}

HACCP has the following limitation:

* The _Create HACCP Plan Design from Design_ and _Create HACCP Plan from Design_ actions do not copy values stored in <a href="/en/gr/15057/#attachment-fields">_Attachment_ fields</a>
.

## Configuring User Permissions {#user-permission}

You must ensure users have the appropriate read and create <a href="/en/gr/22824/">permissions</a>
 to access the appropriate objects and object fields in addition to the permissions outlined below:

* To create and copy _HACCP Plans_:
  * _Create_, _Edit_, and _Delete_ permissions for the _HACCP Plan_ object and all relevant _HACCP Plan_ object types.
  * _Create_, _Edit_, and _Delete_ permissions for all _HACCP Plan_ related objects included in the [HACCP copy actions][13].
  * _Create_, _Edit_, and _Delete_ permissions for all HACCP <a href="/en/gr/492246/#reference">reference objects</a>
.
  * _Execute_ permission on the _HACCP Plan_ object for the following object actions:
    * _Create HACCP Plan Design from Design_
    * _Create HACCP Plan from Design_
* To view a HACCP Flow Diagram and its associated hazard analysis information, users must have the following permissions: 
  * _View_ permission for the _Process Flow Diagram_ (via **Admin > Users & Groups > Permission Sets > [permission set] > Pages > All Pages > Process Flow Diagram**).
  * _Execute_ permission on the _HACCP Plan_ object for the following object actions:
    * _Launch Process Flow Diagram_
    * _Lock HACCP Flow Diagram_
    * _Unlock HACCP Flow Diagram_
  * _Read_ permission on the following objects or, to modify a HACCP Flow Diagram, _Create_, _Edit_, and _Delete_ permissions on the following objects:
    * _CCP-Hazard Analysis_
    * _HACCP Hazard Control_
    * _HACCP Plan Ingredient_
    * _HACCP Plan Process Step_: All object types
    * _HACCP Plan Process Step Connection_: If object types are enabled for this object, users must have permission for the _Base HACCP Plan Process Step Connection_ (`base__v`) object type
    * _HACCP Plan Process Step Group_
    * _HACCP Plan Process Step Position_
    * _HACCP Process Modification_
    * _Hazard_
    * _HPPSC Position_
    * _Ingredient Hazard Analysis_
    * _Ingredient Involved_
    * _HPPS - HPPSG_
    * _HPPS - PHA_
    * _PHA - HHC_
    * _PHA - Subsequent Steps_
    * _Process Hazard Analysis_
    * _Process Hazard Analysis - Hazard_
    * _PRP/CM - Hazard Analysis_
* To run the _Generate HACCP Plan Report_ action, users must have the following permissions: 
    * _Create_ permission for the _HACCP Plan Reports_ document type.
    * _Create_ permission for the following _HACCP Plan Reports_ document subtypes:
        * _Generated HACCP Documents_
        * _HACCP Templates_
    * _Create_ permission for the following document classifications of the _Generated HACCP Documents_ document subtype:
        * _HACCP Flow Diagrams_
        * _HACCP Plan Binders_
        * _HACCP Plan Reports_
    * _Create_ permission for the _HACCP Plan Data Documents_ document classification of the _HACCP Templates_ document subtype. 
    * _Create_ permission for the _HACCP Plan Binder_ binder.

## Related Permissions {#permissions}

You can complete all the steps in this article with the standard _System Administrator_ or _Vault Owner_ security profile. If your Vault uses custom security profiles, your profile must grant the following <a href="/en/gr/22824/">permissions</a>
:

<table>
  <tr>
    <th><strong>Type</strong></th>
    <th><strong>Permission</strong></th>
    <th><strong>Controls</strong></th>
  </tr>
  <tr>
    <td>Security Profile</td>
    <td>Admin: Configuration: Document Fields: Create, Edit</td>
    <td>Ability to create and modify document fields.</td>
  </tr>
  <tr>
    <td>Security Profile</td>
    <td>Admin: Configuration: Document Lifecycles: Edit</td>
    <td>Ability to modify document lifecycles.</td>
  </tr>
  <tr>
    <td>Security Profile</td>
    <td>Admin: Configuration: Document Types: Edit</td>
    <td>Ability to modify document types.</td>
  </tr>
  <tr>
    <td>Security Profile</td>
    <td>Admin: Configuration: Object Lifecycles: Create, Edit</td>
    <td>Ability to create and modify object lifecycles.</td>
  </tr>
  <tr>
    <td>Security Profile</td>
    <td>Admin: Configuration: Object Workflows: Create, Edit</td>
    <td>Ability to create and modify object workflows.</td>
  </tr>
  <tr>
    <td>Security Profile</td>
    <td>Admin: Configuration: Objects: Create, Edit</td>
    <td>Ability to create and modify Vault objects.</td>
  </tr>
  <tr>
    <td>Security Profile</td>
    <td>Admin: Configuration: Templates: Create, Edit</td>
    <td>Ability to create and modify document or binder templates.</td>
  </tr>
</table>

[1]: #user-permission
[2]: #haccp-from-design
[3]: #process-step-types
[4]: #diagram-actions
[5]: #layouts
[6]: #lifecycles
[7]: #workflows
[8]: #actions
[9]: #diagram
[10]: #object-types
[11]: #picklists
[12]: #haccp-docs
[13]: #copy-objects