Skip to main content
Van Knotts (Fitzgerald Peterbilt) a posé une question dans #Apex
My org needs a trigger to count the number of Cases (Child) that a Custom Object has.  The custom object is Trucks_Under_Warranty__c.  I am unable to use a master-detail relationship because the case object is a standard object and can not be the detail in that type of relationship, so I am forced to go the route of a trigger to handle this. Unfortunately I am by no means a developer.  Any help would be greatly appreciated. Here is what I have attempted thus far and I am receiving compile errors. Thanks

 

trigger CaseMaster on Case (after delete, after insert, after undelete) {

set<string> TUWIDs = new set<string>();

if(trigger.isInsert){

for(Case TUW : Trigger.new){

TUWIDs.add(TUW.Trucks_Under_Warranty__c);

}

}else if(trigger.isDelete){

for(Case TUW : Trigger.old){

TUWIDs.add(TUW.Trucks_Under_Warranty__c);

}

}else if(trigger.isUnDelete){

for(Case TUW : Trigger.new){

TUWIDs.add(TUW.Trucks_Under_Warranty__c);

}

}

if(TUWIDs.size() > 0){

CaseHelper ch = new CaseHelper();

ch.updateCaseCount(TUWIDs);

}

}

 

@isTest

public with sharing class CaseHelper {

public void updateCaseCount(set<string> CaseIDs){

if(CaseIDs == null){

return;

}

if(CaseIDs.size() == 0){

return;

}

list<Case> CaseList = new list<Case>();

CaseList = [Select ID From Case Where Trucks_Under_Warranty__c = :CaseIDs];

integer totalCount;

map<string, integer> CaseIDToCaseCountMap = new map<string, integer>();

for(Case TUW : CaseList){

if(CaseIDToCaseCountMap.containsKey(TUW.Trucks_Under_Warranty__c)){ totalCount = CaseIDToCaseCountMap.get(TUW.Trucks_Under_Warranty__c);

}else{

totalCount = 0;

}

totalCount += 1;

CaseIDToCaseCountMap.put(TUW.Trucks_Under_Warranty__c, totalCount);

}

list<Case> CaseUpdateList = new list<Trucks_Under_Warranty__c>();

Case CaseTemp;

for(string CaseID : CaseIDToCaseCountMap.keySet()){

CaseTemp = new Case ();

CaseTemp.ID = CaseID;

CaseTemp.Case_Count__c = quoteLineItemIDToAdditionalCostMap.get(CaseID);

CaseUpdateList.add(CaseTemp);

}

if(CaseUpdateList.size() > 0){ update CaseUpdateList;

}

}

}

 
2 réponses
  1. 7 janv. 2016, 19:16
    Can you share few screenshots of these two object's field details.. just to check how it is structured.. 
0/9000