You need to sign in to do that
Don't have an account?
Vadivel Murugan
Date
My old value does not come, only display new map value why. how can i get old map value in apex trigger
function readOnly(count){ }
You need to sign in to do that
Don't have an account?
Note that old map is only available in update and delete triggers.
for(Account a: trigger.new) {
if(a.My_Date__c != trigger.oldMap.get(a.Id).My_Date__c) {
//do something here
}
}
Since trigger.old and trigger.oldMap are null for Insert and Undelete triggers, this should only work for Updates and Deletes.
------------------------
If this resolves your problem, please mark the question as Resolved.
if(RecursiveHandler.runOnce1()){
CheckRevisiedVisitDate(VisitsNewMap,VisitsOldMap);
CheckManagerApproval(VisitsNewMap);
}
}
private void CheckRevisiedVisitDate(Map<id,Visits__c> VisitsNewMap,Map<id,Visits__c> VisitsOldMap)
{
Visits__c previsit=new Visits__c();
Visits__c changevisit=new Visits__c();
Visits__c visilist=new Visits__c();
Visits__c managerapproval;
for(Visits__c result: VisitsOldMap.values())
{
previsit.Actual_Service_Date__c=result.Actual_Service_Date__c;
}
for(Visits__c result: VisitsNewMap.values())
{
visilist.id=result.id;
changevisit.Actual_Service_Date__c=result.Actual_Service_Date__c;
managerapproval = [select id,name,Revised_Actual_Visit__c from Visits__c where id =:visilist.id];
}
if(visilist.id!=null)
{
if(previsit.Actual_Service_Date__c.month()==previsit.Actual_Service_Date__c.month() && managerapproval.Revised_Actual_Visit__c!=true){
for(Visits__c visit: VisitsNewMap.values()){
visit.addError('Manager can only reschedule the actual visit in different month');
}
}
}
system.debug('>>>>>>>>>>>month>>>>>>>>>'+previsit.Actual_Service_Date__c+changevisit.Actual_Service_Date__c);
}
/*====================================================
*Method Name : CheckManagerApproval
*Description : Check Manager Approval for Actual Visit Date
*Arguments : new Visit list
====================================================*/
private void CheckManagerApproval(Map<id,Visits__c> VisitsNewMap)
{
Visits__c check;
for(Visits__c result: VisitsNewMap.values()){
check = [select id,name,Revised_Actual_Visit__c from Visits__c where id =:result.id];
check.Revised_Actual_Visit__c=false;
}
update check;
}
Upadte me....
eg:
trigger HelloWorldTrigger on Book__c (before update) {
In your case that should become -
Suppose its the method - CheckRevisiedVisitDate(VisitsNewMap,VisitsOldMap) and field Visit_Date_c
then you need to do -
for(Visit__c v : VisitsNewMap.Values()) {
if(v.Visit_Date__c != VisitsOldMap.get(v.Id).Visit_Date__c) {
//your code here
}
}