Salesforce.com触发器 - 需要主要联系人以节省机会

时间:2013-01-13 21:04:23

标签: triggers salesforce apex-code

目前有两个AppExchange应用程序可以执行此操作,但我想知道是否有人在没有安装应用程序的情况下想出了如何执行此操作,因为我可以在组织中安装的应用程序数量有限。

触发器需要检查是否列出了联系人,如果没有,则应显示错误消息。我尝试使用验证规则,但没有运气,因为OpportunityContactRole是一个单独的对象。

有人能提出他们的想法吗?

1 个答案:

答案 0 :(得分:1)

trigger OpportunityBeforUpdate on Opportunity (before update) {
   set<Id> oppIdSet = new set<Id>();
   set<Id> OpportunityContactRoleIdSet = new set<Id>();
   for(Opportunity opp:trigger.new){
  if("Some condition")oppIdSet.add(opp.Id);
   }
 for(OpportunityContactRole ocr:[select Id,OpportunityId from OpportunityContactRole                                        where OpportunityId in:oppIdSet]){
OpportunityContactRoleIdSet.add(ocr.OpportunityId);
   }
  for(Opportunity opp:trigger.new){
if(oppIdSet.contains(opp.Id) && !OpportunityContactRoleIdSet.contains(opp.Id))
    opp.addError('Some error'); 
  }

}