Andy in the Cloud

From BBC Basic to Force.com and beyond…

New Release: Declarative Rollup Summary Tool Community Powered!

40 Comments

blog_chart1Since 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!

Screen Shot 2014-04-09 at 19.17.51

Screen Shot 2014-04-09 at 19.33.13What 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.

Screen Shot 2014-04-09 at 19.17.07
Screen Shot 2014-04-09 at 19.18.11

NOTE: If your upgrading you will need to manually add these two buttons to your List View and Detail page layouts.

Installation Improvements

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.

Screen Shot 2014-04-09 at 19.59.01

Various fixes

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!

40 thoughts on “New Release: Declarative Rollup Summary Tool Community Powered!

  1. Pingback: GitHub Gists! | Jesse Altman

  2. 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?

    • It will be one of the rollup triggers. Use the Manage Child Trigger button on the existing Rollup definition records to undeploy the trigger.

  3. Hi Andy,

    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

    • Yes this is possible, using __r references, for example ParentLookup__r.ParentField__c

      • 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
        regards,
        Madav

      • 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.

      • 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

        Error:
        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”

        Regards,
        Madav

      • 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.

  4. 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 ?

  5. Hi Andrew-san,
    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.

  6. 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?

    HELP!

  7. Pingback: Top 5 Apps for Salesforce Consultants

  8. 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.

    dlrs__LookupRollupSummary__c

    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.

    (dlrs)

    Trigger.dlrs_Onsite_EventTrigger: line 7, column 1

    User: 00530000007CGS7
    User License: Guest License
    Profile: Screener Timesheet Profile (not visible in profiles list)

    • 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.

      • HI
        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?
        Thanks
        Roey

      • 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.

  9. Andy, do you have a link to install this great package? I’ve looked on the app exchange and don’t see a link.

  10. 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”?

  11. 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.

    • 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.

  12. 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.

    • 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?

      • I have not had any issues reported, though the tool does not lock parent records, so under high load it maybe possible I guess.

    • 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.

  13. Pingback: Salesforce.com Developer in a Box | In the Nimbus

  14. Hi Andrew,
    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:
    ERROR
    Error:
    trgConviction. line 43, column 13: Method does not exist or incorrect signature: clsConviction.ConvictionSummaries(List) null
    WARNING
    Warning:
    dlrs_ContactTrigger:Test coverage of selected Apex Trigger is 0%, at least 75% test coverage is required
    INFO
    Messages

    Deployment complete.
    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!

  15. Pingback: A Declarative Rollup Summary Tool for Force.com Lookup Relationships – Laptop Reviews from Around the World

  16. Pingback: A Declarative Rollup Summary Tool for Force.com Lookup Relationships | Developer Force Blog

Leave a comment