Since i created the Declarative Rollup Tool back in July last year, it has received some really positive feedback from Admins and Developers wanting a way to maintain that #ClickNotCode feel a little longer when faced with lack of platform support for rollup summaries between lookup relationships.
The tool is open source and free for anyone to consume as a package or deploy the code into their development or sandbox orgs using my GitSFDeploy tool, see the Readme. Because of this its not just up to me what happens to it or who contributes to it…
So the reason I have called this the Community Powered release, is because a major new feature of the release was designed and contributed by a member of the Salesforce community, Wes Weingartner (Twitter), who submitted via a Pull Request to the GitHub repository. I’ve now merged it in and uploaded it into the latest release of the managed package. So without further rambling, here is what’s in the new release…
- Usability, Enhanced New and Edit UI for setting up Rollup Summary (Pilot)
- Installation, Improved installation and configuration in subscriber org via Permission Sets
- Various fixes, relating to using the Max option with Date fields and parent objects with Private Sharing configured.
Lets walkthrough these features…
Enhanced New and Edit UI
Wes raised the idea of having a nice front end page that improves the user experience when selecting the parent, child objects and related fields. In his subsequent submission he has done a great job of designing a UI that makes it much easier to setup the rollups! Here is a screenshot, which does not really do it justice in terms of just how easy it is to point and click from the dynamically updated drop down boxes instead of entering those fiddly API names!
What i found really cool about his design, is that he combined entering the Child Object and Relationship Field information into one operation, the Child Object (Field) drop down automatically shows all valid child relationships for the selected parent object you select.
For the moment the new UI does not have all of the related information or buttons on it from the native UI, so for this release to access this enhanced UI when creating rollups, use the Enhanced New Lookup Rollup Summary (Pilot) button from the List View and for editing existing rollups there is an alternative Enhanced Edit (Pilot) button on the Detail Page.
NOTE: If your upgrading you will need to manually add these two buttons to your List View and Detail page layouts.
I have added two new Permission Sets to the package, this allows you to grant either the ability to Configure Rollups (for Administrators) or Process Rollups to all your users that will be editing child records that cause the rollups to be execute (either Realtime or Scheduled). Assign the Permission Sets as usual but follow the following manual permissions on a custom Permission Set or Profile (Salesforce still doesn’t package these!).
- Lookup Rollup Summaries – Process Rollups,
manually grant Lookup Rollup Summary App and Tab permissions accordingly.
- Lookup Rollup Summaries – Configure Rollups,
manually grant Lookup Rollup Summary App, Tab and Author Apex permissions accordingly.
A collection of minor fixes and improvements have been made, review the Readme release section for more details.
Installation, Documentation and Thank you!
As before see the release section of the Readme for installation options, please feel free to leave comments here and/or log any bugs or enhancement ideas in GitHub here. You can find a full list of past blogs covering the features of this tool here. Finally i would just like to say a big thank you to all the kind feedback and ideas I’ve received about this tool, it is really appreciated and motivational for me!
Pingback: GitHub Gists! | Jesse Altman
May 16, 2014 at 6:21 pm
Reblogged this on SutoCom Solutions.
August 16, 2014 at 6:26 am
I am having trouble uninstalling this package. Are there certain steps you need to follow. The error message is that an extension is using the package. Any ideas?
August 16, 2014 at 6:46 am
It will be one of the rollup triggers. Use the Manage Child Trigger button on the existing Rollup definition records to undeploy the trigger.
September 25, 2014 at 8:56 pm
Can i use ‘Relationship Criteria’ to compare a field in child object to a field in parent object? I need the rollup to only calculate hours for employees in child object who’s names match to certain fields on parent object.
e.g. EmployeeName__c = ParentObjectEmployeeName__c
September 26, 2014 at 6:32 am
Yes this is possible, using __r references, for example ParentLookup__r.ParentField__c
May 2, 2017 at 11:31 am
Hi Andrew, I am unable to get parent object – picklist field value in relationship criteria. Customer_Plan__c is parent to opportunity,
Customer plan has year pick list value ( 2016,2017, 2018,..etc) So I want to roll up only closed opportunities fall on year selected on the parent object.
Can you please have a look and let me know
May 6, 2017 at 2:01 am
Add a formula field on the child record that obtains the year from the parent then use that in the criteria. Review the guidelines on the tools wiki (see GitHub page) around use of formula fields in critiera, there are some considerations.
May 2, 2017 at 12:04 pm
Sorry, Add to below post.
Parent record =Customer_Plan__c
Child record = opportunity
Relatiship field on child record is = Customer_Plan__c
Picklist field name on parent is = planing_year_test__c
So I was trying to mentioned relationship criteria below and error message
IsClosed = true AND CALENDAR_YEAR(CloseDate) = Customer_Plan__r.planing_year_test__c
Relationship Criteria: Relationship Criteria ‘IsClosed = true AND CALENDAR_YEAR(CloseDate) = Customer_Plan__r.planing_year_test__c’ is not valid, see SOQL documentation http://www.salesforce.com/us/developer/docs/soql_sosl/Content/sforce_api_calls_soql_select_conditionexpression.htm, error is ‘expecting a colon, found ‘Customer_Plan__r.planing_year_test__c”
May 6, 2017 at 2:01 am
As i said in the other response best use a formula field on the child object that obtains the parent field value. This syntax is not supported.
November 17, 2014 at 4:43 pm
Please can I manipulate the relationship.? Like I have a budget object (Child ) and Standard Opportunity . is it possible to roll all closed won opportunity amount to the Budget object based on a criteria ?
November 18, 2014 at 6:02 pm
Yes this is possible by defining the relationship in the rollup definition and using the rollup crtieria field to add a criteria string for now this must be in SOQL WHERE clause format (we are hoping to add a UI in the future).http://www.salesforce.com/us/developer/docs/soql_sosl/Content/sforce_api_calls_soql_select_conditionexpression.htm
November 19, 2014 at 2:24 pm
Thanks Andrew.Please what if multiple currencies/ Advance currency management is enabled for the org.. ? Are there limitations on this so far?
November 20, 2014 at 8:57 am
The tool support multi-currency aggregations, by converting to the parent record currency, this was added recently. Dated exchange rates in advanced currency management are currently not supported.
December 15, 2014 at 8:45 am
I’m Kiyo from Japan. I’m impressed functionality of Declarative Rollup Tool.
Can I introduce this tool on our company’s blog?
Our company is a partner of SFDC.
December 16, 2014 at 10:18 am
Yes please feel free, it is for public use. I’d be honoured. 🙂
January 27, 2015 at 9:50 am
Hi Andrew, This is a great tool, exactly what I needed as I cant code, but wanted to make a sales person tracker vs target tool. so i need the roll up to total the Amount from Opportunities, using the ownerID to link the two objects. and it worked! Brilliant!
I then made the stupid error of trying to add a filter (by the close date on Oppo) and change some of the opportunity ownerships to see if the info pulled through. and now, its broken!
The weird thing is when i go into the enhanced edit, i don’t get the opportunity object in there? just a weird list?
January 28, 2015 at 8:55 am
Thanks, glad you like it. Can you create an issue here (https://github.com/afawcett/declarative-lookup-rollup-summaries/issues) and include a screenshot of how you have configured it. Also show the native layout UI (which can also edit through) as well as the enhanced edit. Also some steps that illustrate whats broken, so i can try to reproduce in my test orgs. Thanks!
Pingback: Top 5 Apps for Salesforce Consultants
February 11, 2015 at 4:16 pm
Thanks for the package, working great for me, except for one issue.
The guest user for my Sites web site is causing a trigger error due to a permissions error. I can’t assign the included permission sets to the Sites guest user. i will try to apply the permissions from the included permissions set to the guest user in the Public Access Settings section of Sites configuration. Let me know if you have other ideas when if see this, thanks.
Apex script unhandled trigger exception by user/organization: 00530000007CGS7/00D300000006eLj
dlrs_Onsite_EventTrigger: execution of AfterUpdate
caused by: dlrs.SObjectDomain.DomainException:
Permission to access an dlrs__LookupRollupSummary__c dennied.
Trigger.dlrs_Onsite_EventTrigger: line 7, column 1
User License: Guest License
Profile: Screener Timesheet Profile (not visible in profiles list)
February 11, 2015 at 8:48 pm
Yes sorry about that, I incorrectly assigned a license type to the permission sets, which can restrict their reuse like this. The workaround is as you suggest reference those in the permission set or clone the permission set to a new one and use that.
June 2, 2015 at 3:11 pm
I am getting the same problem on my community users. I added the permission sets to one of my test users and tried again with no luck
Do you have any idea?
June 6, 2015 at 9:36 am
Assign read access via the community profile to the DLRS objects. There is a PS for this, but sadly due to an SF restriction it cannot be directly assigned to community users, so you have to manually update the object permissions.
February 13, 2015 at 7:58 pm
Andy, do you have a link to install this great package? I’ve looked on the app exchange and don’t see a link.
February 13, 2015 at 8:01 pm
found it sorry. Installing now.
February 14, 2015 at 7:53 am
Excellent, hope it helps your use case.
March 19, 2015 at 5:15 pm
We love this tool! I’ve recently created a rollup that writes from Contact to Account. However, the record owner of the Contact may not be the record owner of the Account and a permission error is thrown when this happens. Is there anyway to get the rollup to apply “without sharing”?
March 20, 2015 at 11:33 am
Not as the tool stands today sorry, but if you want to add it to the github issue list I can mark it as an enhancement
March 20, 2015 at 11:33 am
Oh and thanks for the kind words, glad you like it!
April 7, 2015 at 2:56 pm
Hi, All – glad to find this thread – ran into the same issue as John. Just FYI – here’s what I did on the Public Access Settings of my Site:
Add *all* Apex and VF to the Guest Profile and set *all* 6 Lookup Objects to CRED VA MA Permissions.
Andy – just FYI, we cannot clone the Perm Set because the Cloning doesn’t give us an option to set the License associated.
April 7, 2015 at 3:46 pm
Argh yeah, I guess I will have to ship some new ones, as the platform won’t let me remove the license on the current packaged ones.
May 6, 2015 at 5:54 pm
Hi Andrew, the functionality of this tool is excellent however I am facing an issue. I have created two rollups on the same Parent & Child objects, whenever there is a change in the child object record only first child object field that contains the rollup is being updated but not the second field. How do I achieve this functionality? Is it possible? Please let me know if this is possible or not.
Thanks in advance.
May 6, 2015 at 6:11 pm
I made a small mistake, its working perfectly now. However, I have a question for you – if multiple users are making changes to the child object at the same time then will it create an issue or will there be any delay in the update of the rollup field in the parent object?
May 6, 2015 at 7:33 pm
I have not had any issues reported, though the tool does not lock parent records, so under high load it maybe possible I guess.
May 6, 2015 at 7:32 pm
This should be possible yes. I am on vacation at present however. Can I suggest you post your question and screenshots on the salesforce community chatter group I linked to in the readme file to get support from the community around this tool. If I can during the coming days I will also check. Thanks.
Pingback: Salesforce.com Developer in a Box | In the Nimbus
October 27, 2015 at 2:04 pm
Was just testing out this tool and am still figuring out how to work it based off of the documentation and video you posted. I’m very new to SF development.
Anyway, I tried testing in sandbox. I’m assuming in a lot of cases, you will want to create the “Field to Aggregate” field prior to setting up the rollup summary? I created a test custom field of a number data type. Then I set up a simple rollup summary using your tool. When activating, I needed to Manage Child Trigger. However, after deploying, I received error messages. After, I still tried to activate. The tool allowed me to activate and save. However, the field is not aggregating in the way I specified, I’m assuming from whatever issue the trigger had delpoying?
I took screenshots of the error messages but don’t know how to attach it here. This is what they said:
trgConviction. line 43, column 13: Method does not exist or incorrect signature: clsConviction.ConvictionSummaries(List) null
dlrs_ContactTrigger:Test coverage of selected Apex Trigger is 0%, at least 75% test coverage is required
Click Deploy to install the Apex Trigger and Apex Class for this child object.
It looks like you have a great tool, so it would be great to learn more on how to appropriately optimize its functionality. Thanks!
October 27, 2015 at 3:24 pm
Yeah its probably easy these days to use the Chatter Group, see readme for the link, that supports attachments
Pingback: A Declarative Rollup Summary Tool for Force.com Lookup Relationships – Laptop Reviews from Around the World
Pingback: A Declarative Rollup Summary Tool for Force.com Lookup Relationships | Developer Force Blog