You can download the full release notes as a PDF above for detailed information on all updates and fixes included in this version.
If there are any post-install steps required, they will be listed below.
Assign the Maica - Manage Agreement Item Rollover permission set to any users who need to view rollover fields on Agreement Items and Service Agreements, use the Process Rollover Quick Action, or configure rollover settings.
To assign:
After assigning the permission set, verify that rollover fields are visible to users. In some environments, you may also need to grant field-level security on the System Administrator profile for the new rollover fields. Navigate to Setup > Profiles > System Administrator > Field-Level Security for Agreement Item and Service Agreement objects to confirm read/write access on all rollover fields.
Saving the Processing Time automatically schedules the daily rollover batch job at the configured time. You do not need to schedule the job manually. Alternatively, these values can be edited directly via Setup > Custom Settings > Service Agreement Setting on the Org Default record.
For each Service Agreement where rollover should be active:
Note: the automatic batch job only processes items on Service Agreements that have Enable Funding Rollover checked and a Status of Active.
If the job is missing, re-save the Processing Time in Client Management Settings — this re-registers the schedule. The job is also re-registered whenever the Processing Time is changed.
Add a new section called Rollover Information to the Agreement Item Lightning Record Page with the following fields:
Column 1 — Funds Received:
Rollover_Amount_In__c)Rollover_Date_In__c)Rollover_Source_Item_Name__c)Column 2 — Funds Sent:
Rollover_Amount_Out__c)Rollover_Date_Out__c)Rollover_Target_Item_Name__c)Additional Fields (can be placed in either column or a separate section):
Rollover_Processed__c)Rollover_Processed_Date__c)Exclude_from_Rollover__c)Note: the existing Total Allocated field now includes rollover adjustments automatically (base allocation + rollover in - rollover out). No additional budget summary field is needed.
To edit the Lightning Record Page:
Add the following fields to the Service Agreement record page:
Enable_Funding_Rollover__c) — toggles rollover for this Service AgreementRollover_Gap_Tolerance__c) — overrides the org default gap tolerance for this specific agreement
The Process Rollover action is available on any Agreement Item. When clicked it opens a preview modal showing the rollover amount and auto-detected target. If the parent Service Agreement does not have Enable Funding Rollover checked, the modal displays an informative error.
If your org also uses the classic Page Layout for Agreement Items, add Process Rollover to the Salesforce Mobile and Lightning Experience Actions section via Setup > Object Manager > Agreement Item > Page Layouts.
The Agreement Item Funding Rollover feature is opt-in at the Service Agreement level, controlled by the new Enable Funding Rollover checkbox. After installing this release, the checkbox is unticked by default on all Service Agreements, including those you already have in your org.
For most NDIS providers, you'll want to enable rollover on Service Agreements that are funded under PACE plans with one of the standard NDIS funding types. The script below sets Enable Funding Rollover = TRUE on all Service Agreements where:
Ctrl+E / Cmd+E)
Set DRY_RUN = true; at the top of the script to see how many Service Agreements would be updated, without making any changes. Once you're happy with the count, set it back to false and re-run.
// =====================================================================
// NDIS-1098 — Bulk Enable Funding Rollover on Existing Service Agreements
//
// Run from Setup > Developer Console > Execute Anonymous (or sf apex run).
// Safe to re-run — only touches records where Enable Funding Rollover is FALSE.
//
// Targets Service Agreements where:
// - Funding Type is Agency Managed / Plan Managed / Self Managed / Combination
// - The related NDIS Plan is a PACE plan
// =====================================================================
// Set to TRUE to preview the impact without making any changes.
Boolean DRY_RUN = false;
List<maica__Service_Agreement__c> toUpdate = new List<maica__Service_Agreement__c>();
for (maica__Service_Agreement__c sa : [
SELECT Id, Name, maica__Funding_Type__c
FROM maica__Service_Agreement__c
WHERE maica__Funding_Type__c IN ('Agency Managed', 'Plan Managed', 'Self Managed', 'Combination')
AND maica__NDIS_Plan__r.maica__PACE_Plan__c = TRUE
AND maica__Enable_Funding_Rollover__c = FALSE
]) {
sa.maica__Enable_Funding_Rollover__c = true;
toUpdate.add(sa);
}
System.debug('Service Agreements matching criteria: ' + toUpdate.size());
if (DRY_RUN) {
System.debug('DRY RUN — no records updated.');
return;
}
if (toUpdate.isEmpty()) {
System.debug('Nothing to update — all matching Service Agreements already have Enable Funding Rollover = TRUE.');
return;
}
Database.SaveResult[] results = Database.update(toUpdate, false);
Integer successCount = 0;
Integer failureCount = 0;
for (Integer i = 0; i < results.size(); i++) {
if (results[i].isSuccess()) {
successCount++;
} else {
failureCount++;
System.debug(LoggingLevel.ERROR,
'FAILED to update ' + toUpdate[i].Name + ' (' + toUpdate[i].Id + '): '
+ results[i].getErrors()[0].getMessage());
}
}
System.debug('Updated: ' + successCount);
System.debug('Failed: ' + failureCount);
The script only touches Service Agreements where Enable Funding Rollover is currently FALSE. Re-running it after the first execution will make no further changes.
Run this as a System Administrator, or as a user with edit access to the Enable Funding Rollover field on Service Agreement.
If you want to enable rollover on a different subset of Service Agreements — for example, only specific funding sources, only Service Agreements for a particular Service Provider, or only those starting after a given date — adjust the WHERE clause in the SOQL query. The script is provided as a starting point.
If your org has more than ~50,000 Service Agreements matching the criteria, run the update as a Batch Apex job instead of a single Anonymous Apex execution to stay within Salesforce governor limits. Contact Vertic support if you need help with this.




