【问题标题】:opportunitycontactrole in salesforce triggers销售人员触发器中的机会联系人角色
【发布时间】:2013-07-08 14:51:41
【问题描述】:

我正在使用 apex 触发器,但在选择“联系人”时不断出错 我已经尝试了很多这种代码的不同配置,但我就是无法让它工作。 forceide 说没有在机会contactrole 上的联系 我没主意了。

到目前为止,这是我的代码:

在机会上触发 add_primary_advisor(插入后,更新后){ 列出初选=new List();

 for(Opportunity o:
    [Select Contact
    From OpportunityContactRole
    Where OpportunityContactRole='Staff' and isPrimary='True']) {

    primaries.add(Contact);
    }
    return primaries;

}

【问题讨论】:

    标签: triggers salesforce apex-code


    【解决方案1】:

    联系人不是 OpportunityContactRole 上的有效字段

    此对象仅将联系人的引用存储为 ContactId。

    如果您想从 OpportunityContactRole 访问联系人的字段,您可以通过交叉引用来访问其字段,如下所示。

    List<Contact> primaries = new List<Contact>();
    for(Opportunity o:
        [Select Contact.FirstName, Contact.LastName, Contact.Email
         From OpportunityContactRole
         Where OpportunityContactRole='Staff' and isPrimary='True']) {
       primaries.add(new Contact(FirstName=o.Contact.FristName, 
                LastName = o.Contact.LastName, Email =o.Contact.Email));
    }    
    

    【讨论】:

      【解决方案2】:

      由于您没有提供确切的错误,我将假设错误是因为您试图将一个不存在的变量“Contact”添加到您的“primaries”列表中。您可能想要添加的是“o.Co​​ntact”。

      【讨论】:

        【解决方案3】:

        转到 OpportunityContactRole,并检查 Contact 是否存在。可能是 Contact__C 更有可能。

        问题肯定出在 SOQL 查询上。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2013-01-30
          • 2012-09-12
          • 2012-04-08
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多