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
B TulasiB Tulasi 

insert current date into the custom date field using triggers

Hi All,

I need to insert current date into the date field. Here i am using trigger for that. But, it is not inserting the current date.
Plead check my code and what is the problem in that.
Bellow my code.

Code :

trigger Tmesheet on Work_Log_Sheet__c (before insert, after insert) {

    list<Work_Log_Sheet__c > lwls = new list<Work_Log_Sheet__c> ();
      for(Work_Log_Sheet__c wls : trigger.new){
        wls.Work_Update_Date__c=system.today();
        lwls.add(wls);        
        insert lwls;   
        }     
}

Error :

Tmesheet: execution of BeforeInsert caused by: System.SObjectException: DML statement cannot operate on trigger.new or trigger.old: Trigger.Tmesheet: line 7, column 1


Thanks in advance
Thulasi
Best Answer chosen by B Tulasi
Amit Chaudhary 8Amit Chaudhary 8
If After Insert is not required then please remove it and try below code.
trigger Tmesheet on Work_Log_Sheet__c (before insert) {

    list<Work_Log_Sheet__c > lwls = new list<Work_Log_Sheet__c> ();
      for(Work_Log_Sheet__c wls : trigger.new)
	  {
        wls.Work_Update_Date__c=system.today();
      }     
}

Please let us know if this will help you
 

All Answers

Amit Chaudhary 8Amit Chaudhary 8
Please try below code . I hope that will help you
trigger Tmesheet on Work_Log_Sheet__c (before insert, after insert) {

    list<Work_Log_Sheet__c > lwls = new list<Work_Log_Sheet__c> ();
      for(Work_Log_Sheet__c wls : trigger.new)
	  {
        wls.Work_Update_Date__c=system.today();
      }     
}
Please let us kn ow if this will help you

 
B TulasiB Tulasi
Hi Amit,

It's working perfect. But, After insert is not required.
Amit Chaudhary 8Amit Chaudhary 8
If After Insert is not required then please remove it and try below code.
trigger Tmesheet on Work_Log_Sheet__c (before insert) {

    list<Work_Log_Sheet__c > lwls = new list<Work_Log_Sheet__c> ();
      for(Work_Log_Sheet__c wls : trigger.new)
	  {
        wls.Work_Update_Date__c=system.today();
      }     
}

Please let us know if this will help you
 
This was selected as the best answer
Arunkumar RArunkumar R
Hi Thulasi,

You can seperate logic as below,
 
trigger Tmesheet on Work_Log_Sheet__c (before insert, after insert) {
    
    if(Trigger.isBefore && Trigger.isInsert)
    {
        for(Work_Log_Sheet__c wls : Trigger.new)
        {
            wls.Work_Update_Date__c=system.today();
        }     
    }
    else if(Trigger.isAfter && Trigger.isInsert)
    {
        // do your logic here
    }
}