# Configuring Substitute Training

Vault can assign an alternate, or substitute, _Training Assignment_ to a Learner in place of a required, or primary, _Training Assignment_ using Training Admin-defined _Substitute Training Rule Sets_. You can accomplish this by marking _Training Requirements_ as substitutes, and then defining sets of rules for when they should be substituted.


## Feature Dependencies

Substitute Training does not require any other Training features to be enabled prior to its configuration and use. However, we recommend reviewing this feature's limitations for [Vault Admins][3] and [Training Admins](/en/lr/62206/#limitations).

## Use Cases

This feature is best understood through its many use cases, which are decided by a Training Admin as part of managing the Training Matrix. See the Training Admin-specific [Working with Substitute Training Requirements](/en/lr/62206/). 

## Configuration Overview

To configure the _Training Requirement_ object and other components to support Substitute Training:

1. Within the _Training Requirement_ object configuration, ensure:
    * The _Is A Substitute Training Requirement_ (`is_a_substitute_tr__v`) Yes/No field is configured with the "Show as checkbox" option.
    * All applicable object page layouts are [configured][1] to support this feature.
2. Within the _Training Requirement Impact Assessment_ object page layout, add a new section using the In Use Training Rule Sets control. We recommend labeling this new section "In Use Substitute Training Rule Sets".
3. Review your Vault's security configuration and ensure Learners and Training Admins are assigned the appropriate [permissions][2] to work with Substitute Training.

### Training Requirement Object Page Layout Configuration {#training-requirement-object-page-layout-configuration}

Enabling this feature includes several updates within all applicable _Training Requirement_ object page layouts:

1. Add a new section using the Training Rule Set control. We recommend labeling this new section "Substitute Training Rule Set".
2. Add a new detail form section called "Training Rule Details". We recommend adding it near the section configured in Step 1. Then, add or move the following fields to the section:
    * _Allow Learner Choice?_
    * _Is a Substitute Training Requirement_
    * _Is a Training Rule Hub_
    * _Training Rule Substitution Type_
    * _Substitute Due Date based on_
    * _Substitute Due Date Override_

You can optionally add or update layout rules which control substitute-specific sections and fields. For example, when `is_a_substitute_tr__v = true`, hide:
* Sections: Recurrence, Curricula, Assign Steady State?, Steady State Training Materials
* Field: _Is a Training Rule Hub_


## Limitations {#limitations}

The below limitations apply to Vault Admins configuring or troubleshooting a Vault with substitute Training Requirements. See [Working with Substitute Training Requirements](/en/lr/62206/#limitations) for additional limitations specific to Training Admins creating and managing requirements with substitute rules.

* The _Is A Substitute Training Requirement_ field must have the __Show as checkbox__ option enabled.
* Depending on your Vault's configuration, Training Admins may be prevented from saving new requirements with *Is A Substitute Training Requirement* checked. 
  * This can occur when certain fields are configured to default to a certain value, for example, `true`.
  * Fields which may prevent saving records include: *Assign Additional Training Assignment?* and *Do Not Re-Train*
  * Vault uses *Do Not Re-Train* to process TRIA decisions, and manages the value for you. As such, we recommend removing any default value configuration.
* When [importing training assignments](/en/lr/456120/), you cannot create _Related Training Assignment_ (`related_training_assignment__v`) object records manually if the creation source is not `import__v` for both _Training Assignment_ references.
* When a Vault is [cloned](/en/lr/32913/), conditions in substitute rules must be manually created in the target Vault; the _Training Rule Set_ and _Training Rule_ object records, which store the substitute rules, are not cloned. This is because the conditions may reference fields or field values that exist in the source Vault, but may not exist in the target Vault.
* It is possible for expected substitute assignments to be generated later than expected. This is due to a concept called live calculation, which dynamically handles primary and substitute assignments in specific scenarios. This means that these types of assignments may not be visible within the Vault UI until live calculation creates them. See [additional details](/en/lr/622062/) about live calculation.


## Related Permissions {#related-permissions}

To view substitution rules, Training Admins require a permission set which includes the _Read_ permission on the _Substitute Training Rule Set_ and _Substitute Training Rule_ objects. To create and edit substitution rules, Training Admins require a permission set which includes _Read_, _Create_, _Edit_, and _Delete_ permissions on the _Substitute Training Rule Set_ and _Substitute Training Rule_ objects.

### Learner Permissions

In order for Vault to successfully evaluate substitute rules for a training assignment, Learners must be minimally permitted to view their own _Person_ record, as well as the _User_ field within the record. This can be achieved by granting _Read_ access to the _Person_ object, as well as _Person_ object field permissions for the _User_ field within their assigned permission set.

If your Vault uses Dynamic Access Control, there must be a matching or custom sharing rule permitting the Learner _Read_ access to their _Person_ object record.

If your Vault's _Person_ object lifecycle includes Atomic Security configuration for fields, Learners must be granted _Read_ access to the _User_ field.

[1]: #training-requirement-object-page-layout-configuration
[2]: #related-permissions
[3]: #limitations
