当我尝试将数据加载器用于此顶点触发器时,我收到异常。它说,一次只能更新100条记录的限制。以下是解释帐户对象触发器的代码。所有评论都非常感谢
trigger MaintainPrimaryOverriding on Account (before insert, before update) {
if (TriggerUpdateController.getPrimaryBranchOverriding()){
TriggerAffiliationControl.setLock();
for(Account s : Trigger.new)
{
if (Trigger.isUpdate){
Id ownerId = Trigger.oldMap.get(s.Id).OwnerId;
if (s.OwnerId != ownerId){
//Use Branch Associated with owner ID
TriggerUpdateController.UpdatePrimaryBranchOfficeForAccountOwnerChange(s);
TriggerUpdateController.UpdateAffiliation(s);
}
}
else if(Trigger.isInsert){
TriggerUpdateController.UpdatePrimaryBranchOfficeForAccountOwnerChange(s);
}
}
TriggerAffiliationControl.setUnLock();
}
}
谢谢!
答案 0 :(得分:0)
此错误 SOQL查询太多是由于您正在达到调控器限制。看Best Practice: Avoid SOQL Queries Inside FOR Loops
答案 1 :(得分:0)
看起来您在代码中为每个更新/插入记录调用下面的方法
“TriggerUpdateController.UpdatePrimaryBranchOfficeForAccountOwnerChange(一个或多个)” “TriggerUpdateController.UpdateAffiliation(一个或多个)”
看起来您正在上述语句中发出SOQL语句,这会导致管理限制错误。
你必须在这里进行两项修改。 1.在列表中捕获更新或插入的帐户列表,并将它们传递给上述两种方法。 2.使以上两种方法接受在步骤1中创建的帐户列表并进行处理。 3.如果要从其他对象获取详细信息,请在SOQL中获取这些详细信息。
如果您可以发布“TriggerUpdateController”的代码,我会更好地建议您更正代码。
此致 Pundareekam Kudikala