# Assigning Training Without a Learner Role

There are two ways a Learner can be assigned content outside of a Learner Role: [Assign to Learner][1] and [Direct Assignment][2].

## Assigning a Curriculum to Learner Training Matrices {#assign-to-learner}

The **Assign to Learner** action, available on _Curriculum_ object records, allows you to directly assign _Curricula_ to integrate into a Learner's training matrix, respecting all training rules and automation. Training assigned via this method will be issued via the _Update Training Assignments_ job.

<a id="training-limit-9"></a> You can select up to 1,000 training-eligible Learners each time you perform the action.

### Enabling the Assign to Learner Action

To enable the **Assign to Learner** action, an Admin must first add it to the _Curriculum_ object in **Admin > Objects > Curriculum > Actions**. Then they must add it to the _Curriculum_ object lifecycle states where they want it to appear.

Additionally, to facilitate use of the action:

  * Activate the _Individual Learner Role_ object type on the _Learner Role_ object.
  * Activate the _Learner Role-Person_ object type on the _Learner Role-Person_ object.
  * Activate the _Person_ field on the _Individual Learner Role_ object type.
  * Create a new object page layout for _Individual Learner Role_ that includes the _Person_ (required) field.
  * Add an event action on the _Individual Assignment Request_ object lifecycle: **Start Workflow > VT: Individual Assignment Request**
  * Add the _Training Administrator_ role to the _Individual Assignment Request_ object lifecycle and select the _VT: Training Admins_ permission set for the role. This permission set should include the following permissions:
    * _Read_, _Create_, _Edit_, and _Delete_ for the _Learner Role: Individual Learner Role_ object type.
    * _Read_ for the _Individual Assignment Request_ object.
    * _Read_ for the _Individual Assignment Request-Person_ object.

### Individual Learner Roles {#individual-learner-roles}

Vault uses a special _Learner Role_ to seamlessly insert the _Curriculum_ into a Learner's training matrix. When you perform the **Assign to Learner** action, Vault creates a _Learner Role_ record of the _Individual Learner Role_ object type and assigns it to the _Persons_ chosen in the action dialog. Vault then adds the _Curriculum_ to that _Individual Learner Role_. Each _Person_ can only have one _Individual Learner Role_, but each of these can include up to the standard limit of _Curricula_.

### Curricula Assignment Approval

If you want to ensure that assignment of a _Curriculum_ is approved by the appropriate parties, an Admin can configure a conditional entry action on the _Individual Assignment Request Lifecycle_ to check the value of the _Requires Approval_ field on the _Curriculum_ record and, if necessary, start a review and approval workflow.

## Ad-Hoc Direct Assignments {#direct-assignment}



<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 <a href="/en/gr/735720/"><strong>Require Retraining</strong></a> action released in 24R3 introduces the ability to re-issue assignments for <em>Training Requirements</em> already present within a Learner’s training matrix. This method should be used in lieu of Direct Assignment for issuing retraining in most cases. If a Learner does not need to complete a future assignment based on recurrence or a document update, Direct Assignment is sufficient.</p>
    </div>
  </div>
</div>



Direct assignments allow you to manually issue training assignments to Learners on an as-needed basis, separate from the system-managed job process. This is useful for situations that require Learners to train on documents that may not be part of their normal training matrix. You can also use a direct assignment action to issue assignments for all requirements within a _Curriculum_.

In contrast to the **Assign to Learner** and <a href="/en/gr/735720/">**Require Retraining**</a> actions, Direct Assignments can circumvent automation processes. This means:
* All assignments issued via Direct Assignment are truly ad-hoc or one-off, and the Learner does not receive recurrence training or retraining based on document updates.
* When a requirement's referenced _Quiz Design_ is updated, Vault does not update the Direct Assignment's quiz.
* When <a href="/en/gr/8295581/">configured</a>, Training Admins can create Direct Assignments with an optional _Due Date_. This means Learners are permitted to complete direct assignments at their own pace and are not required to complete them within a specified timeframe. Vault categorizes these assignments as having **No Due Date** on the <a href="/en/gr/66151/#status-panel">Learner Homepage</a>.

If instead you want a _Curriculum_ outside of a _Learner Role_ to integrate into a Learner's training matrix and respect training rules like prerequisites and substitutes, you should use **Assign to Learner**.

<a id="training-limit-8"></a> You can send a single direct assignment to up to 500 Learners.

### Creating Direct Assignments

<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>: Creating or canceling a direct assignment does not affect the automation process. Assignments created with the direct assignment action are ad-hoc and are not tracked in training matrices.</p>
    </div>
  </div>
</div>



To create a direct assignment for a single _Training Requirement_:

  1. Navigate to a _Training Requirement_ in the _Ready for Use_ lifecycle state.
  2. Select **Direct Assignment** from the **Actions** menu. This action will not appear unless all the documents in the _Training Requirement_ are in a _Steady State_ or _Ready for Training_ lifecycle state.
  3. Enter required fields and click **Continue**. 
     * You can select multiple _Persons_ in the **Learners** field.
     * When the **Due Date** is optional and remains blank, Vault does not enforce this value and categorizes the assignment as having **No Due Date** on the <a href="/en/gr/66151/#status-panel">Learner Homepage</a>.

To create a direct assignment for a _Curriculum_:

  1. Navigate to a _Curriculum_ in the _Available_ lifecycle state.
  2. Select **Direct Assignment** from the **Actions** menu.
  3. Populate fields as required.
* You can select multiple _Persons_ in the Learners field.
* When the **Due Date** is optional and remains blank, Vault does not enforce this value and categorizes the assignment as having **No Due Date** on the <a href="/en/gr/66151/#status-panel">Learner Homepage</a>.
* The value you select for **Apply to Training Requirements in** indicates whether Vault should create _Direct Assignment Request_ records for _Training Requirements_ in **Available States Only** or **All States Except Retired**.
  1. Click **Continue**.

### Canceling Direct Assignments

You can cancel direct assignments in several ways:

  * Move the related _Training Requirement_ or _Curriculum_ to the _Retired_ state. This cancels any direct assignments immediately.
  * Move documents in the _Training Requirement_ to a document lifecycle state which has the **Cancel Open Training Assignments** entry action configured.
  * Set the _Person_ record _Status_ to `Inactive`, or set its _Training Eligibility_ to `Ineligible`.
  * Select **Change State to Cancelled** from the **Actions** menu. This action is only available for a training assignment created via a direct assignment (_Created Via Direct Assignment_ field is set to `Yes`).

## Direct Assignment Configuration Overview

To configure Direct Assignment:

  1. Configure the <a href="/en/gr/43127/">_Direct Assignment_ user action</a> for the _Training Requirement_ object.
  2. Select the appropriate object type checkbox under **Objects** > **Training Requirement** > **Object Types**. Select **Edit Object Type Fields** in the action menu to make this checkbox available.
  3. Ensure appropriate users have _Execute_ permission for the _Direct Assignment_ user action.
  4. <a href="/en/gr/47850/">Configure Atomic Security</a> on the _Direct Assignment_ lifecycle for the _Direct Assignment_ user action.
  5. Optional: <a href="/en/gr/8295581/">Configure</a> optional due date functionality, where Learners are permitted to complete direct assignments at their own pace and are not required to complete them within a specified timeframe.

### Related Objects

  * **Direct Assignment User Input** houses data entered when you create a direct assignment. For example, due dates, learners, and the reason for the assignment. Modify the page layout of this object to add or remove fields in the dialog box. As this object is intended only to collect data, we recommend that any reporting, searching, or other related functions be performed against the _Direct Assignment Request_ object.

  * **Direct Assignment Request** copies data from the _Direct Assignment User Input_ object. When this object moves into the _Issued_ state, Vault creates a training assignment and issues it to relevant learners. Vault does not copy over custom fields added to the _Direct Assignment User Input_ object. The _Training Assignment_ record contains a reference to the _Direct Assignment Request_ record, and the _Direct Assignment Request_ record contains a reference to the _Direct Assignment User Input_ object.

### How Vault Issues Direct Assignments

When using the **Direct Assignment** action on a _Curriculum_, Vault issues _Training Assignments_ for _Training Requirements_ that contain documents in a _Steady State_ or _Ready for Training_ lifecycle state only.

Vault creates a _Direct Assignment User Input_ record and a _Direct Assignment Request_ object record. The  _Direct Assignment User Input_ record contains a list of comma separated _Person_ ID values in the _Learners_ (`learners__v`) text field. This record collects data only, and we recommend users use the _Direct Assignment Request_ object for reporting and searching.

The _Direct Assignment Request_ record contains:

  * The _Requested By_ field that is set to the person's name who executed the user action.
  * Other field values such as _Learner_, _Due Date_, _Reason_, and _Training Requirement_. Vault copies these values from the _Direct Assignment User Input_ record.

Vault immediately moves _Direct Assignment Request_ records into the _Issued_ state, which creates and issues a training assignment with the following properties:

  * The _Training Assignment_ record has a reference to the _Direct Assignment Request_ record.
  * The _Created Via Direct Assignment_ field is set to `Yes` on the _Training Assignment_ record.
  * If the Training Admin created the direct assignment <a href="/en/gr/8295581/">without a Due Date</a>, the resulting assignment's Due Date field remains blank, and the Due Date Timing field is set to "No Due Date".

If Vault encounters problems when creating _Direct Assignment Request_ or _Training Assignment_ records, an email is sent to the user who initiated with the Direct Assignment action.

<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>: Adding or editing entry criteria on the <em>Direct Assignment Request</em> lifecycle may prevent Vault from changing the state of a <em>Direct Assignment Request</em> from <em>Created</em> to <em>Issued</em>. This would mean Vault would not automatically create a training assignment after you use the <em>Direct Assignment</em> action.</p>
    </div>
  </div>
</div>



## Integrating Veeva Training with Veeva QMS

You can also issue a training assignment from a QMS process. For example, a CAPA action could require that certain users be trained on a training requirement.

To set this up:

  1. On the _Direct Assignment Request_ object, create an object reference field to the target quality process. For example, _CAPA Action_.
  2. Create an object type for the quality process you want to integrate with.
  3. Associate the _Requested By_ field and the object reference field to that object type.
  4. On the page layout for the target quality process, add a related object for _Direct Assignment Request_.

To issue an assignment:

  * From your quality process, create a _Direct Assignment Request_ record. If _Requested By_ is not set, Vault populates that field with the user's name who created the record.
  * Change the state of the related _Direct Assignment Request_ record to _Issued_.
  * Once in _Issued_, Vault creates a _Training Assignment_ record.

## Related Permissions

You will need the following permissions to work with direct assignments:

|Type|Permission Label|Controls|
|--- |--- |--- |
|Security Profile|Objects: Training Requirement: Object Action Permissions: Execute|Ability to view and execute the Direct Assignment user action.|
|Security Profile|Objects: Direct Assignment User Input: Create|Ability to view and create Direct Assignment User Input records.|
|Security Profile|Objects: Direct Assignment User Input: Object Control Permissions: View|Ability populate Learners on Direct Assignment User Input records.|


  [1]: #assign-to-learner
  [2]: #direct-assignment
