尝试在生产中部署 apex 类时出现 INSUFFICIENT_ACCESS_ON_CROSS_REFERENCE_ENTITY
Posted
技术标签:
【中文标题】尝试在生产中部署 apex 类时出现 INSUFFICIENT_ACCESS_ON_CROSS_REFERENCE_ENTITY【英文标题】:INSUFFICIENT_ACCESS_ON_CROSS_REFERENCE_ENTITY when trying to deploy an apex class in production 【发布时间】:2021-05-18 19:23:09 【问题描述】:我正在尝试部署一个 apex 类,在尝试验证生产中的变更集时出现以下错误,有人可以帮忙吗?谢谢 ! :)
Apex 类说明:
该批次必须在不创建机会的情况下转换潜在客户,ToConvert... 是包含一些 ID 的潜在客户上的两个自定义字段。
错误信息:
System.DmlException:ConvertLead 失败。第 0 行的第一个异常;第一个错误:INSUFFICIENT_ACCESS_ON_CROSS_REFERENCE_ENTITY,您没有所需的权限。要继续,您必须对所选客户记录具有“读取”权限。: [] 堆栈跟踪:Class.AutomaticLeadConversion.execute:第 22 行,第 1 列。
Apex 类代码:
public with sharing class AutomaticLeadConversion implements
Database.Batchable<SObject>, Database.RaisesPlatformEvents
public Database.QueryLocator start(Database.BatchableContext bc)
return Database.getQueryLocator([SELECT Id, ToConvertAccountId__c, ToConvertContactId__c, IsConverted FROM Lead WHERE IsConverted = false and ToConvertAccountId__c != null and ToConvertContactId__c != null]);
public void execute(Database.BatchableContext bc, List<Lead> records)
List<Database.LeadConvert> leadConverts = new List<Database.LeadConvert>();
for(Lead record:records)
Database.LeadConvert lc = new Database.LeadConvert();
if (record.IsConverted == false)
lc.setConvertedStatus('Qualifié');
lc.setLeadId(record.Id);
lc.setDoNotCreateOpportunity(true);
lc.setAccountId(record.ToConvertAccountId__c);
lc.setContactId(record.ToConvertContactId__c);
leadConverts.add(lc);
Database.convertLead(leadConverts, true);
public void finish(Database.BatchableContext bc)
【问题讨论】:
注意:第 22 行是这个“Database.convertLead(leadConverts, true);” 【参考方案1】:问题是您正在转换可能分配给 que 的潜在客户,如果是这种情况,请确保将潜在客户分配给 person 而不是 que。或传递所有者ID
lc.setOwnerId(USER_ID);
【讨论】:
以上是关于尝试在生产中部署 apex 类时出现 INSUFFICIENT_ACCESS_ON_CROSS_REFERENCE_ENTITY的主要内容,如果未能解决你的问题,请参考以下文章
创建新的 Apache Apex 项目时出现 Maven 原型错误
当我在 Windows Azure 上交换暂存和生产部署时出现“错误:19 - 物理连接不可用”