Project Description
Many time we need to do the Rollup of certain child attribute data into parent attributes. For example number of Contacts for an Account or total order for order lines etc.
The best way to achieve this rollup is using CRM Plugins, however for each Rollup on each entity we have to write separate plugin which will take care of local attributes and type of aggregation required.
This Generic solution is meant to address this problem. It has generic code which works with configuration stored in CRM and can be applied to any entities.
This Generic Solution servers following purpose
1. It rollup data
2. Aggregation is done terms of Count, Average and Sum
3. A single Plugin Code is used for all the Entities.
4. Aggregation is completely configurable without any code change.
5. Aggregation changes in based on metadata.
How to configure Generic Rollup?
What happens behind the scene?
Once you import the solution it also imports 3 plugin SDK Messages Processing steps, namely for Create, Update and Delete. These Plugin messages are configured to triggered on All the entities in CRM. Whenever the record is Created, Updated or Deleted this code checks whether rollup is configured for the entity. If yes it reads the configuration and calculates the aggregate values and updates it in Parent entity.
By default plugin will be triggered on all the entities irrespective of whether rollup is configured to entity, this can cause a performance problem. So in order to avoid Plugin triggering each entity, you can configured this messages separately for only those entities which need Rollup. This is extra admin steps that needs to be done, but it can give better performance.
Please try out the solution and let me know your feedback.