RIO Ed - Program Transition
rio_ed:programTransition
Table of Contents
RIO Ed - Program Transition Wizard
| Component Name | RIO Ed - Program Transition |
| API Name | rio_ed:programTransition |
| Type | Standalone |
| Recommended Pages | Academic Program page for internal experience |
| Supported In | Salesforce Internal |
Overview
Introduced in v3.24, the Program Transition Wizard is a new component that allows users to safely transition existing Program Enrollments to a new Program Plan. Using the wizard, all associated Course Connections, PE Groups, and Program Pathway assignments are restructured to reflect the new plan.
This is useful when a Program Plan is being retired or replaced, and you need to move currently enrolled students onto the new plan without losing credit for work they've completed.
Through the use of a Job Queuing framework, updating all of the relevant information can be queued up and performed in a few clicks.
Setup
Data Setup
All Courses from the old Program Plan should have the same or equivalent Course accessible in the new Program Plan.
In cases where the Course is being replaced, a replacement course can be created via an Agreement Course. Courses on the old plan that are mapped to a replacement course via an Agreement Course (with Use For Auto Credit Transfer enabled) are automatically reparented to the equivalent Course in the new plan, and a PE Course Replacement record is created to track the relationship.
Courses that have no match on the new plan and no Agreement Course mapping are considered orphaned, and any Program Enrollment containing an orphan Course Connection is excluded from the transition and marked as failed so it can be resolved and retried.
Component
The RIO Ed - Program Transition component needs to be added to the Academic Program (Account) lightning record page.
Custom Metadata
The Program Transition job metadata needs to be active in Setup > Custom Metadata > Job Queue Config.
Based on the data and custom automations in your Salesforce instance, there are 2 fields that might need to be updated: the Job Generator Batch Size and the Job Handler Batch Size.
If you are consistently hitting Apex CPU timeout errors, you may need to lower these numbers.
- Job Generator Batch Size:
- The number of records queried at a time when generating the transition jobs.
- By default, we set this to 100.
- Job Handler Batch Size:
- The number of Program Enrollments transitioned at a time.
- By default, we set this to 5.
Usage
Main Screen
The main screen will show any Program Transition Job Queues for the given Academic Program. By default, the newest jobs will be displayed at the top.
To start a new job, click the “New” button.

New Jobs
The New Job screen is split into four steps.
Step 1 - Plan & Pathway Selection
Select the source and target plans for the transition:
- Existing Program Plan: The Program Plan to transition FROM. Must belong to the current Academic Program.
- New Program Plan: The Program Plan to transition TO. Must be a different plan from the same Academic Program.
-
New Program Pathway: The Program Pathway to be assigned to all transitioned Program Enrollments. The options shown are the Program Pathways that belong to the selected New Program Plan.
- (This field will not appear until you have selected the New Program Plan)

Step 2 - Program Enrollment Selection
Choose which Program Enrollments to include in the transition:
- All: Applies the transition to all Program Enrollments currently assigned to the existing plan (filtered by the Program Enrollment Statuses configured on the component - Current by default).
- Manual Selection: Allows specific Program Enrollments to be selected from a filterable datatable. Optional filters include Program Offering, Class Year, and Class Standing.
Note: The Program Enrollment table is displayed only if "Manual Selection" is chosen.

Step 3 - Transition Rules
- Update credits of existing completed course connections?: If Yes, credits are copied from the old Program Plan requirements to the matching new ones.

Step 4 - Summary
This screen provides a complete summary of all the options you have selected.

Once ready, click “Add Job”.
Note:
Job Queue records will be created and processed using the Salesforce Apex Queue system.
This system waits until there are available resources, and then runs in the background automatically.
Depending on how many Program Enrollments are affected, or how many other jobs are already running, it's possible that not all jobs will show up immediately after returning to the main page - that's okay!
The code will continue to process and add the jobs behind the scenes. You can click the Refresh button in the dropdown menu after a few seconds and the rest of the jobs should show up.
A summary of the transition (Job Queue Id, from/to Program Plan, whether credits were updated, who submitted it, and when it completed) is stored on each transitioned Program Enrollment's Program Transition Summary field once processing finishes.
Dropdown Menu
The dropdown menu next to the “New” button provides additional options:

Cancel Jobs
You can select Job Queues in the table, then choose to Cancel Jobs. This only works for jobs that have not started Processing.
Retry Jobs
You can select a failed Job Queue in the table to choose to Retry Jobs. From here, you will have the option to retry all of the records, or only the records that failed - for example, only the Program Enrollments that failed due to orphan courses, once those have been resolved.
Refresh
This option can be used to refresh the list of Job Queue records. Use this to retrieve updated statuses as jobs complete, or update the queue when many jobs are being added at once and haven't all been displayed yet.
Clear All Jobs
This will delete all Job Queue records related to the current Academic Program.
Help
This will give the user a quick in-component summary of how to use the wizard.
Troubleshooting
Program Enrollment has course connections referencing courses not present on the new plan
If a Program Enrollment fails with this message, it has a Course Connection for a Course that does not exist on the New Program Plan and is not mapped to a replacement course via an Agreement Course (with Use For Auto Credit Transfer enabled). Add the missing Plan Requirement Course to the new plan, or create/update an Agreement Course mapping, then retry the failed job.
Developer section
| Attribute Name | API Name | Description |
|---|---|---|
| Modal Title | modalTitle |
Component title (Default: Program Transition Wizard) |
| Modal Icon Name | modalIconName |
Component icon (Default: standard:work_plan_template) |
| Job Operation | jobOperation |
The job operation name that matches the Job Queue Config custom metadata. (Default: Program_Transition) |
| Job Queue Group Fields | jobQueueFields |
Semi-colon separated list of Job Queue fields for the table. (Default: Name;CreatedDate;rio_ed__Total_Records__c;rio_ed__Success_Records__c;rio_ed__Error_Records__c;rio_ed__Status__c) |
| Job Queue Group Statuses | jobQueueStatuses |
Semi-colon separated list of Job Queue statuses to show in the table. (Default: Pending;Processing;Completed;Failed) |
| Job Queue Table Max Height | jobQueueTableMaxHeight |
Job Queue Table Max Height (Default: 500) |
| Program Enrollment Fields | programEnrollmentFields |
Semi-colon separated list of Program Enrollment fields for the Program Enrollment selection screen. (Default: Name;hed__Contact__c) |
| Program Enrollment Statuses | programEnrollmentStatuses |
Semi-colon separated list of Program Enrollment statuses used to filter the Program Enrollments displayed and included in the transition. (Default: Current) |
| Program Enrollment Table Max Height | programEnrollmentTableMaxHeight |
Program Enrollment Table Max Height (Default: 500) |
| Program Enrollment Table Maximum Row Number | programEnrollmentTableMaximumRowNumber |
Maximum number of Program Enrollment rows queried for the Manual Selection datatable. (Default: 500) |
| Debug Mode | enableDebugMode | Enable debug mode |