2016-04-21 40 views
0

我有這個APEX觸發器,我得到這個錯誤,但不知道爲什麼「錯誤:編譯錯誤:期待一個左尖括號,在第13行第10列找到'oppcntctrle'」APEX觸發器不會保存 - 錯誤消息

trigger updatecontactrolecount on Opportunity (before insert, before update) 
{ 

Boolean isPrimary; 
Integer iCount; 
Map<String, Opportunity> oppty_con = new Map<String, Opportunity>();//check  if the contact role is needed and add it to the oppty_con map 
for (Integer i = 0; i < Trigger.new.size(); i++) 
{ 
oppty_con.put(Trigger.new[i].id, 
Trigger.new[i]); 
} 
isPrimary = False; 
for (List oppcntctrle :[select OpportunityId from OpportunityContactRole where (OpportunityContactRole.IsPrimary = True and OpportunityContactRole.OpportunityId in :oppty_con.keySet())]) 
{ 
if (oppcntctrle .Size() >0) 
{ 
isPrimary = True; 
} 
} 
iCount = 0; 
for (List oppcntctrle2 : [select OpportunityId from OpportunityContactRole where (OpportunityContactRole.OpportunityId in :oppty_con.keySet())])//Query for Contact Roles 

{ 
if (oppcntctrle2 .Size()>0) 
{ 
iCount= oppcntctrle2 .Size(); 
} 
} 
for (Opportunity Oppty : system.trigger.new) //Check if roles exist in the map or contact role isn't required 
{ 
Oppty.Number_of_Contacts_Roles_Assigned__c = iCount; 
Oppty.Primary_Contact_Assigned__c =isPrimary; 
} 
} 

回答

1

而不是

for (List oppcntctrle :[select OpportunityId from OpportunityContactRole where (OpportunityContactRole.IsPrimary = True and OpportunityContactRole.OpportunityId in :oppty_con.keySet())]) 

應該

List<OpportunityContactRole> oppcntctrle = [select OpportunityId from OpportunityContactRole where (OpportunityContactRole.IsPrimary = True and OpportunityContactRole.OpportunityId in :oppty_con.keySet())]; 

同爲

for (List oppcntctrle2 : [select OpportunityId from OpportunityContactRole where (OpportunityContactRole.OpportunityId in :oppty_con.keySet())])//Query for Contact Roles 

應改爲

List<OpportunityContactRole> oppcntctrle2 = [select OpportunityId from OpportunityContactRole where (OpportunityContactRole.OpportunityId in :oppty_con.keySet())];//Query for Contact Roles