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
Chinna SfdcChinna Sfdc 

Task Trigger

Hi Team,

Can any one please help me to create a trigger for below senario.

Object: Task
if Task.Support Team Request = AE Support Request
then{
if Task.created by.Pole = NA or North America then set Task.project= AE NA or Project id= xxxx
if Task.created by.Pole = China then set Task.project= AE China or Project id= xxxx1
if Task.created by.Pole = APAC then set Task.project= AE APAC or Project id= xxxx2
if Task.created by.Pole = EMEA or MEA then set Task.project= AE EMEA or Project id= xxxx3
if Task.created by.Pole = LATAM then set Task.project= AE LATAM or Project id= xxxx4
}

Thanks in Advance
Deepak agarwal 9Deepak agarwal 9
Hi,
 First of all what is Support Team Request is it a custom field?beacuse if it is then you have custom field you have to access it with __c.

Thanks
Nitin SharmaNitin Sharma
Hi Chinna,

Use below code. It will help.
 
trigger TaskUpdate on Task (before insert, before update) {
  
list<Task> Tasklist=new List<Task>();
for(Task t : Trigger.new){

 if(t.Support_Team_request__c = 'AE Support Request'  ){
        if(t.created by.Pole = 'NA')
            t.project= 'AE NA';
        else if(t.created by.Pole = 'China')
            t.project= 'AE China';
        else if(t.created by.Pole = 'APAC' )
            t.project= 'AE APAC';
        else if(t.created by.Pole = 'EMEA' )
            t.project= 'AE EMEA';
		else if(t.created by.Pole = 'LATAM' )
            t.project= 'AE LATAM';	
            
    }
	
}
update Tasklist;
}

Thanks,
Nitin Sharma
Chinna SfdcChinna Sfdc
Hi Nitin,

Thank you so much. Using your Login but facing error like "expecting a right parentheses, found 'by.Pole' at line 7 column 21" .Can you please help me on that.

Thanks
Nitin SharmaNitin Sharma
Hi Chinna,

created by.Pole is custom field or what?


 
Chinna SfdcChinna Sfdc
@Nitin, Yes, Pole is the custom field which are avalable in the User object.

 
Nitin SharmaNitin Sharma
Give proper api name?
Chinna SfdcChinna Sfdc
Api name is Pole__c 
Nitin SharmaNitin Sharma
Then use "t.Pole__C" instead of "t.created by.Pole".
 
Chinna SfdcChinna Sfdc
Hi Nitin,

Thanks for your help.But we are facing some problems.
Trigger compilation is successfullyComplted.But result is not expected. Can you tell me one thing in my requirement is project field is a Lookup field, whenever we select Support Request Team = "AE Support Request" it will populate "AE NA" in project field. Can you please update me how we can achieve this. Please find my below trigger which we are done yesterday and correct me where we made the mistakes.

trigger TaskUpdate on  Project_Task__c  (before insert,before update){
  
list<Project__c> Tasklist=new List<Project__c>();
//set<id>taskcreatedbyids = new set<id>();

/*for(Project_Task__c  t : Trigger.new){
   taskcreatedbyids.add(t.createdBy.ID);
}*/
for(Project_Task__c  t : Trigger.new){

 if(t.TypeofRequest__c == 'AE Support Request'){         
         if(t.createdby.Pole__c == 'NA')            
             t.Project__c = 'AE NA';            
         else if(t.createdby.Pole__c == 'China')
             t.Project__c = 'AE China';
         else if(t.createdby.Pole__c == 'APAC')
             t.Project__c = 'AE APAC';
         else if(t.createdby.Pole__c == 'EMEA')
             t.Project__c = 'AE EMEA';
         else if(t.createdby.Pole__c == 'LATAM')
             t.Project__c = 'AE LATAM';
         }
    }
 update Tasklist;
}


Thanks
Nitin SharmaNitin Sharma
Hi,
Use Task as an object. Because DML operation having on Task object.
I changed in your code so use below code.
trigger TaskUpdate on Task  (before insert,before update){
  
list<Task> Tasklist=new List<Task>();
//set<id>taskcreatedbyids = new set<id>();

/*for(Project_Task__c  t : Trigger.new){
   taskcreatedbyids.add(t.createdBy.ID);
}*/
for(Task  t : Trigger.new){

 if(t.TypeofRequest__c == 'AE Support Request'){         
         if(t.createdby.Pole__c == 'NA')            
             t.Project__c = 'AE NA';            
         else if(t.createdby.Pole__c == 'China')
             t.Project__c = 'AE China';
         else if(t.createdby.Pole__c == 'APAC')
             t.Project__c = 'AE APAC';
         else if(t.createdby.Pole__c == 'EMEA')
             t.Project__c = 'AE EMEA';
         else if(t.createdby.Pole__c == 'LATAM')
             t.Project__c = 'AE LATAM';
         }
    }
 update Tasklist;
}

Let me know if you need any help. 

Thanks,
Nitin Sharma
Chinna SfdcChinna Sfdc
@Nitin, Task is different object..But we are using Object name = TaskRay Task (Managed),  API Name is  "TASKRAY__Project_Task__c " , "Project(LookUpfield ) to "TaskRay Project".
Let say:

1.TASKRAY__Project_Task__c  : Fields are
    Support Request Team -> Type_of_Request__c = 'AE Support Request'
    Project - > TASKRAY__Project__c = "AE NA" or "AE Global"  Lookup filed to TASKRAY__Project__c

Hope you are getting my senario now.There is no relation ship betwen Task and TaskRay.

Thanks
Nitin SharmaNitin Sharma
Hi,
ping me on hangout.
nitin.july19@gmail.com
Nitin SharmaNitin Sharma
Hi ,
Use below code hope it will help.
 
trigger TaskUpdate on  TASKRAY__Project_Task__c  (before insert,before update){
  List<TASKRAY__Project_Task__c> list = new List<TASKRAY__Project_Task__c>();
    for(TASKRAY__Project_Task__c obj: Trigger.new)
    {
        if (obj.Support_Team_request__c = 'AE Support Request' )
        {
            list.add(TASKRAY__Project_Task__c.id);
        }
    }
List<Project__c> Plist = new List<Project__c>([SELECT Id,TASKRAY__Project_Task__c.id from Project__c Where TASKRAY__Project_Task__c.id IN :list ]);
for(Project_c  p : Plist){
         if(plist != Null){
         if(p.createdby.Pole__c == 'NA')            
             p.TASKRAY__Project__c = 'AE NA';            
         else if(p.createdby.Pole__c == 'China')
             p.TASKRAY__Project__c= 'AE China';
         else if(p.createdby.Pole__c == 'APAC')
             p.TASKRAY__Project__c = 'AE APAC';
         else if(p.createdby.Pole__c == 'EMEA')
             p.TASKRAY__Project__c = 'AE EMEA';
         else if(p.createdby.Pole__c == 'LATAM')
             p.TASKRAY__Project__c = 'AE LATAM';
         }
    }
 update Plist;
}

 
Chinna SfdcChinna Sfdc
@Nitin, Thanks for your help. Will check and let you know soon

Thanks
Nitin SharmaNitin Sharma
Hi Chinna,

Updated code according to your req.
trigger TaskUpdate on  TASKRAY__Project_Task__c  (before insert,before update){
  List<TASKRAY__Project_Task__c> list = new List<TASKRAY__Project_Task__c>();
    for(TASKRAY__Project_Task__c t: Trigger.new)
    {
        if (t.Type_of_Request__c = 'AE Support Request' )
        {
         if(t.createdby.Pole__c == 'NA')            
             t.TASKRAY__Project__c = 'AE NA';            
         else if(t.createdby.Pole__c == 'China')
             t.TASKRAY__Project__c= 'AE China';
         else if(t.createdby.Pole__c == 'APAC')
             t.TASKRAY__Project__c = 'AE APAC';
         else if(t.createdby.Pole__c == 'EMEA')
             t.TASKRAY__Project__c = 'AE EMEA';
         else if(t.createdby.Pole__c == 'LATAM')
             t.TASKRAY__Project__c = 'AE LATAM';
         }
    }
 update list;
}

Thanks,
Nitin Sharma