I typically do not blog about each new release of this tool, but since its been awhile and there is some key features in this release I thought I would add to the usual release notes. If you are not aware this is a community driven tool that helps address a current platform limitation around rollup summaries. Specifically the inability to do rollup summaries between lookup relationships. This is possible between master detail relationships using the declarative mode of Lightning Platform, but not between Lookup Relationships. The tool is open sourced and supported by an amazing community! The following highlights some key aspects of this recent update.
Improved Lightning Experience Support
The tool does its thing in the background as users work so regardless if you configure it through Salesforce Classic or Lightning Experience, for your users it is irrelevant. This release has an actual Lightning App packaged with it and each of the custom UIs now leverage the default Visualforce Lightning styling. You can still use it in Classic, though the new Lightning Rollup Summaries Tool tab will not be visible.
Evolution of Rollup Configuration Storage
The tool has been around since 2013 and has undergone some changes, especially since the advent of Custom Metadata, which is now the primary means by which its configuration is stored. Support for the original Custom Object based storage of configuration is still present but is now more hidden by default to avoid confusing new users. This release includes more messaging in the older UI to help users tell the difference. Unfortunately some legacy implications still confused users which I also wanted to address in this new release.
No More Shadow Rollup Records
Scheduled rollups can leverage an incremental calculation mode to differ calculations until a scheduled batch job executes, which improves interactive performance. The tool does this as the users update records by inserting into the Lookup Rollup Summary Schedule Items object to queue up the future recalculations. This object was architected before the Custom Metadata based rollups and thus demanded a reference to a Custom Object based rollup even if the user was using the Custom Metadata based rollups.
Previous releases of the tool attempted to workaround this silently by automatically creating so called “shadow rollup” configurations. However when users came across these, especially if they where still using Custom Object based rollups, it caused confusion. Starting with release v2.12 these will no longer be created. Though for those of you upgrading there is some actions to take on your side.
Action to Take and New Lookup Rollup Summaries Tools Tab
In order to drop the confusing shadow rollup workaround described above I had to remove a field from the Lookup Rollup Summary Schedule Items object. This however is only removed from the package and will not automatically delete from orgs on package upgrade. I have ensured that your existing rollups will still work and still leverage this field, so there is no immediate action after upgrading.
However, if you create a new incrementally scheduled rollup and attempt to insert a child record you will see the error message that reminds you need to delete this field manually. You will also see a reminder to delete this field through the new tools tab.
As you can see above the new Optimizer component is also designed to share other useful insights into your use of the tool. In addition to the field deletion reminder I have also added a notification to remind the admin to review the Lookup Rollup Summary Log tab for errors that have occurred during incremental scheduled rollup executions. Each of the notifications comes with a more detailed Wiki page. Once everything has been cleared you get a nice confirmation telling you so!
Email Notifications for Batch Job Error Messages
The tool uses scheduled Apex jobs to run manual full, scheduled full and incremental recalculations of rollups. For incrementally recalculations expected errors get redirected to the Lookup Rollup Summary Log tab (hence the above reminder in the tools tab). However other errors in previous releases where only visible if you visited the Setup menu Apex Jobs page or had Apex Email Notifications enabled. Starting with release v2.12 such errors (unless they are governor limit errors) will be emailed to the user who scheduled the job.
No Need for Remote Site Configuration
Finally I also updated the tool to leverage a platform enhancement that relaxed the need to have a Remote Site configuration when using Salesforce API’s such as the Metadata API used by the tool when configuring rollups. This only applies to orgs with My Domain.
Customize Test Code for Parent Apex Trigger Tests
Sometimes the tool needs to generate Apex Trigger Test code for parent objects. In this release you can now customize that test code if there are required fields needed to be able to insert a test parent object.
There is currently 82 enhancement ideas and 22 known bugs to pick from. If you want the perspective on must have fixes and enhancements from one the amazing contributors, Dan Donin, you can see Dan’s filtered list here.
Hopefully having moved the project to SFDX you or a developer you know will feel encouraged to help out with some of these. I am also keen for ideas on how to enhance above optimizer feature to provide more proactive recommendations to admins and cut down on common questions and keep configurations optimum.
Finally there is a long standing request for UI to help configure the rollup filters that might finally be closer to reality thanks to some great work here. Meanwhile, thanks for all for the support!