Hey guys, today in this post we are going to learn about How to create roll-up summary trigger for count child records on custom object using Apex trigger in Salesforce.
parentObjTrigger:- Custom Fields & Relationships
Create a custom field on parent Object name as childRollUp__c (Number Type).
childObjTrigger:- Custom Fields & Relationships
Create a lookup relationship field on child Object name as childLookup__c : Lookup(parentObjTrigger).
Real time scenarios:- Write a roll-up summary trigger for count child records on custom parent object.
Create a custom field (Number Type) on parent object, calculate the total number of related child records and put into them.
- Don’t forget to check out:- Trigger on contact to update a account custom field Click Here For More Information
Files we used in this post example:-
childObjTriggerRollUp.apxt | Apex Class Trigger | It will be fired whenever insert, update and delete a record on child object |
Parent Cusotm Object:- parentObjTrigger__c Custom Field :- childRollUp__c
|
Parent Object with Custom Field | Trigger on child object and calculate the total numberof related child records on the parent object. |
Child Custom Object:- childObjTrigger__c Custom Field:- childLookup__c >> Lookup(parentObjTrigger) |
Child Object with Field |
childLookup__c : Lookup(parentObjTrigger) field it is help to communicate on parent object. |
You can download file directly from github by click here
Final Output
You can download file directly from github by Click Here.
Other related post that would you like to learn in Salesforce
Step 1:- Apex Class Trigger : childObjTriggerRollUp.apxt
From Developer Console >> File >> New >> Apex Trigger
childObjTriggerRollUp.apxt [Apex Class Trigger]
TRIGGER childObjTriggerRollUp ON childObjTrigger__c (BEFORE INSERT, BEFORE UPDATE, BEFORE DELETE, after INSERT, after UPDATE, after DELETE, after undelete) {
List<childObjTrigger__c> childObjList = NEW List<childObjTrigger__c>();
Set<Id> accSetId = NEW Set<Id>();
IF(TRIGGER.isBefore){
system.debug('trigger before#');
}ELSE IF(TRIGGER.isAfter){
system.debug('trigger after#');
IF(TRIGGER.isDelete){
childObjList = TRIGGER.old;
}ELSE{
childObjList = TRIGGER.new;
}
List<parentObjTrigger__c> updateParent = NEW List<parentObjTrigger__c>();
FOR(childObjTrigger__c childObjNewList:childObjList){
IF(childObjNewList.childLookup__c != NULL){
accSetId.add(childObjNewList.childLookup__c);
IF(TRIGGER.isUpdate){
childObjTrigger__c childObjOld = TRIGGER.oldMap.get(childObjNewList.Id);
system.debug('childObjOld ' + childObjOld);
IF(childObjOld.childLookup__c != childObjNewList.childLookup__c){
accSetId.add(childObjOld.childLookup__c);
}ELSE IF(childObjOld.childLookup__c == NULL){
accSetId.add(childObjNewList.childLookup__c);
}
}
}
}
//system.debug('accSetId ' + accSetId);
FOR(parentObjTrigger__c parentSetObj: [SELECT Id, Name, childRollUp__c, (SELECT Id, childLookup__c FROM childObjTriggers__r ) FROM parentObjTrigger__c WHERE Id IN:accSetId]){
List<childObjTrigger__c> childSize = parentSetObj.childObjTriggers__r;
parentSetObj.childRollUp__c=childSize.size();
updateParent.add(parentSetObj);
}
UPDATE updateParent;
}
}
Further post that would you like to learn in Salesforce
Does rollup summary field fire trigger?
Yes, Changes in rollup summary field can cause trigger to fire. If the record contains a roll-up summary field or is part of a cross-object workflow, performs calculations and updates the roll-up summary field in the parent record. Parent record goes through save procedure.
Can we create roll up summary fields in lookup relationship?
Unfortunately, roll-up summary fields are only available for objects in a Master-Detail relationship and are not available for those that have a Lookup relationship.
How many roll-up summary fields can be created in an object?
In general, first try to set up your reports to make these calculations before requesting a limit increase. Note: While increases can be submitted to Support, the maximum hard-coded limit for roll-up summary fields is 40 per object and cannot be increased above that.
Related Topics | You May Also Like
Our Free Courses →
👉 Get Free Course →
📌 Salesforce Administrators 📌 Salesforce Lightning Flow Builder 📌 Salesforce Record Trigger Flow Builder |
👉 Get Free Course →
📌 Aura Lightning Framework 📌 Lightning Web Component (LWC) 📌 Rest APIs Integration |