# Configuring Classroom Training Requirements (Training Management)

[QualityOne Vaults](/en/lr/55180/) provide different types of _Training Requirements_ for Learners to complete their curricula. Sometimes an organization needs Learners to attend instructor-led courses as part of their training matrix requirements. Using the _Classroom Training Requirement_ type, Training Administrators can enable Learners to fill those requirements by attending class sessions. This article describes the steps necessary to configure _Classroom Training Requirements_ and schedule classes.

Classroom Training assignments are scheduled, instructor-led training sessions. Training Administrators can:

* Add Learners to a class roster, who then receive notifications to attend scheduled sessions
* Provide class materials to Learners in the form of Vault documents
* Associate a quiz with each class session

The instructions here describe how to create an _Classroom Training Requirement_. See [Configuring Training Management](/en/lr/55154/#training-requirement-types) for details about creating other types of _Training Requirements_.

<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 article describes a sample configuration. The labels for lifecycle states, user actions, sections, and additional components are all configurable.</p>
    </div>
  </div>
</div>



## Configuring Classroom Training Overview {#overview}

Configuring your Vault to use Classroom Training involves the following steps:

1. **Create a Classroom Training Requirement**: Create the requirement, add any class materials, and associate it with curricula. When ready, make the requirement available for automated and direct assignment.
2. **Schedule a Class**: Make a classroom training instance by creating a _Class Schedule_ object record and associating it with an existing _Training Requirement_. Determine the roster for the scheduled class, schedule sessions, and associate quizzes with the _Classroom Schedule_. When ready, make the schedule live, triggering notifications to Learners.
3. **Grading**: For the _Class Schedule_ lifecycle, configure the _Set Class Completion_ user action or entry action.
4. **Issuing a Quiz**. For the _Session-Quiz Design_ lifecycle, configure the _Make Available_ user 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>: Depending on your Vault’s creation date and which features are currently enabled and configured, some of the steps described in this article may be unavailable or already complete in your Vault.</p>
    </div>
  </div>
</div>



## About Class Rosters {#class-rosters}

Once a Training Administrator creates a _Classroom Training Requirement_ and associates it with one or more [curricula](/en/lr/55154/#curricula) (or directly [assigns it to a Learner](/en/lr/55163/)), the Vault training job creates _Classroom Training Assignment_ records.

As QualityOne Training issues _Training Assignments_, it queues up the appropriate Learners and allows the Training Administrator to populate a class roster with those queued Learners at the time they create a _Class Schedule_. Learn more about configuring _Class Schedules_ below.

## How to Create a Classroom Training Requirement {#create-classroom}

The following steps describe creating a _Classroom Training Requirement_. See [Configuring QualityOne Training Management](/en/lr/55154/#training-req) for information about creating other types of _Training Requirements_.

1. Create a new _Training Requirement_ object record from **Business Admin > Objects**, a custom object tab, or from the details page of the related curriculum.
2. In the _Create Training Requirement_ dialog, select **Classroom Training Requirement** from the drop-down. Once you create a _Training Requirement_, you cannot change its type.
3. Fill in the required details. QualityOne Training lists the _Name_ field internally and displays the _Title_ on the Learner's [class details task page](/en/lr/55170/#how_to_complete_a_classroom_training_assignment). Select a _Class Completion Criteria_:
  * **Instructor sets Class Completion Status**: Select this option if you want the instructor to set _Class Completion Status_ for each _Class Roster_ record manually after reviewing attendance and quiz grade values. See the [best practices information][7] for _Class Roster_ for configuration recommendations.
  * **System sets Class Completion Status**: Select this option if you want Vault to calculate and set _Class Completion Status_ for each _Class Roster_ record automatically based on the _Learner Attendance Status_ picklist value on the _Session Roster_ record for only sessions marked as required, and, if there was a quiz, based on the _Quiz Passed?_ value of the _Quiz Issuance Tracker-related_ record.
4. Optional: Select a document to provide the **Learner Homepage Card Image**. If your Vault has the [Learner Homepage](/en/lr/71126/) enabled, the first page of the document selected in this field will be shown as the card image in the card view.
5. Optional: Select the **Is A Substitute Training Requirement** checkbox if you wish to use this _Training Requirement_ as a [substitute](/en/lr/71120/).
6. Click **Save**.
7. Optional: Add the _Training Requirement_ to one or more curricula by clicking into the _Training Requirement_ object record and clicking **Add** within the _Curricula_ section.
8. Optional: On the _Training Requirement_ object record detail page, add any training documents to the _Class Materials_ section. These class materials are carried over to the _Class Schedule_. You cannot add ZIP files as training documents in this type of _Training Requirement_. When documents on a _Classroom Training Requirement_ are revised, Vault creates a _Training Requirement Impact Assessment_ record.

The _Classroom Training Requirement_ will not be eligible for assignment until the _Training Requirement_ object record enters a [training-eligible lifecycle state](/en/lr/55154/#eligible-lifecycle-states). The _Update Training Assignments_ job creates _Classroom Training Assignment_ records. See [Best Practices for Classroom Training Configuration][7] for more details on _Classroom Training Assignment_ creation behavior.

### Training Requirement Recurrence {#train-req-recur}

QualityOne Training provides two options for scheduling recurring issuance of _Training Assignments_ using the _Recurrence Type_ field. If _Recurrence Type_ is left blank, the application defaults to the _Relative_ picklist value upon saving.

#### Relative Recurrence {#relative-recur}

A _Training Requirement_ using this recurrence option can be issued at different times for different Learners. Vault calculates a relative recurrence from when the Learner was assigned a Training.

For example, if a Learner was assigned training on August 1st, 2019, the _Recurrence_ is set to _1_, and the _Recurrence Unit_ is set to _Year_, Vault will assign the next training for that Learner on August 1st, 2020.

#### Absolute Recurrence {#abs-recur}

A _Training Requirement_ using this recurrence option is issued at the same time for all applicable Learners. At the _Next Training Date (Recurrence)_, Vault issues training records to Learners. Vault then automatically increments the _Next Training Date (Recurrence)_ value based on the _Recurrence_ and _Recurrence Unit_ field values.

## How to Schedule a Class {#schedule-class}

To create a _Class Schedule_:

1. Create a new _Class Schedule_ object record from **Business Admin > Objects** or a custom object tab.
2. Fill in the required details. Vault displays text in the _Class Overview_ field on the Learner's class details task page. Select the _Classroom Training Requirement_ that this class should fulfill.
3. Click **Save**.

To populate the class roster with Learners:

1. Click into a _Class Schedule_ object record from **Business Admin > Objects** or a custom object tab.
2. In the _Class Roster_ section, click **Add** to open the _Add to Class Roster_ dialog box. This dialog box lists Learners with open _Training Assignments_ that fulfill the chosen criteria. Click the **plus** (**+**) icon in the top section of the dialog box to add additional criteria.
3. Click the **plus** (**+**) icon next to the names of applicable Learners in the bottom section of the dialog box to add them to the class roster.
4. Click **Save** to finish editing the class roster.

QualityOne Training does not create _Session Roster_ records automatically when you add new Learners. You must configure the _Update All Session Rosters_ action as either a user action or entry action on the _Class Schedule_ object lifecycle and trigger this action to add new Learners to the appropriate session rosters.

To create and schedule sessions:

1. Click into a _Class Schedule_ object record from **Business Admin > Objects** or a custom object tab.
2. In the _Sessions_ section, click **Create**.
3. In the _Create Session_ dialog box, fill in the required details. If you select **No** for **Is this a required session?**, Vault disregards the session attendance when calculating completion.
4. Select a value for _Session Closure Criteria_:
  * **Session cannot be closed if there are incomplete Quizzes**: All Learners must pass the Quiz prior to closing the session.
  * **Session can be closed if there are incomplete Quizzes**: Learners are not required to pass the Quiz.
5. Click **Save**.

To add a quiz to a session:

1. On required sessions, Select **Yes** for the _Require Quiz?_ field on a required session.
2. In the _Quiz to Issue_ section of the _Session_ object record, click **Create** to open the _Create Session-Quiz Design_ dialog box. You can only select a Quiz for a required session, and you can only select one (1) quiz.
3. Click into the _Quiz Design_ field to search for and select a quiz design.
4. Click **Save**.

Once you are satisfied with the details of the _Class Schedule_, you can move it to the _Scheduled_ state. When a _Class Schedule_ enters the _Scheduled_ state, all affected Learners receive Vault notifications and emails about the upcoming scheduled training, including its name, start date, and end date. Vault adds all Learners to the sharing settings for the applicable training materials and the _Class Schedule_, _Session_, and _Class Roster_ object records. Learners can view the task page for the classroom training.

## Facilitating Classroom Training {#facilitate}

The assigned _Instructor_ for a _Class Schedule_ object record is the facilitator for the classroom training.

### How to Facilitate a QualityOne Training Class {#facilitate-class}

To facilitate a scheduled classroom training in Vault:

1. Click into a _Class Schedule_ object record from **Business Admin > Objects** or a custom object tab.
2. Select **Change State to Class in Progress** from the **Workflow Actions** menu..
3. In the _Sessions_ section, click into the first session of the class.
4. In the _Session Rosters_ section, click in the _Learner Session Attendance Status_ column for each Learner and select either **Present** or **Absent**, as appropriate.
5. Perform the classroom training.

If the session has a quiz:

1. Click the **Actions** menu next to the quiz record in the _Quiz To Issue_ section and select **Issue Quiz to Learners**.
2. If the session was configured to allow the session to close with incomplete quizzes, you can move on to the next step. Otherwise, allow Learners time to complete the quiz. See [How to Schedule a Class][4] for more details.

To complete a session:

1. From the _Session_ record, select **Change State to Session Completed** from the **Workflow Actions** menu.
2. Repeat the steps above for each remaining session.

To complete the class:

1. Select **Change State to Complete** from the **Workflow Actions** menu to close the _Class Schedule_ object record and complete the class.
2. Optional: If the _Class Schedule_ was configured with the [_Instructor sets Class Completion Status_][5] option, click in the _Class Completion Status_ column in the _Class Roster_ section and select a status for each Learner.
3. Once the _Class Completion Status_ is set, the Learner's _Training Assignment_ is either in the _Completed_ state or in the _Did Not Complete_ state. If the Learner's _Training Assignment_ is in the _Did Not Complete_ state, the Learner must attend another class to get a completion credit for the _Training Assignment_.

## Best Practices for Classroom Training Configuration {#best-practice}

Classroom training is a highly configurable component of QualityOneTraining. Following the below guidelines can help prevent misconfiguration or unexpected behavior:

* **Classroom Training Assignment Impact**: When you create a _Class Schedule_, documents from the _Classroom Training Requirement_ are copied to it. Documents can be added or removed on the _Class Schedule_ record. Even if all documents are removed from the _Class Schedule_, if the documents on the _Classroom Training Requirement_ are updated, it impacts the _Classroom Training Assignment_.
* **Class Roster updates**: QualityOne Training does not create _Session Roster_ records automatically when you add a new Learner. The _Update All Session Rosters_ action is available both as a user action and entry action. You must trigger this action to add Learners to the appropriate session rosters.
* **Part of Class**: When you add a Learner to a _Class Roster_, the system is actually adding the Learner's _Training Assignment_ to the _Class Roster_. On the _Training Assignment_, the _Part of Class_ (`part_of_class__v`) value is set to true, indicating that the _Classroom Training Assignment_ is part of a class. This _Classroom Training Assignment_ cannot be part of another _Class Roster_.
* **Classroom Training Requirement changes**: 
  * Evaluate the impact of a _Classroom Training Requirement_ on open _Training Assignments_ prior to moving it to the _Retired_ state. If a _Classroom Training Requirement_ record enters the _Retired_ state (`retired_state__v`), any open _Training Assignments_ are cancelled, even if the _Training Assignment_ is part of a class (`part_of_class__v= true`).
  * For other cases where a _Classroom Training Requirement_ is changed, such as its recurrence, document revision, or a document change, open _Training Assignments_ are not cancelled if they are part of a class (their `part_of_class__v` value is _True_).
* **Do Not Re-Train**: If the _Do Not Re-Train_ field is set to _Yes_ on the _Training Requirement_, there is an open _Training Assignment_, and the _Training Assignment_ field _Part of Class_ value is _Yes_ (`part_of_class__v=true`), Vault still creates a new classroom _Training Assignment_. In future releases, an update will prevent Vault from creating an additional _Training Assignment_.
* **Quizzes**: If a _Quiz Design_ is updated on the _Session-Quiz Design_ object join record, there is no indication to an Instructor to re-issue the quiz. The Instructor must re-perform the _Make Available_ user action.

## Configuring User Permissions {#user-permissions}
  
You must ensure users have the appropriate read and create [permissions](/en/lr/22824/) to access the appropriate objects and object fields in addition to the permissions outlined below:

* Users require _Create_ access to the _Class Roster_ object and _View_ access to _Training Assignment_ records in order to add _Class Roster_ records. The _View_ access to _Training Assignment_ records can be used by custom sharing or matching rules. For example, a custom sharing rule on _Training Assignment_ that gives the Instructors group access to _Training Assignment_ records. Another example would be a custom matching rule that matches the _Training Assignment's_ originating _Training Requirement_ and the _Class Schedule's_ originating _Training Requirement_.
* Learners must have _View_ access to _Class Schedule_, _Class Roster_, _Session_, _Session Roster_, and _Location_ objects.

[4]: #schedule-class
[5]: #create-classroom
[7]: #best-practice
