**Source URL:** https://quality.veevavault.help/en/lr/627014/index.md

# Curriculum Outcomes

Curriculum Outcomes are a set of Training Admin-managed records which define how Vault should execute automatic updates for a given _Outcome Type_ when Learners complete assignments for all _Training Requirements_ within a given _Curriculum_.

When your organization's training program requires Learners to complete training on Vault functionality before an Admin grants access to that functionality, Curriculum Outcomes can automatically perform this process based on a set of predefined _Outcome_ records. This can eliminate or reduce manual completion tracking, communication, and Vault record creation steps from a Vault Admin's day-to-day activities.



<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>: This feature must be <a href="/en/lr/627014/#configuring-curriculum-outcomes">configured</a> by a Vault Admin in Veeva Training and Study Training Vaults.</p>
    </div>
  </div>
</div>



## Feature Dependencies
For the optimal Training Admin experience, we recommend first configuring [Curriculum Sequencing & Prerequisites](/en/lr/589032/). This feature's **Manage Curriculum Rules** action allows a Training Admin to additionally define an outcome for a specific _Learner Role_ and _Curriculum_ pairing using that feature's user-friendly rule builder.

When these features are not configured, Training Admins wishing to [define an outcome][5] for this scenario must manually locate and update a Vault-generated [record][6].

## Use Case: Add Application Role

VeePharm's training procedures specify that any Learner who trains on both the "Primary Packaging" and "Secondary Packaging" *Curricula* is automatically qualified to evaluate Learners completing on-the-job *Training Assignments* for the Primary Packaging *Curriculum*. To do this, VeePharm's Training Admin defines:

* A [Curriculum Prerequisite](/en/lr/589032/#defining-curriculum-prerequisites) to ensure these Learners train on both curricula in the required order.
* A new outcome rule for the Secondary Packaging *Curriculum*, such that Vault adds Learners to the "Prospective Evaluator" *Application Role* that VernBio's Vault [configuration](/en/lr/72730/#ta-workflow) references when initiating workflows for *Evaluation Training Assignments*.

To process this outcome, Vault creates a new [*User Role*][2] record linking newly-qualified Learners to the Prospective Evaluator *Application Role* via their *User* record. With the new role, Vault includes these users in the list of evaluators from which Primary Packaging *Curriculum* Learners can [select](/en/lr/54488/#evaluation) a colleague to evaluate them.

<a href="https://platform.veevavault.help/assets/images/curriculum-outcomes-add-app-role.png" data-lightbox="curriculum outcomes" data-title="" data-alt="rule to add an application role">
  <img class="docimage" src="https://platform.veevavault.help/assets/images/curriculum-outcomes-add-app-role.png" alt="rule to add an application role" style="max-width: 100%;"  />
</a>

## How Curriculum Outcomes Work

Generally, Curriculum Outcomes enable organizations to dynamically manage an aspect of their capabilities within Vault, based on their completion of a given *Curriculum* that covers that capability. In this context, a Vault user's "capabilities" refers to how they interact with Vault according to various security configurations (via *Application Roles* or user-managed Groups), or their *Learner Role* assignments.

Supported [outcome types][1] can be defined by Training Admins for:

* All instances of a *Curriculum* in the matrix, or
* A specific *Learner Role* and *Curriculum* pairing.

Once a Learner completes the last *Training Assignment* to fulfill the curriculum, Vault processes the outcome by granting or revoking access according to the configured outcome via the *Curriculum Outcome Fulfillment* hourly job. The job additionally manages the underlying [rule records][6] as a Training Admin adds or removes outcomes.

For example, in the case of adding a Learner to a *Learner Role*, Vault associates the Learner's *Person* record to the intended *Learner Role* via the *Curriculum Outcome Fulfillment* job. Then, as the Learner has not yet trained on this role's requirements, Vault assigns new *Training Assignments* via the next *Update Training Assignments* job run.

### Supported Outcome Types {#supported-outcome-types}

Curriculum Outcomes includes the below outcome types, each of which is subject to [limitations][7]. Each type corresponds to _Outcome Type_ picklist values within the _Outcome Type_ [record][6].

See [Vault Security Overview][2] for additional details.

| Outcome Type | Purpose | Example |
|---|---|---|
| Add Application Role | Creates a _User Role_ for Learners (_Users_) via _Application Roles_ | Grant the "DCC Change Authorization Approver" _Application Role_ to Learners upon completing the "Change Control Authorization" _Curriculum_. |
| Add Group | Assigns Learners (_Users_) to a user-managed Group | -Add Learners to an "Instructors" Group upon completing the "Classroom Training" _Curriculum_.<br>-Along with the Remove Group outcome below: Add Learners to a "Global Training Admin" Group upon completion of the "Global Training" _Curriculum_. In these examples, the Learners (Training Admins) operate either globally or locally. |
| Remove Group | Removes Learners (_Users_) from a user-managed Group | Along with the Add Group outcome above: Remove Learners from the "Local Training Admins" Group upon completing the "Global Training Admin" _Curriculum_. In these examples, the Learners (Training Admins) operate either globally or locally. |
| Add Learner Role | Adds Learners (_Persons_) to a _Learner Role_ | Add Learners to the "Operator Phase 2" _Learner Role_ upon completing the "Primary Packaging" _Curriculum_. |

### Vault Security Overview {#vault-security-overview}

In the Training application, individual Learners are granted a _Person_ record referencing their _User_ record. This relationship begins a chain of linked records, resulting in the Learner gaining access to the desired Vault area(s) defined by an _Application Role_ (via [_User Role_](/en/lr/69197/#assigning)) or User Managed Group.

<a href="https://platform.veevavault.help/assets/images/curriculum-outcomes-2-vault-security-overview.png" data-lightbox="curriculum outcomes" data-title="" data-alt="vault security overview">
  <img class="docimage" src="https://platform.veevavault.help/assets/images/curriculum-outcomes-2-vault-security-overview.png" alt="vault security overview" style="max-width: 35%;"  />
</a>

## Configuring Curriculum Outcomes {#configuring-curriculum-outcomes}

To configure Curriculum Outcomes:

1. Activate the _Outcome_ object types within the _Curriculum Training Rule_ and _Curriculum Training Rule Set_ objects.
2. Enable the _Display in Business Admin_ configuration option or create custom tabs for the _Curriculum Training Rule_ and _Curriculum Training Rule Set_ objects. We recommend naming custom tabs "Curriculum Outcome Rule" and "Curriculum Outcome Rule Set", respectively.
3. Within the _Curriculum_ object, add the _Create Curriculum Outcome_ action and select the **Available in All Lifecycle States** configuration option. In the **Atomic Action Security Defaults** dialog, select **Execute** for all lifecycle states.
4. Assign the _Create Curriculum Outcome_ action to the desired _Curriculum_ object's _Curriculum_ object type, as well as any desired custom object types.
5. Ensure Training Admins are assigned the appropriate [permissions][4] to work with this feature.
6. [Activate](/en/lr/22897/#how-to-edit-job-definitions) the _Curriculum Outcome Fulfillment_ job. We recommend additionally updating the job's owner to a user or group who should be notified in the event the job fails. Optionally, you can update the job's default hourly interval (1).

## Defining Curriculum Outcomes {#defining-curriculum-outcomes}

Generally, Vault can process [supported outcomes][1] for either all instances of a *Curriculum* in the matrix, or a specific *Learner Role* and *Curriculum* pairing (ideally when [Curriculum Sequencing & Prerequisites](/en/lr/589032/) are configured).

To define a new outcome for all instances of a *Curriculum* in the matrix:

1. Locate the relevant *Curriculum* record and click the <i class="fal fa-badge"></i> **Create Curriculum Outcome** button, or select the related user action.
2. In the **Curriculum Outcomes** dialog, select an outcome type from the **Select action** dropdown, for example, **Add Learner Role**.
3. Select up to ten applicable records. The records you can select may be [limited][7] based on the selected action.
4. Optional: Use the <i class="fas fa-plus-circle" style="color: #333333;"></i> and <i class="fas fa-minus-circle" style="color: #aaaaaa;"></i> to add or remove outcomes.
5. Click **Save**.

To define a new outcome for a specific *Learner Role* and *Curriculum* pairing:

1. Locate the relevant *Learner Role* and click the <i class="far fa-abacus"></i> **Manage Curriculum Rules** button, or select the related action.
2. Vault loads the **Curriculum Sequencing Rule Builder** page. Hover over the desired *Curriculum* and select <i class="fal fa-pencil-alt"></i> **Create Rule**.
3. Select the **Outcomes** tab and follow Steps 2-5 above.

When your Vault does not have this configuration, you can instead create an outcome for the *Curriculum*, then update the related *Curriculum Training Rule Set* record's *Learner Role* field with the applicable record.

To update and/or remove these outcome configurations, locate them per the above steps and apply your updates.

### Curriculum Outcome Objects {#outcome-objects}

As Training Admins add and remove outcomes, Vault automatically creates or deletes the underlying rule records via the *Curriculum Outcome Fulfillment* job:

* A *Curriculum Training Rule Set* defining the target *Curriculum*, and, when applicable, the specific *Learner Role* associated with the target *Curriculum*.
* A *Curriculum Training Rule* defining the [_Outcome Type_][1] or types for the target *Curriculum Training Rule Set*. 
    * *Outcome Type* picklist values represent each supported type.
    * *Curriculum Training Rule Type* values differentiate outcome rule records from rules related to [prerequisites](/en/lr/589032/).

Vault additionally deletes these records when a Vault Admin saves an outcome-related *Application Role* with a selected *Permission Set*, as Curriculum Outcomes [does not support][7] this scenario.

Secondary to these are the system-managed records Vault uses to track a given outcome:

* Upon Learner assignment, *Curriculum Completion Status* records are automatically created for each combination of Learner (*Person*), *Learner Role*, and *Curriculum*. This record's [*Completion Percentage*](/en/lr/24483/) and *Latest Automation Update* field can provide useful completion statistics as a Learner works through their assignments.
* Upon Learner completion, Vault marks the completion status record as *Complete* (via the *Current Completion Status*), then creates an accompanying *Curriculum Outcome Status* record.

## Limitations {#limitations}

Curriculum Outcomes are not supported for:

* Adding Learners to *Application Roles* with an associated permission set.
    * When a Training Admin defines an outcome, Vault filters out these roles.
    * When a role is already defined within an outcome and a Vault Admin attempts to populate the **Permission Set** field, Vault displays an impact alert. If the Vault Admin proceeds with selecting a permission set, Vault deletes the rule (*Curriculum Training Rule*). 
* Adding Learners to Groups with an associated security profile. 
    * When a Training Admin defines an outcome, Vault filters out any non-[user managed group](/en/lr/3200/#user-managed-groups). Only user managed groups are supported for this feature.
    * When a group is already defined within an outcome, Vault Admins can still populate the **Included Security Profiles** field. When this occurs:
        * The *Curriculum Outcome Fulfillment* job logs the event.
        * The next time a Training Admin updates the outcomes defined for impacted curricula, Vault displays an impact alert with the impacted rule and group details.

See [additional details][1] on supported outcome types.

### Record Limits

Training Admins can define one outcome (*Curriculum Training Rule Set*) per *Curriculum* or *Learner Role*-*Curriculum* pairing. This means a given curriculum can have defined outcomes for all instances in the matrix, or just within the context of its relationship with a *Learner Role*, but not both.

Each *Curriculum* can include one outcome per [outcome type][1] (*Curriculum Training Rule*, according to its *Outcome Type*).

When defining an outcome, Training Admins can select up to ten records for each type (*Application Role*, *Learner Role*, and Group).

## Related Permissions {#permissions}

Training Admins working with Curriculum Outcomes must be assigned a permission set with the below permissions. If your Vault is configured for [Curriculum Sequencing & Prerequisites](/en/lr/589032/), some of these permissions may already be in place.

| Permission Label | Permission |
|---|---|
| Admin: Users | Assign Group |
| Admin: Groups | Read, Assign Users |
| Objects: Curriculum | Read |
| Objects: _Curriculum Training Rule_ and _Outcome_ object type | Read, Create, Edit, Delete |
| Objects: _Curriculum Training Rule Set_ and _Outcome_ object type | Read, Create, Edit, Delete |
| Objects: Learner Role | Read |
| Objects: Learner Role-Curriculum Order | Read, Edit |



<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 defining outcomes, Training Admins can select any <em>Application Role</em>. This includes roles they cannot normally see when manually assigning <em>User Roles</em> via a <em>User</em> record.</p>
    </div>
  </div>
</div>



[1]: #supported-outcome-types
[2]: #vault-security-overview
[3]: #configuring-curriculum-outcomes
[4]: #permissions
[5]: #defining-curriculum-outcomes
[6]: #outcome-objects
[7]: #limitations