# Managing Design Data Components (LIMS)

Design Data forms the basis of all runtime data generated by Veeva LIMS. For some runtime data, such as *Tests*, the spec data provides a template, in the form of a *Test Definition* record, for the Steps, Results, and Inputs that the system should create when creating those tests. Some runtime data is used in conjunction with spec data to produce new records, such as *Criteria Evaluations*, which are created when comparing *Spec Data Criteria* to *Results*.

Spec Data includes the following key data in Veeva LIMS:

* Materials
* Countries
* Organizations
* Spec Data Mapping
* [Spec Data](/en/lr/51412705/)
    * Spec Data Criteria
    * Sample Actions
* [Sample Plans](/en/lr/51412704/)
    * Sample Definitions
* [Test Definitions](/en/lr/51412703/)
    * Test Definition Steps
    * Test Definition Inputs
    * Test Definition Results
    * Method Documents
    * Variables and [Calculations](/en/lr/51412706/)
* [Version Control and Change Analysis](/en/lr/51412707/)

## **About Spec Data Build Order**

There is a prescribed order of operations when building your Spec Data:

1. Create your *Test Definition*, including the *Test Definition Steps*, *Test Definition Inputs*, *Test Definition Results* and any calculations.
2. Create your *Sample Plan*, and its child *Sample Definitions*.
3. Create your *Spec Data*. The *Spec Data* must reference a *Sample Plan*. Create one or more *Samples to Pull* (Spec Data Sample action, Pull Sample action) and one or more *Tests to Execute* (Spec Data Sample action, Test Sample action). Ensure that any [cross-method calculation variables](/en/lr/51412706/) have been accounted for. Optionally, create:
    1. *Spec Data Criteria*
    2. *Spec Data Criteria Sets*
4. Complete [Change Analysis](/en/lr/51412707/).
5. Create *Spec Data Mapping* records which match a *Material* (and potentially Country and/or Organization) to the *Spec Data* record. Ensure that *Spec Data Mapping* record is Active.

<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>: When a job updates a Design Data record, it adds the Job Owner to the Contributed to Spec Data role, which is used to prevent self-approval. As such, any jobs that make changes to Design Data records must have System or a group as their Job Owner to prevent users from accidentally triggering the Prevent Self Approval logic and receiving an error.</p>
    </div>
  </div>
</div>



## **Related Permissions**

For Spec Data Admins to build a set of Veeva LIMS Spec Data components and make changes where necessary, they must have a security profile or role which grants them *Read*, *Create*, and *Edit* permissions for the following objects and their related objects (and object types where applicable):

* *Test Definition*
    * *Test Definition Input*
    * *Test Definition Result*
    * *Test Definition Result Variable*
    * *Test Definition Step*
* *Sample Plan*
    * *Sample Definition*
* *Spec Data*
    * *Spec Data Sample Action*
    * *Spec Data Criteria*
    * *Spec Data Criteria Set*
    * *Spec Data Criteria Set Country*
* *Spec Data Mapping* (including View access to the *Spec Data* object control)
* *Lab Result Picklist*
    * *Lab Result Picklist Option*

Spec Data Admins should have *View* permissions for the following objects (and object types where applicable) in order to manage Spec Data records:

* *Material*
* *Country*
* *Organization*
* *Product*
* *Unit of Measure*

Spec Data Admins should also have *Read* and *Edit* permissions for the following objects (and object types where applicable) in order to manage Spec Data records:

* *LIMS Change Analysis*
    * *LIMS Change Analysis Blocking Item*
    * *LIMS Change Analysis Item*
    * *LIMS Change Analysis Signature* (*Read* only)

To view and manage calculation formulas, users need a permission set with *View* access to the *Calculation Formula* object control permission on the *Test Definition Result* object.
