You need to sign in to do that
Don't have an account?
sfdc007
Trigger Help needed
Hi,
I need help on the following requirement as follows
1) I am having a custom field called as sub status_c in my custom object Teamform__c , when the sub status picklist value changes i need to calculate the ttime difference between old sub status and new sub status vaule change
i have created 3 fields as follws
Old_Time__c -> Date/Time data type
New_Time__c -> Date/Time data type
Days_Difference__c -> days difference
but it is not updating the value in the field
i am getting the below error
Sandbox
Sandbox
Apex script unhandled trigger exception by user/organization: 005U0000000HH3g/00Dq00000009WJY Source organization: 00DU0000000HiA8 (null)
TeamformTriggertime: execution of BeforeUpdate
caused by: System.NullPointerException: Attempt to de-reference a null object
Trigger.TeamformTriggertime: line 18, column 1
Let me know if i am doing anything wrong in my trigger
MY TRIGGER CODE :
trigger TeamformTrigger on Team_Form__c (before insert,before update) {
List<Team_Form__c> Teamform = new List<Team_Form__c>();
if(Trigger.isbefore){
if(Trigger.isInsert){
for(Team_Form__c team:Trigger.new){
Datetime dt = DateTime.newInstance(Date.today(), Time.newInstance(0, 0, 0, 0));
String dayOfWeek=dt.format('EEEE');
System.debug('Day : ' + dayOfWeek);
if((dayOfWeek!='Saturday' || dayOfWeek!='Saturday') && (team.SubStatus__c!=null || team.SubStatus__c!=''))
team.Old_Time__c=System.now();
}
}
if(Trigger.isUpdate){
for(Team_Form__c teams:Trigger.new){
Datetime dt = DateTime.newInstance(Date.today(), Time.newInstance(0, 0, 0, 0));
String dayOfWeek=dt.format('EEEE');
System.debug('Day : ' + dayOfWeek);
Date convertCreatedDate = date.newinstance(Trigger.oldMap.get(teams.Id).Old_Time__c.year(), Trigger.oldMap.get(teams.Id).Old_Time__c.month(), Trigger.oldMap.get(teams.Id).Old_Time__c.day());
if((Trigger.oldMap.get(teams.Id).SubStatus__c!=Trigger.newMap.get(teams.Id).SubStatus__c) &&
(teams.SubStatus__c!=null || teams.SubStatus__c!='') && (dayOfWeek!='Saturday' || dayOfWeek!='Saturday')){
Integer dateDifference = System.today().daysBetween(convertCreatedDate);
teams.New_Time__c=System.now();
teams.Days_Difference__c=dateDifference;
}
}
}
}
}
Kindly help me on this regard
Thanks in Advance
I need help on the following requirement as follows
1) I am having a custom field called as sub status_c in my custom object Teamform__c , when the sub status picklist value changes i need to calculate the ttime difference between old sub status and new sub status vaule change
i have created 3 fields as follws
Old_Time__c -> Date/Time data type
New_Time__c -> Date/Time data type
Days_Difference__c -> days difference
but it is not updating the value in the field
i am getting the below error
Sandbox
Sandbox
Apex script unhandled trigger exception by user/organization: 005U0000000HH3g/00Dq00000009WJY Source organization: 00DU0000000HiA8 (null)
TeamformTriggertime: execution of BeforeUpdate
caused by: System.NullPointerException: Attempt to de-reference a null object
Trigger.TeamformTriggertime: line 18, column 1
Let me know if i am doing anything wrong in my trigger
MY TRIGGER CODE :
trigger TeamformTrigger on Team_Form__c (before insert,before update) {
List<Team_Form__c> Teamform = new List<Team_Form__c>();
if(Trigger.isbefore){
if(Trigger.isInsert){
for(Team_Form__c team:Trigger.new){
Datetime dt = DateTime.newInstance(Date.today(), Time.newInstance(0, 0, 0, 0));
String dayOfWeek=dt.format('EEEE');
System.debug('Day : ' + dayOfWeek);
if((dayOfWeek!='Saturday' || dayOfWeek!='Saturday') && (team.SubStatus__c!=null || team.SubStatus__c!=''))
team.Old_Time__c=System.now();
}
}
if(Trigger.isUpdate){
for(Team_Form__c teams:Trigger.new){
Datetime dt = DateTime.newInstance(Date.today(), Time.newInstance(0, 0, 0, 0));
String dayOfWeek=dt.format('EEEE');
System.debug('Day : ' + dayOfWeek);
Date convertCreatedDate = date.newinstance(Trigger.oldMap.get(teams.Id).Old_Time__c.year(), Trigger.oldMap.get(teams.Id).Old_Time__c.month(), Trigger.oldMap.get(teams.Id).Old_Time__c.day());
if((Trigger.oldMap.get(teams.Id).SubStatus__c!=Trigger.newMap.get(teams.Id).SubStatus__c) &&
(teams.SubStatus__c!=null || teams.SubStatus__c!='') && (dayOfWeek!='Saturday' || dayOfWeek!='Saturday')){
Integer dateDifference = System.today().daysBetween(convertCreatedDate);
teams.New_Time__c=System.now();
teams.Days_Difference__c=dateDifference;
}
}
}
}
}
Kindly help me on this regard
Thanks in Advance
It seems that value in 'Old_Time__c' is blank.
Write one line before line no 18 and let me know what it gives.
System.debug('Time : '+Trigger.oldMap.get(teams.Id).Old_Time__c);
Thanks,
Karanraj
Old Time
5/15/2015 5:05 AM
New Time
5/15/2015 5:12 AM
Days Difference
0
but it is displaying as 0 wher there is a change in time , let me know if i am doing wrong in my trigger
trigger TeamformTrigger on Team_Form__c (before insert,before update) {
List<Team_Form__c> Teamform = new List<Team_Form__c>();
if(Trigger.isbefore){
if(Trigger.isInsert){
for(Team_Form__c team:Trigger.new){
Datetime dt = DateTime.newInstance(Date.today(), Time.newInstance(0, 0, 0, 0));
String dayOfWeek=dt.format('EEEE');
System.debug('Day : ' + dayOfWeek);
if((dayOfWeek!='Saturday' || dayOfWeek!='Saturday') && (team.SubStatus__c!=null || team.SubStatus__c!=''))
team.Old_Time__c=System.now();
}
}
if(Trigger.isUpdate){
for(Team_Form__c teams:Trigger.new){
Datetime dt = DateTime.newInstance(Date.today(), Time.newInstance(0, 0, 0, 0));
String dayOfWeek=dt.format('EEEE');
System.debug('Day : ' + dayOfWeek);
Date convertCreatedDate = date.newinstance(Trigger.oldMap.get(teams.Id).Old_Time__c.year(), Trigger.oldMap.get(teams.Id).Old_Time__c.month(), Trigger.oldMap.get(teams.Id).Old_Time__c.day());
if((Trigger.oldMap.get(teams.Id).SubStatus__c!=Trigger.newMap.get(teams.Id).SubStatus__c) &&
(teams.SubStatus__c!=null || teams.SubStatus__c!='') && (dayOfWeek!='Saturday' || dayOfWeek!='Saturday')){
Integer dateDifference = System.today().daysBetween(convertCreatedDate);
teams.New_Time__c=System.now();
teams.Days_Difference__c=dateDifference;
}
}
}
}
}