Prior to upgrading, you will need to find and record your currently installed version:
Note: if your current version is 2505.0, you are on the most recent package and should proceed to the Application Review Upgrade. See also: How can I tell which version of Communities I'm on when I 'manually' upgrade Communities.
Communities is an unmanaged package. You have two options to upgrade the Communities package:
With this option, you will need to Uninstall the existing Communities package and install the latest package. You will need to reapply any customizations you had previously applied.
Tip: Take screenshots, or copy them to Notepad, to document your page names/assignments before uninstalling Communities.
Upgrading Communities by deleting the package and reinstalling.
This is your "ending version" (i.e., the version you want to upgrade to). You can select any version that's higher than your current package version. Packages are cumulative, meaning the upgraded package you select includes all features from previous packages. For example, if you're upgrading from Package A to Package D, that package includes all features from Packages B and C.
If you are unsure about what customizations you have, you can save the Visualforce pages as text documents to use as a backup after upgrading. You can then use a free tool like textcompare.com to view the differences between your 'backup' file and the updated components.
CAPTCHA was introduced in the 1902.0 version of Communities. Follow the steps to Configure CAPTCHA for the Online Application.
Do not proceed to Upgrade Path Option 2. You may proceed to the Application Review Upgrade.
If you completed all the steps for Upgrade Path Option 1, you do not need to complete the following changes. With Option 2, you do not install a new package but manually apply the latest changes to the unmanaged package using the information below. If you choose this option, you must complete the steps in a sandbox environment before pushing to production via an Outbound Change Set.
Your starting package version number determines what, if any, additional configuration steps may be required. Please click the link for your initial version number (identified in Step 1 above) from the list below. You will be directed to the first step required for your upgrade and should complete all steps that follow. If you do not see your version number listed, please get in touch with the TargetX Support team.
Starting Version |
Ending Version |
Configuration Steps by Release These are the steps you need to complete, from the starting version to the ending version. For example, if your starting version is 2205.0 (May '22) and you're upgrading to 2208.6 (August '22), you'll need to complete the configuration steps for 2206.3 (June '22), 2207.0 (July '22), and 2208.6 (August '22). |
---|---|---|
2209.0 |
2210.0 (October '22) |
Item 1: Replace the TX_TestCommunities Apex Class
@isTest(SeeAllData=false)
public static testMethod void testNoRole()
System.assertEquals(ApexPages.getMessages()[0].getDetail(), 'Account Owner Missing Role');
Boolean foundError = false; for(ApexPages.Message message: ApexPages.getMessages()) { if(message.getDetail() == 'Account Owner Missing Role') { foundError = true; break; } } System.assert(foundError, '\'Account Owner Missing Role\' error not found');
|
2210.0 |
2211.0 (November '22) |
Item 1: Update the TX_SiteLogin component
<div role="alert" aria-live="rude" aria-hidden="false" class="aria-alert" id="alertZone"> Updated line: <div role="alert" aria-live="assertive" aria-hidden="false" class="aria-alert" id="alertZone">
<div class="targetx-application-form-slides" role="main"> <h1 class="targetx-application-form-title" role="banner">Sign In</h1> Updated lines: <div class="targetx-application-form-slides"> <h1 class="targetx-application-form-title">Sign In</h1>
Item 2: Update the TX_CommunitiesProvision Visualforce page
<div class="targetx-header-university-icon"></div> Updated line: <div role="img" class="targetx-header-university-icon" aria-label="Logo"></div>
Item 3: Update the TX_CommunitiesTemplate Visualforce page
<div class="targetx-header-university-icon"></div> Updated line: <div role="img" class="targetx-header-university-icon" aria-label="Logo"></div>
<meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=0"></meta> Updated line: <meta name="viewport" content="width=device-width, initial-scale=1"></meta>
<body><main> … </main></body>
|
2211.0 | 2402.0 (February '24) |
Item 1: Update TX_AutocompleteController Apex Class In this step, you’ll update the TX_AutocompleteController Apex class to public without sharing:
Original line: public with sharing class TX_AutocompleteController { Updated line: public without sharing class TX_AutocompleteController { 4. Save your changes. Item 2: Updates for School Picker In this step, you will verify if you are using Record Type filtering for Account in sharing settings and make necessary updates:
Example |
2402.0 | 2411.1 (November '24) |
Item 1: Update TX_CommunitiesSelfRegController Apex Class
if(cs.size() == 0 && !hasDuplicateUser(email)) cs = insertContactFirst() ;
if(cs.size() > 0 && cs[0].AccountId != null && String.isBlank(accountId)) accountId = cs[0].AccountId;
Note: Do not alter the lines from step 3. In the example above, the lines are not commented out, but this may differ in your organization.
|
2411.1 | 2505.0 (May '25) |
Item 1: Update TX_UniqueNicknameTests Apex Class Each block listed below is considered a complete unit. If you notice any discrepancies, replace the entire block with the recommended version and verify its functionality in a sandbox environment.
System.assert(nickname2 + '_amamama.com' == [select CommunityNickname from User where Id =:u2.Id].CommunityNickname);
System.assert(([select CommunityNickname from User where Id = :u2.Id].CommunityNickname).StartsWith(nickname2)); Note: if the above lines don’t exist in your Apex class version, follow these steps:
nickname = [select CommunityNickname from User where Id = :u2.Id].CommunityNickname; System.assertEquals(40, nickname.length());
System.assert(([select CommunityNickname from User where Id = :u2.Id].CommunityNickname).StartsWith(nickname2)); Item 2: Update TX_CommunitiesSelfReg Visualforce Page Each block listed below is considered a complete unit. If you notice any discrepancies, replace the entire block with the recommended version and verify its functionality in a sandbox environment.
<apex:commandButton action="{!registerUser}" styleClass="targetx-button" value="{!$Label.site.submit}" id="submit" onclick="this.onclick=function(){return false;}"/>
<apex:commandButton action="{!registerUser}" styleClass="targetx-button" value="{!$Label.site.submit}" id="submit" status="submitStatus"/>
<apex:actionStatus id="submitStatus"> <apex:facet name="start"> <script> var submitBtn = document.getElementById('submit'); if (submitBtn) { submitBtn.disabled = true; } </script> </apex:facet> <apex:facet name="stop"> <script> var submitBtn = document.getElementById('submit'); if (submitBtn) { submitBtn.disabled = false; } </script> </apex:facet> </apex:actionStatus>
Item 3: Update API Version on Apex Classes
Item 4: Update API Version on Apex Triggers
Item 5: Update API Version on Visualforce Pages
Item 6: Update API Version on Visualforce Components
|
Upgrading from 2206.0 | Visualforce Page:
|
Upgrading from 2209.0 | Apex Class:
|
Upgrading from 2210.0 | Component:
Visualforce Page:
|
Upgrading from 2211.0 |
Apex Class:
|
Upgrading from 2402.0 |
Apex Class:
|
Upgrading from 2411.1 |
Apex Classes:
Apex Triggers:
Visualforce Pages:
Visualforce Components:
|
Note: If you need to create the additional Apex Classes from the article listed above, check the boxes for those as well:
Note: Uploading the Change Set will send it to the Target Org; it will NOT make changes in your production Org until you Deploy the Change Set.
Notes:
No further configuration is required. You may proceed to the Application Review Upgrade.