function readOnly(count){ }
Starting November 20, the site will be set to read-only. On December 4, 2023,
forum discussions will move to the Trailblazer Community.
+ Start a Discussion
Vanessa BarrosVanessa Barros 

before update - closed date in a case

Hi.

Someone knows if i have the closed date before update?

 

my trigger is

 

//Situação de Fecho de CASO
If(trigger.IsUpdate){
    If(system.trigger.NewMap.get(c.Id).Status == 'Closed'||system.trigger.NewMap.get(c.Id).Status == 'Closed - 1º call'
    ||system.trigger.NewMap.get(c.Id).Status == 'Closed - rejected' ||system.trigger.NewMap.get(c.Id).Status == 'Information'){
    BusinessHours bh = [select Id, FridayEndTime,MondayEndTime,TuesdayEndTime,WednesdayEndTime,
    ThursdayEndTime from BusinessHours where IsDefault=true];
    system.debug('closed date :' + system.trigger.NewMap.get(c.Id).ClosedDate);
            Long effective_time = BusinessHours.diff(bh.id, c.CreatedDate,system.trigger.NewMap.get(c.Id).ClosedDate );
            c.Effective_Resolution_Time__c =effective_time;
            c.Effective_Resolution_Time_h__c = effective_time/60/60/1000L;
            if(c.Effective_Resolution_Time__c > c.Estimated_time__c){
            c.Exceeded_Time__c =( c.Effective_Resolution_Time__c - c.Estimated_time__c)/60/60/1000L;
           
            }else {
            c.Exceeded_Time__c = 0;
            }
            
            
        
    }}

 

gives me an error that system.trigger.NewMap.get(c.Id).ClosedDate); is null

LakshmanLakshman

Hi Vanessa,

Please find my below code for updating your case before update:

 

 

 

 

trigger updateCaseStatus on Case (before update) {
for (Case c : trigger.new)
{
if(trigger.isBefore)
{
If(trigger.isUpdate){
if(c.Status == 'Closed' || c.Status == 'Closed - 1º call' || c.Status == 'Closed - rejected' || c..Status == 'Information')
{
BusinessHours bh = [select Id, FridayEndTime,MondayEndTime,TuesdayEndTime,WednesdayEndTime,
ThursdayEndTime from BusinessHours where IsDefault=true];
system.debug('closed date :' + c.ClosedDate);
Long effective_time = BusinessHours.diff(bh.id, c.CreatedDate,c.ClosedDate );
c.Effective_Resolution_Time__c =effective_time;
c.Effective_Resolution_Time_h__c = effective_time/60/60/1000L;

if(c.Effective_Resolution_Time__c > c.Estimated_time__c){
c.Exceeded_Time__c =( c.Effective_Resolution_Time__c - c.Estimated_time__c)/60/60/1000L;
}else {
c.Exceeded_Time__c = 0;
}

}
}
}
}
}

 

 

Let me know if your facing issues in this.

 

Regards,

Lakshman