# About RegulatoryOne Component Types (Registration & Dossier Management)

Some RegulatoryOne [ Registration & Dossier Management](/en/lr/71498/) features require you to create components for specific component types as part of the configuration process. Component types are the configuration elements of a Vault that extend its functional behavior. <a class="external-link " href="https://developer.veevavault.com/mdl/#vault-components" target="_blank" rel="noopener">Components<i class="fa fa-external-link" aria-hidden="true"></i></a> are instances of component types that contain specific configuration details. Some components store additional data in <a class="external-link " href="https://developer.veevavault.com/mdl/#subcomponents" target="_blank" rel="noopener">subcomponents<i class="fa fa-external-link" aria-hidden="true"></i></a>. Components have a parent-child relationship with their subcomponents, meaning that a subcomponent always belongs to a parent component.

You can view, create, and edit these components in your Registration & Dossier Management Vault and in <a class="external-link " href="https://developer.veevavault.com/mdl/#mdl-overview" target="_blank" rel="noopener">MDL<i class="fa fa-external-link" aria-hidden="true"></i></a>. See <a class="external-link " href="https://developer.veevavault.com/mdl/#about-vault-components" target="_blank" rel="noopener">About Vault Components<i class="fa fa-external-link" aria-hidden="true"></i></a> for more details about how to access, create, and alter components in MDL.

 
<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>: The component types described in this article are available only in <a href="/en/lr/71498/">RegulatoryOne Registration &amp; Dossier Management</a> Vaults.</p>
    </div>
  </div>
</div>



## Component Types {#types}

The following component types are available in Registration & Dossier Management Vaults:

* [**Object Mapping**][2] (`Objectmapping`): Maps a source object to a target object.
  * [**Field Mapping**][2] (`Fieldmapping`): This subcomponent of Object Mapping maps a source field to a target field on the objects defined in the associated Object Mapping.
* [**Relational Token**][3] (`Relationaltoken`): Identifies how Vault creates or populates object records when supported actions run.
* [**Relational Token Setting**][4] (`Relationatokensetting`): Defines the root Relational Token for supported actions.
* [**Registration Attribute**][5] (`Registrationattribute`): Defines _Registration Item_ field attributes for [Local Impact Assessments](/en/lr/76906/) and [Global Change Impact Assessments](/en/lr/512728/).
* [**Local Impact Assessment Lifecycle Rule**][6] (`Lialifecyclerule`): Defines rules to ignore matching  _Registration Objectives_ in specific lifecycle states for [Local Impact Assessments](/en/lr/76906/).

## Defining Object Mappings & Field Mappings {#object-mapping}

Object Mapping components define a source object and a target object. Field Mappings are subcomponents of Object Mappings that map fields between the source and target objects defined in the associated Object Mapping. You must first create an Object Mapping, then add Field Mapping subcomponents to that Object Mapping. You can link Object Mappings to [Relational Tokens][3] so that Vault populates mapped fields based on token resolution. See [Defining Object Mappings & Field Mappings](/en/lr/74401/) for more details.

##  Defining Relational Tokens {#tokens}

Relational Token components leverage hierarchical relationships between objects so that users can generate and populate records based on token resolution when [supported actions](/en/lr/71507/#supported-actions) run. If you link a Relational Token to [Object Mappings][2], Vault will populate mapped fields on certain records based on token resolution. When you create recursive Relational Tokens, Vault applies the token to all generated records created as the token resolves through the hierarchy for the specified object until Vault can create no more additional records. You can also specify if Vault applies any VQL Criteria on the Relational Token as new records are created or after recursive record creation. See [Defining Relational Tokens](/en/lr/71507/) for more details.

<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>: After creating the necessary Relational Tokens, you must link each supported action to a root token with <a href="#rts">Relational Token Setting components</a>. If you do not do this, the action will fail when run by users.</p>
    </div>
  </div>
</div>



## Defining Relational Token Settings {#rts}

The Relational Token Setting component type defines settings for object actions that support [Relational Tokens][3]. You must [link each supported action][7] to the appropriate root token to specify which root token each action references when resolving Relational Tokens. This allows you to define Relational Tokens that indirectly reference objects. See [Defining Relational Tokens](/en/lr/71507/) for more details about how to create Relational Token Settings in your Vault and the [components](/en/lr/71507/#recommended) we recommend using to link root tokens to supported actions.

## Defining Registration Attributes {#ra}

The Registration Attribute component type defines _Registration Item_ field attributes and maps them to object fields. You must define relevant Registration Attributes in order for the following actions to run successfully: 

* [**Local Impact Assessment**](/en/lr/76906/#local-impact-assessment): Identifies _Registration_ and _Registration Objective_ matches based on the _Regulated Category Attribute Impacts_ you link to each component. 
* [**Generate Registration Data**](/en/lr/76906/#generate-registration-data): Populates specified fields on _Registration Items_ based on the [Object Mapping][2] linked to the Relational Token you specify for a component.
* [**Run Global Impact Assessment**](/en/lr/512728/#gia-action): Identifies _Registration Items_ potentially impacted by a global operational change based on the pre-defined _Global Operational Change_ fields you specify for each component.

See [Defining Registration Attributes](/en/lr/761426/) for more details.

## Local Impact Assessment Lifecycle Rule {#lia-lc-rules}

The Local Impact Assessment Lifecycle Rule component type defines specific _Registration_ lifecycle states Vault ignores when populating the _Matching Registration Objective_ control field for Local Impact Assessments. For example, you can define components to ignore _Registration Objectives_ in _Cancelled_ and _Expired_ states since the work on those objectives is complete. See [Configuring Local Impact Assessments](/en/lr/76906/) for more details.


[2]: #object-mapping
[3]: #tokens
[4]: #rts
[5]: #ra
[6]: #lia-lc-rules
[7]: #linking-actions
