- Rollup information between Lookup relationships not previously possible without writing Apex Triggers
- Define rollups using standard UI declaratively, no coding required
- Define filter criteria on rollups for example Rollup Amount on Opportunity onto Account for Closed Won
- Supports Realtime, Scheduled and Developer API modes
- Open source, available in code and managed package form.
- Managed package has passed Salesforce Security Review and is Aloha enabled (does not consume app, tab limits)
Please refer to the blog posts below for more detailed information.
This is a community driven tool, please help support it, share your experiences in this Chatter group.
The tool has been featured in a number of blog entries as it has evolved...
- Declarative Lookup Rollup Summaries – Spring’15 Release
- A Declarative Rollup Summary Tool for Force.com Lookup Relationships
- Account Hierarchy Rollups #ClicksNotCode
- New Release: Declarative Rollup Summary Tool Community Powered!
- New Release: Spring’14 Declarative Rollup Summary Tool
- New Tool : Declarative Rollups for Lookups!
There is also an early releaes video demonstration here...
- Check Existings Apex Tests. This tool dynamically deploys Apex Triggers and Apex tests, please make sure your Sandbox and Production org tests are all fully working before you attempt to use this tool. Otherwise usage of this tool will be blocked until you resolve such errors. If you have an org with triggers on the sObject that will contain the roll up result, installation into sandbox is VERY HIGHLY recommended so that after Lookup Rollup Summary records are added/enabled, you should rerun all testmethods to ensure nothing has broken as your before/after update triggers on the parent sObject will re-execute.
- Existing Tests on Parent Objects. This tool will update the indicated fields on your Parent objects when it senses activity on Child objects. Ensure an Apex Triggers you have written on your Parent objects are written with best practices around bulkification in mind. If in doubt be sure to perform significant testing.
- Platform SOQL Limits. This tool uses SOQL Aggregate queries and is subject to platform limitations. This basically means...
- Deployment issues into Production. This tool dynamically deploys a small trigger and test class to the org. This is subject to the same rules and compliances as as a regular human developer. The generate test class, can in some cases be to simplisitc to get code coverage, requiring at present a developer to assist with the deployment, especially to production. There is more details on how to look for this scenario and how to workaround it, as well as future thoughts here.
- Volume Considerations. For each rollup, there is a maximum of 50,000 child relation records that can be summarised each time child record/s insert/update/delete operations are made (which may process several configured rollups). The rollup processes children to rollup by their parent record relationship and an optional further filter if provided. Meaning so long as this relationship does not result in more than 50,000 child records per parent parent record it will be successful. Take a look at this blog post which describes some new configuration settings (see bottom of blog post) to help calibrate the tool when running the Scheduled or Calculate jobs to help work within the 50,000 row limit.
- Indexing Fields. For performance reasons ensure the fields used are indexed (lookups are by default) and also any fields used in the filter criteria. This can be very important as without this, a full table scan will occur when the platform executes the SOQL and cause performance issues. For more information from Salesforce please see here and here.
- Realtime Mode and Formula Fields. When using the Realtime mode, Formula fields as fields to aggregate are not supported (validation will be added in a future release to block this). To work around this, either switch to Scheduled mode or in Relatime mode use a Workflow Field Update to copy the formula field value to a physical field and reference that.
- Sandbox Testing. While the tool can be installed and enabled directly in production, sandbox testing is still strongly recommended.
- Professional Edition. Professional Edition is not supported, due to the Metadata API used by the tool not being available in this edition.
Please feel free to raise feedback and issues via the Github Issues page here.
You can install a packaged version of the tool into your production org (sandbox testing as always recommended). Check the limatations and known issues above first!
Latest Version 1.23
Package Production URL, Sandbox URL
- Enhancement for Add developer API to mirror triggerHandler behavior
- Enhancement for Advanced Rollup API Reqiurement: Count of Child on Parent, Child Re-parent, Old Parent Count not Correct
- Bug fix for Reduced number of queries when object name case differs accross rollups : Multiple LRE Contexts when rollup definition only differs by case
- Bug fix for Master records updated when related records have not changed
- Bug fix for Different order by on same relationship field results in incorrect result
- Bug fix for Rollup Summary validations not being enforced on updates after fflib upgrade
Version 1.22
Package Production URL, Sandbox URL
- Enhancement for Ability to enable SeeAllData in the generated tests
- Bug fix for Error with multi-currency
- Bug fix for Some of the new fields in the last release are not in the Manage Rollup Permission Set
If you are upgrading, you will need to make the following changes to the Layout.
- Add Test Code See All Data field to the layout
Version 1.21
Package Production URL, Sandbox URL
- Enhancement for Can't get Apex Trigger to Deploy in Production
- Enhancement for Implement the new test level features in Summer 15 to deploy triggers faster
- Enhancement for Allow users to edit child records without needing access to Rollup Summary object
- Fix for First error: Invalid Id when in Scheduled Mode
- Fix for Duplicate Field Selected error message
If you are upgrading, you will need to make the following changes to the Layout.
- Add Test Code field to the layout
Version 1.20
Package Production URL, Sandbox URL
- Enhancement for Private Objects / Sharing Rule
- Enhancement for Allow Master Records To Be Filtered During Calculate thanks to Christian G. Warden
- Fix for Some tests have hard-coded namespace thanks to Christian G. Warden
- Fix for Rollup fails when child field is Multi-select picklist and is null thanks to Daniel Hoechst
If you are upgrading, you will need to make the following changes to the Layout.
- Add Calculation Sharing Mode field to the layout
Version 1.19
Package Production URL, Sandbox URL
- Fix for Concatenate Distinct Duplicates Values When Rolling up Multi-Select Picklists
- Enhancement for Improve trigger test deployment failure reporting when Code coverage error received
- Fix for Currency Fields in the Rollup causing the issues - "Master and detail fields must be the same field type (or text based) for First or Last operations"
Version 1.18
Read more about this releae here.
Package Production URL, Sandbox URL
- Debug added for bug Unable to connect to the Salesforce Metadata API
- Enhancement How to rollup count of unique values
- Enhancement Rollup picklist or text values?
- Enhancement Filter by last create date
- Enhancement Support for Lightning Process Builder
If you are upgrading, you will need to make the following changes to the Layout and Picklists.
- Add Lookup Rollup Summary Unique Name, Concatenate Delimiter, Field to Order By fields to the layout
- Add Count Distinct, Concatenate, Concatenate Distinct, First and Last picklist items to Aggregate Operation
- Add Process Builder picklist item to Calculation Mode
Version 1.17
Package Production URL, Sandbox URL
- Fix for Exception when saving a new rollup when the child object is invalid
- Enhancement for Validate the Rollup Criteria on Save
- Enhancement for Suggestion: Add 'Description' field to Lookup Rollup Summary SObject (requires manually adding to Layout for upgrades)
- Fix for Null object error - Aggregating null currency field on child also same fix for System.NullPointerException: Attempt to de-reference a null object - Error - Post v1.14 Upgrade
- Fix for Salesforce Standard Order object OpportunityID field not recognized
- Upgrade to API 32 (sees new Standard objects) related to attempted fix for Error "Object does not exist" for CombinedAttachment
Version 1.16
Package Production URL, Sandbox URL
- Fix for RollupJob error: Cannot have more than 10 chunks in a single operation, thanks to David Carter.
Version 1.15
Package Production URL, Sandbox URL
- Fix for Two rules using same set of RelationshipCriteria fields don't create scheduled items
- Fix for System.NullPointerException: Attempt to de-reference a null object when saving a Rule
- Fix for Install error Version 1.12 - Requires Streaming API
- Fix for Support installation without having to have Ideas enabled
Version 1.14
Package Production URL, Sandbox URL
- Fix for Enable count rollup on any field
- Fix for Only one rollup per field working at a time
- Fix for Multiple rollups on same field fail to execute
Version 1.13
Package Production URL, Sandbox URL
- Fix for Apex Error Query Exception
Version 1.12
Package Production URL, Sandbox URL
KNOWN ISSUE: Apex Error Query Exception, please use version v1.11 below if you encounter this issue.
- Fix for Currency Conversion?, special thanks to Anthony Heber for submitting the enhancement to LREngine to fix this. The result of the child aggregation is converted to the parent record currency if the child field being aggregated is a Currency type and the org is using Multi-Currency. Note currently dated exchanged rates (available through Advanced Mulit-Currency) are currently not supported.
Version 1.11
Package Production URL, Sandbox URL
Version 1.10
Package Production URL, Sandbox URL
- Enhancement for Issue 52 Auto Create Remote Site Setting
- Fix for Issue 25 Error with Manage Child Trigger button for very long object names
Version 1.9 - Community Powered!
Read more about this release here
Package Production URL, Sandbox URL
- Fix for Issue 23
- Fix for Issue 22
- Fix for Issue 21
- Enhancement for Issue 16
- Enhancement for Issue 5
- Enhancement for Issue 15
KNOWN INSTALL ISSUE There appears to be an install issue identified when installing into orgs without Ideas installed for v1.9, if you encourter this enable Ideas if you can, otherwise use v1.7 until the issue is resolved.
Version 1.8
Not released
Version 1.7
Package Production URL, Sandbox URL
- Fix for Issue 14, relating to null pointer exception
Version 1.6 - Spring'14 Release - 9th February 2014
Package Production URL, Sandbox URL
- Enhancements to support Schedule mode, Calculate historic records, Developer API and more, see here.
- Fix for Issue 10
- Fix for Issue 11
Version 1.5
Package Production URL, Sandbox URL
Version 1.4
- Fix for Issue 3, relating to issue when deleting last child record not updating rollup fields to 0.
Version 1.3
- Fix for Issue 2, relating to error 'purgeOnDelete option can only be used on a non-active org'
Version 1.2
- Support for Realtime calculations
- Validation of valid fields and field types on Declarative Rollup definition fields
- Optimisation during update of child records to only apply rollup when field to aggregate changes
- More extensive unit tests, also those around use of limits such as queries, rows etc.
Version Beta 6
- Support for Realtime calculations
- Limited validation on Declarative Rollup definition fields
- Limited testing on multiple lookups
- Fixed issue with multiple lookups
If you are a developer obtain the source code from this repository if you wish to develop it further and/or contribute to it. Click the button below to deploy the source code to your developer or sandbox org.
KNOWN INSTALL ISSUE Sometimes the Permission Set files will not deploy, based on org differences, such as features enabled. If you encounter this problem, Clone the repo manually and use your IDE or Ant script to deploy without the Permission Sets. I will be looking into fixing this issue in the future.