with 3 custom fields:
1) Lookup to user object.
2) Number of open task (number field)
3) Number if closed task (number field)
When a task is created by user A with let's stay status is IN PROGRESS, I need to create record in Task Tracking object record with these details :
1) Lookup field = user A
2) Number of open task = 1
3) Number of closed task = 0;
Now next time, when same user A creates another task, the new Task Tracking record shouldn't be created but it should only increment/decrement Number of task field.
I have tried this much. I was able to create Task Tracking record whenever a Task is created but It was creating new Task Tracking Object for every Task that I am creating
trigger TrackTask2 on Task (before insert) {
List<sujya__Task_Tracking__c> li = new List<sujya__Task_Tracking__c>();
sujya__Task_Tracking__c s = new sujya__Task_Tracking__c();
if(Trigger.isBefore && Trigger.isInsert){
for(Task t:Trigger.new)
{
s.sujya__User__c = t.CreatedById;
li.add(s);
}
insert li;
}
}
Appreiciate your help :)

Hi Sujit,As per the trigger which you implemented. That is the expected behaviour. Can you try something like this:trigger TrackTask2 on Task (before insert) { List<sujya__Task_Tracking__c> li = new List<sujya__Task_Tracking__c>();sujya__Task_Tracking__c s = new sujya__Task_Tracking__c();Map<Id,Id> tracker = new Map<Id,Id>();Map<Id,Integer> trackopen = new Map<Id,Integer>();for(Task t:Trigger.new){tracker.put(t.id,t.id);}List<sujya__Task_Tracking__c> lis = new List<sujya__Task_Tracking__c>([Select id,OpenTask,sujya__User__c,sujya__User__r.id from sujya__Task_Tracking__c where sujya__User__c IN:tracker.keyset()]); if(lis.size() > 0){for(sujya__Task_Tracking__c l:lis){if(tracker.containskey(l.sujya__User__r.id))trackopen.put(l.sujya__User__r.id,OpenTask);}}if(Trigger.isBefore && Trigger.isInsert){ for(Task t:Trigger.new){if(trackopen.containskey(t.CreatedById) && trackopen.get(CreatedById) > 0){for(sujya__Task_Tracking__c l:lis){if(tracker.containskey(l.sujya__User__r.id) && t.CreatedById == l.sujya__User__c)l.OpenTask = l.OpenTask + 1;li.add(l); }}else{s.sujya__User__c = t.CreatedById;s.OpenTask = 1;} li.add(s); } Database.upsert(li); } }Please delete the existing Records(sujya__Task_Tracking__c) that is realted to the user which you are going to enter the task, while testing, so that the trigger can work with the new logic.Regards,Sathish Loganathan