RIO Ready V4: Community Transcript Setup
Table of Contents
To quickly setup the Community Transcript functionality, please follow the following steps:
Prerequisite
- S-Docs installed and configured, for more information please refer to here.
- RIO Ready V4 - Community Transcript is installed.
- S-Docs is installed and configured with run as another user, for more information refer to here
Setting up S-Docs
We need to setup S-Docs run as user feature, please refer to the guide linked here. If the Community Transcript component has been installed, most of the configuration should already be in place. However, some additional setup is required, as detailed below:
1. Update Remote Site Settings:
- Go to Setup, in the Quick Find box, search for Remote Site Settings.
- Click the Edit button next to SDocTranscriptDomain.
- Update the Remote Site URL with your domain URL.
2. Create a Self-Signed Certificate:
- Go to Setup, in the Quick Find box, search for Certificate and Key Management.
-
Click on Create Self-Signed Certificate, fill in the required details as shown in the instructions, and save it.
- Name: SDocsCert
- After saving, click Download Certificate to save the certificate to your local storage.
3. Upload the Certificate to Sdocs Connected App:
- Go to Setup, in the Quick Find box, search for App Manager.
- Find Sdocs Connected Apps (the version without "(Managed)" in the name).
- Click the down arrow next to it and select Edit.
- Check the Use Digital Signatures checkbox and upload the certificate downloaded in Step 2.
- Click save.
- Click the button “Manage Consumer Details”, verification code will be sent to your email for verification purposes.
- Copy the Consumer Key to be used in the following step.
Configure Custom Settings:
- Navigate to Setup >> Custom Setting.
- Click the link “Manage” next to SDocsSettings.
-
Create a new record with the following details:
- Name: SDocsSettings
- ConnectedAppAudienceURL: [Production]: https://login.salesforce.com OR [Sandbox]: https://test.salesforce.com
- ConnectedAppCertificateName: SDocsCert
- ConnectedAppConsumerKey: [Consumer Key in step 3.7]
- ConnectedAppLoginURL: [Production]: https://login.salesforce.com OR [Sandbox]: https://test.salesforce.com
-
ConnectedAppTokenURL: [Salesforce Domain URL, can get this by clicking your user profile in the upper right corner, under your username]
- ConnectedAppUserName: Username for run as user feature. [User must have S-Docs license and admin permission]
-
Click Save.
Activating the Flow
1. Login to Salesforce and go to “Setup”.
2. From Setup, click on Home.
3. In the Quick Find box, enter Flows. Click on Flows.
4. Click on "REDU Request Transcript Screen".
5. Click on Activate.
Adding the Flow to a Digital Experience Page and Page Layout
Digital Experience
1. From Setup, in the Quick Find box, type Digital Experiences.
2. Go to All Sites, and click Builder next to the site where you want to add the flow.
3. Navigate to the page where you'd like to place the flow, or add a new page using existing template below:
- In the community builder, click the top menu and “+ New Page”
- Click “Standard Page”, then select the preconfigured page - “My Transcript” and click next.
-
Insert the Name and URL as below then create.
- Name: My Transcript
- URL: my-transcript
-
Navigate to the My Transcript page >> Properties, update the following:
- Page Access: Requires Login
- Tick the option “Override the default theme layout for this page.”. Set the Theme Layout as “Student”
4. Publish the changes to make the flow live on the site.
Salesforce Internal
1. From Setup, go to Object Manager, and select the Contact object.
2. Navigate to Page Layout, and select the layout that should display the action button.
3. You should now see the Request Transcript button on the Contact record page.
Trigger Controller
1. From Setup, in the Quick Find box, type Custom Metadata Types.
2. Click on Manage next to the Trigger Controllers custom metadata type.
3. Look for a record named SDOC_SetContentVersion_After.
- If it exists, ensure that it is active.
- If it does not exist, create a new record with the details provided in the image below.
Assigning Permission Sets for Student Users
Ensure that newly created students in the Community are assigned the permission set "SDocs Jobs (Guest Users)" and “SDocs LWC Community User”.
Transcript Template
1. Ensure that S-Docs is installed before creating the transcript template, as this functionality is dependent on S-Docs.
2. If S-Docs is already installed, navigate to the S-Docs app by searching for it in the App Switcher.
3. Create two new templates, and fill in the details as shown in the provided image (refer to instructions or image).
Template Name: Transcript
Template Format: PDF
Template Name: Course_List
Template Format: Component
4. Download the file Transcript_10_10_2024.txt.
5. Copy the contents of the file. Then, click on the Template Editor button located in the top right corner of the Transcript record, and paste the copied content into the Template Body section of the S-Docs template.
6. Copy the contents below. Then, click the Template Editor button located in the top right corner of the Course_List record. Next, click on the Source button and paste the copied content into the Template Body section of the S-Docs template.
Course_List Source Code
<style type="text/css">table.table208 {font-family:Arial,sans-serif; font-size:9pt;width:100%;sd:repeatheader;border-spacing:0;border-width:0;}
.table208col0{text-align:left;vertical-align:text-top;font-weight:bold;font-size:9pt;font-family:Arial,sans-serif;width:0%;white-space:nowrap;}
.table208col1{text-align:left;font-size:9pt;font-family:Arial,sans-serif;width:16%;white-space:nowrap;}
.table208col2{text-align:left;font-size:9pt;font-family:Arial,sans-serif;width:32%;white-space:nowrap;}
.table208col3{text-align:left;font-size:9pt;font-family:Arial,sans-serif;width:13%;white-space:nowrap;}
.table208col4{text-align:left;font-size:9pt;font-family:Arial,sans-serif;width:16%;white-space:nowrap;}
.table208col5{text-align:center;font-size:9pt;font-family:Arial,sans-serif;width:10%;white-space:nowrap;}
.table208col6{text-align:left;font-size:9pt;font-family:Arial,sans-serif;width:13%;white-space:nowrap;}
</style>
<table border="0" class="table208">
<tbody>
<tr>
<th width="16%"> </th>
<th width="32%"> </th>
<th width="13%"> </th>
<th width="16%"> </th>
<th width="10%"> </th>
<th width="13%"> </th>
</tr>
</tbody>
<tbody><!--{{! <LineItemsSOQL>
<class>table208</class>
<column>reduivy__Individual_Academic_Progress__r.reduivy__Academic_Term__r.Name</column>
<column>reduivy__Study_Offering__r.reduivy__Study_Unit__r.reduivy__Unit_Code__c</column>
<column>reduivy__Study_Offering__r.reduivy__Study_Unit__r.Name</column>
<column>reduivy__Credits_Attempted__c</column>
<column>reduivy__Credits_Earned__c</column>
<column>reduivy__Letter_Grade__c</column>
<column>reduivy__Grade_Points__c</column>
<soql>
SELECT reduivy__Individual_Academic_Progress__r.reduivy__Academic_Term__r.Name,
reduivy__Study_Offering__r.reduivy__Study_Unit__r.reduivy__Unit_Code__c,
reduivy__Study_Offering__r.reduivy__Study_Unit__r.Name,
reduivy__Credits_Attempted__c,
reduivy__Credits_Earned__c,
reduivy__Letter_Grade__c,
reduivy__Grade_Points__c,
reduivy__Individual_Academic_Progress__c
FROM reduivy__Individual_Enrollment__c
WHERE reduivy__Individual_Academic_Progress__c = '{{!reduivy__Individual_Academic_Progress__c.id}}'
</soql>
<groupby>reduivy__Individual_Academic_Progress__r.reduivy__Academic_Term__r.Name</groupby>
</LineItemsSOQL> }}-->
</tbody>
</table>
<!--{{!
<lineitemsSOQL>
<queryname>transferHours</queryname>
<soql>
SELECT SUM(reduivy__Credits_Earned__c) totalTransferHours FROM reduivy__Individual_Enrollment__c WHERE reduivy__Individual_Academic_Progress__c = '{{!reduivy__Individual_Academic_Progress__c.id}}' AND reduivy__Credit_Transfer_Received__c = true GROUP BY reduivy__Individual_Academic_Progress__r.reduivy__Academic_Term__c
</soql>
</lineitemsSOQL> }}--><!--{{!
<lineitemsSOQL>
<queryname>summary</queryname>
<soql>
SELECT reduivy__Credits_Attempted__c, reduivy__Credits_Earned__c, reduivy__GPA__c FROM reduivy__Individual_Academic_Progress__c WHERE Id = '{{!reduivy__Individual_Academic_Progress__c.id}}'
</soql>
</lineitemsSOQL> }}-->
<div style="font-family: Arial, sans-serif; font-size: 8pt; line-height: 1.5; font-weight: bold; text-align: center; width: 100%; margin: 0 auto;">
<table style="width: 100%; border-collapse: collapse; margin: 0 auto; font-size: 9px;">
<tbody>
<tr>
<td style="font-size: 8pt; padding: 5px 10px; border: none;"><span style="display: inline-block; margin-right: 5px;">Transfer Hours:</span> <span><!--RENDER='{{!transferHours.totalTransferHours}}'!= null-->{{!transferHours.totalTransferHours format-number="###"}}<!--ENDRENDER--><!--RENDER='{{!transferHours.totalTransferHours}}'== null-->0<!--ENDRENDER--></span></td>
<td style="font-size: 8pt; padding: 5px 10px; border: none;"><span style="display: inline-block; margin-right: 5px;">Att Hours:</span> <span><!--RENDER='{{!summary.reduivy__Credits_Attempted__c}}'!= null-->{{!summary.reduivy__Credits_Attempted__c format-number="###"}}<!--ENDRENDER--><!--RENDER='{{!summary.reduivy__Credits_Attempted__c}}'== null-->0<!--ENDRENDER--></span></td>
<td style="font-size: 8pt; padding: 5px 10px; border: none;"><span style="display: inline-block; margin-right: 5px;">Comp Hours:</span> <span><!--RENDER='{{!summary.reduivy__Credits_Earned__c}}'!= null-->{{!summary.reduivy__Credits_Earned__c format-number="###"}}<!--ENDRENDER--><!--RENDER='{{!summary.reduivy__Credits_Earned__c}}'== null-->0<!--ENDRENDER--></span></td>
<td style="font-size: 8pt; padding: 5px 10px; border: none;"><span style="display: inline-block; margin-right: 5px;">Term GPA:</span> <span><!--RENDER='{{!summary.reduivy__GPA__c}}'!= null-->{{!summary.reduivy__GPA__c format-number="#,###.##"}}<!--ENDRENDER--><!--RENDER='{{!summary.reduivy__GPA__c}}'== null-->0<!--ENDRENDER--></span></td>
</tr>
</tbody>
</table>
</div>
7. Click Save & Close to complete the setup.