You need to sign in to do that
Don't have an account?
Abhishek Singh 88
Is there any to stop recursive trigger rather than static variable.
Hi All,
Trigger recursion is still persisting , i have used static variable though. here is code snippet.
Any help would be appriciated.
Trigger recursion is still persisting , i have used static variable though. here is code snippet.
public void decommising(List<BMCServiceDesk__BMC_BaseElement__c> newbelist,map<id,BMCServiceDesk__BMC_BaseElement__c> oldbelist) { for(BMCServiceDesk__BMC_BaseElement__c be:newbelist) { beid.add(be.id); } if(CheckRecursive.cmdbserver1==false) { serverdecommission(newbelist,oldbelist); } } public void serverdecommission(List<BMCServiceDesk__BMC_BaseElement__c> newbelist1,map<id,BMCServiceDesk__BMC_BaseElement__c> oldbelist1) for(BMCServiceDesk__BMC_BaseElement__c berec:childCis)//related base element record could be source or destination { //putting relationship for ci's in map, to get id of cis level 2. if(destinationmap1.get(berec.id)!=null) destinationList.addAll(destinationmap1.get(berec.id)); system.debug('destinationList'+destinationList); if(sourcemap1.get(berec.id)!=null) sourceList.addAll(sourcemap1.get(berec.id)); system.debug('sourceList'+sourceList); if(sourceList.size()>0) sourcedestinationlist.addAll(sourceList); if(destinationList.size()>0) sourcedestinationlist.addAll(destinationList); system.debug('sourcedestinationlist'+sourcedestinationlist); for(BMCServiceDesk__BMC_BaseRelationship__c brrec:sourcedestinationlist) { if(brrec.BMCServiceDesk__Source_ClassName__c=='BMC_Application') besourceid.add(brrec.BMCServiceDesk__Source__c); if(brrec.BMCServiceDesk__Destination_ClassName__c=='BMC_Application') besourceid.add(brrec.BMCServiceDesk__Destination__c); } if(besourceid.size()>0) baseapplist=[select id,name,HITRUST__c,PCI__c,PHI__c,Fisma_High_New__c,Fisma_Low_New__c,Fisma_Mod_New__c,SOC__c,SOC2__c,SOX__c,Environment__c,UAR__c,BMCServiceDesk__ClassName__c from BMCServiceDesk__BMC_BaseElement__c where ID IN:besourceid]; system.debug('baseapplist'+baseapplist); for(BMCServiceDesk__BMC_BaseElement__c baseapp:baseapplist) { if(baseapp.HITRUST__c) flag1=true; } for(BMCServiceDesk__BMC_BaseElement__c basebe:newbelist1) { if(oldbelist1.get(basebe.id).HITRUST__c!=basebe.HITRUST__c && basebe.HITRUST__c==false) { if(flag1) { berec.HITRUST__c=true; } else{ berec.HITRUST__c=false; } } } baseelementlist.add(berec); } basemap.putAll(baseelementlist); system.debug('base map'+basemap.values()); if (basemap.size()>0) { update basemap.values(); CheckRecursive.cmdbserver1=true; system.debug(basemap); } }
Any help would be appriciated.
-greg