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.
Future Releases
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!
April 5, 2020 at 8:19 pm
Thanks very much Andy! I’m very excited to dig into these new changes and and cannot begin to tell you how much I personally appreciate your continued work on this wonderful tool. It really is amazing and an essential part of the Salesforce kit. Greetings from the Berlin Developer group and will pass this on in our next ‘virtual’ & virus-free meeting!
April 6, 2020 at 12:05 pm
Thanks Alexis your most welcome and say “Hi!” to your Berlin Developer Group from me! Andy.
April 8, 2020 at 11:33 am
Hey @andy – I’m not seeing this in the appexchange – am I missing something?
April 9, 2020 at 3:37 pm
No, never really got round to filling in the details. I am submitting latest for security review though. So will get it sorted.
April 10, 2020 at 5:06 am
Thank you sir!
April 22, 2020 at 12:25 am
Hi @Andy, when can we expect the latest version available.
May 9, 2020 at 6:31 am
Check the Readme file on the GitHub repo all links are always on that. Thanks
April 23, 2020 at 3:31 am
Hi @andy, when can we expect the latest version available.
May 9, 2020 at 6:34 am
As it’s a community product – there is no formal release schedule – it just depends on when folks have time including me. What do you need?
May 6, 2020 at 10:53 pm
Hi Andrew, I just discovered your tool yesterday. So usefull for me ! thx a lot !
May 8, 2020 at 12:14 pm
Hey Andrew, I am having some trouble with this in my org, Salesforce support said they cannot help me and I need to contact you. I cannot see anywhere else I can request support. Could you assist me please?
May 9, 2020 at 6:39 am
Hi. Sure the best way is to tap into the community chatter group. The link to that is near the top of the readme file on tools GitHub repo. Thanks
October 5, 2020 at 1:25 am
Hey Andrew, we have trouble with roll_up summary due to security changes on guest users. Salesforce advised to contact you to resolve the issue. Can you please assist me in this issue?
Thanks in Advance
December 31, 2020 at 9:02 pm
This is not a paid tool – its is an open source and community supported tool. Thus there is no official support. However there is a great community behind the tool. Check out the README file on the GitHub repo and on that is a Chatter Community Group link. You can post into that.
October 5, 2020 at 2:33 am
Hi Andrew.
I am having some trouble with roll_up summary in my org, Salesforce support said they were not able to debug your code and to contact you. Could you assist me in this issue as we are unble to contact your support.
December 31, 2020 at 9:01 pm
This is not a paid tool – its is an open source and community supported tool. Thus there is no official support. However there is a great community behind the tool. Check out the README file on the GitHub repo and on that is a Chatter Community Group link. You can post into that.
October 6, 2020 at 1:20 pm
I’m trying to update to version 2.12 from 2.11 in a sandbox using this link…
https://test.salesforce.com/packaging/installPackage.apexp?p0=04t0N000001E2L5
Getting this error, any help appreciated…
This app can’t be installed.
There are problems that prevent this package from being installed.
Package Not Found The requested package doesn’t yet exist or has been deleted. If this is a recently created package version, please try again in a few minutes or contact the package publisher.
December 31, 2020 at 9:00 pm
I retire old versions as i release new ones. Try the README file for the very latest.
October 7, 2020 at 8:23 am
Hello. With the new release if I change a dlrs record that was once “Realtime” to “Scheduled Full Calculate” and it already had a trigger code deployed for it will it auto remove the trigger code? Or will it still perform real-time calculations as well as the scheduled calculation? due to realtime dlrs Exclusive Lock errors I want to switch it to scheduled off business hours only.
December 31, 2020 at 8:57 pm
It will not auto remove the trigger – you need to do that yourself with the Manage Child Trigger button.
December 3, 2020 at 10:36 am
Hi Andrew,
I saw your comments about going through Security review.
Is it listed on Salesforce Appexchange? If yes, please let us know the link !
December 31, 2020 at 8:48 pm
Please check the release history in the README file.
January 21, 2021 at 6:56 am
We are using DLRS for sometime in our project. Recently we came across one issue reported by users. Customer Service Back users were getting an error while doing a contact merge operation.
dlrs_ContactTrigger: execution of AfterDelete caused by: System.DmlException: Upsert failed. First exception on row 0; first error: INSUFFICIENT_ACCESS_ON_CROSS_REFERENCE_ENTITY, insufficient access rights on cross-reference id: [] Class.dlrs.RollupService.updateMasterRollupsTrigger: line 946, column 1 Class.dlrs.RollupService.handleRollups: line 842, column 1 Class.dlrs.RollupService.triggerHandler: line 307, column 1 Trigger.dlrs_ContactTrigger: line 7, column 1
(3857562009)|DML_BEGIN|[946]|Op:Upsert|Type:dlrs__LookupRollupSummaryScheduleItems__c|Rows:2
09:40:32.850 (3973107470)|DML_END|[946]
09:40:32.850 (3974602711)|METHOD_EXIT|[7]|01p58000008XKOk|dlrs.RollupService.triggerHandler()
09:40:32.850 (3975043881)|FATAL_ERROR|System.DmlException: Upsert failed. First exception on row 0; first error: INSUFFICIENT_ACCESS_ON_CROSS_REFERENCE_ENTITY, insufficient access rights on cross-reference id: []
We were able to reproduce this issue in lower environments. We made log level as finest but log does not display exactly on which object permission , it is errored out.
Any help will be appreciated.
Thanks,
Kaushik
February 6, 2021 at 12:05 pm
I suspect it will be the relationship field on your rollup rule. It maybe that the users sharing rule does not have access to the master record. If you want you can change the rule to run in system mode and that should bypass this check.
February 9, 2021 at 12:59 pm
Hi Andy, since this is not available on App Exchange. How can I download this in my test org? Thank you !
March 27, 2021 at 10:18 am
You can find the links in the readme file associated with the GitHub repo for this tool.
March 23, 2021 at 11:56 am
I am getting errors when using the DLRS – Salesforce support said to try to reach out to the site I downloaded it form since they can not help me. Is there a place I can do that? Or anyway to contact someone directly? Any help would be great.
March 27, 2021 at 10:11 am
Hey Kate, on the readme page for the repo where the tool is listed there is a Salesforce community page. It has a good bunch of folks on that that can help you out. I try to check it when I can, but the main support as it is an open source tool is via the community.
March 29, 2021 at 7:52 am
Andy – the on the readme page for the repo? Can you direct me to that?
April 12, 2021 at 8:57 pm
https://github.com/afawcett/declarative-lookup-rollup-summaries
May 18, 2021 at 9:36 am
Hi Andrew,
Declarative Lookup Rollup Summaries Tool
We are getting a custom validation error when trying to update opportunity Stage = ‘Dead Project’ with a Reason for dead status = ‘Competition’.
Error message: Reason For Dead Cannot Be Left Blank
Line: Class.dlrs.RollupService.Updater.updateRecords: line 1205, column 1
Can you help me with this issue?
Thank you very much.
June 5, 2021 at 6:04 am
It looks like a validation rule on your master object is giving this error – perhaps? If you try to edit the record manually (fake a rollup update) do you see the same error? If so – you need to update the validation logic to tolerate this update scenario – since all the rollup tool does is update the designated rollup field not any other field – and it lookslike “Reason for Dead” field is blank on the given master record here.Hope this helps.
June 1, 2021 at 2:37 pm
We have an org using v2.5 and we are looking to upgrade to v2.13 we will be going through testing with such an upgrade as we currently have ~170 rollup records across the org.
Are there features that may not be backward compatible that we will run into at a quick thought?
(I know quite the ask when upgrading 8 versions all at once…)
June 5, 2021 at 6:01 am
Wow Josh yes quite an upgrade – glad you are taking your time. Just read carefully the README file and gather together all the release notes and steps described in each release.
June 27, 2021 at 2:14 pm
Nothing I can think of no – just read carefully all the notes in the release notes section of the readme
June 9, 2021 at 2:52 pm
Hi Andrew,
I have two versions of this app in my sandbox one from the app exchange and using the Sandbox URL from github and have noted two differences.
App exchange – Updates rollup field in real time however, does not sum records of related objects on a different objects.
Sandbox URL – Delayed updates of rollup field. Calculates related objects and displays them on different object rollup fields however, first updates with the sum of the most recently updated related object then pages has to be refreshed a number of times to get total sum of all related objects.
I would like to know which one is the most current version and will there be an update when all related objects can be summed and shown on different objects in a real time ?
Many Thanks
June 27, 2021 at 1:52 pm
Trigger logic in Salesforce is by design non deterministic so – so the order cannot be determined. I would say that ui updates from triggers in general in lightning desktop are as far as I know not instant – so the refresh behavior you are seeing is most likely due to that. One way to confirm is to switch to Salesforce classic (this did not have this refresh problem). Also generally I would not recommend have two versions of the tool. Hope this helps
July 9, 2021 at 7:54 am
Hi Andy – we just rolled onto a Salesforce project that is using this tool but we are receiving these errors and not sure if we are looking in the right place invalid cross reference id : INVALID_CROSS_REFERENCE_KEY (). Is it possible there is something wrong with a trigger?
July 10, 2021 at 2:32 pm
Hmm hard to say without more info tbh. It might be the system mode vs user mode thing – try changing that setting on the roll up defo – by default it is user mode – which means if the user updating the child record cannot see certain records you might see this. The tool really runs on the user behalf so typically system mode is actually what’s needed – the default is historic. Other than that maybe post in the chatter group linked on the readme file. Andy
July 12, 2021 at 4:48 am
Hi Andy – thank you for your response, and pardon my ignorance, but what is meant by roll up defo? Thanks, Karen
October 9, 2021 at 9:49 am
Sorry rollup definition – see the mange rollup summaries tab in your org. Andy
July 27, 2021 at 11:04 am
How do I change the Running User of the Roll-Ups? I tried by logging in as that User and got an error that the Roll-up was already scheduled. The original running user is no longer at the company and I now have a dedicated “admn” user.
October 9, 2021 at 9:42 am
Hi – I think I just responded to this on another thread
August 5, 2021 at 1:29 pm
I want to change the Running User of Roll-Up Summaries that a previous Salesforce partner created. Do I have to delete these Summaries and start over while logged in as the new running user? I can’t find any articles on how to handle this situation.
October 9, 2021 at 9:40 am
No you don’t need to reconfigure the rollup criteria itself. I assume you mean the apex job the partner scheduled? If so – yes Salesforce does not offer a way to change this for existing Apex jobs. Take note of the ones you have. There will be potentially two types. RollupJob is most easy – just delete that and use the Schedue button under setup to jobs to schedule a new one. You may have some full reschedule jobs for one or more rollups defined in your system. These can be deleted and rescheduled by the corresponding rollup detail page you will need to know the criteria used though. If the partner did not share this you can determine it by enabling a debug log for one the jobs and observe the first query it uses. Hope this helps – there is a wonderful community group accessed via a link on the GitHub repo for the tool – find it at the top of the Readme file. Andy
October 7, 2021 at 9:25 am
Hi. What are the triggers still active even after you delete a job?
October 9, 2021 at 9:09 am
Those will be triggers on the child objects needed for real-time rollups and incremental scheduled rollups.
October 29, 2021 at 1:23 am
Hi all, running into a issue when trying to roll-up to a currency field in a multi-currency org with more that 2 decimal places for the target currency field. I’ve create a discussion on Git. Any insights would be much appreciated
https://github.com/SFDO-Community/declarative-lookup-rollup-summaries/discussions/1101
November 14, 2021 at 11:00 am
Thanks for sharing – git is a place for know issues and enhancements. I would also recommend the community chatter group where the tools community powered support team hang out. The link to this can be found at the top of the readme file.
November 22, 2021 at 9:10 pm
Hi Andy. Is it possible to configure DLRS to take the most recent Note (Content Document) associated with a record and populate the long text area field on the same record the note is associated with? I know there are different content objects referenced here. Just wanted to see if this was first possible before digging to much into it. Thanks!
November 28, 2022 at 10:14 pm
Sorry for not responding sooner. The best place to get support from community is listed here https://github.com/SFDO-Community/declarative-lookup-rollup-summaries#questions-and-community-support.Thanks.
November 23, 2021 at 3:40 am
Hi, is the app compatible with the ICU locale formats which will be adopted across all orgs by Salesforce in Spring ’22? Many thanks!
November 28, 2022 at 10:14 pm
Sorry for not responding sooner. The best place to get support from community is listed here https://github.com/SFDO-Community/declarative-lookup-rollup-summaries#questions-and-community-support.Thanks.