变量不存在:触发器

时间:2013-12-09 06:56:01

标签: apex

我正在尝试让所有帐户由特定用户拥有。但我收到错误。

trigger UserGoingLeave on User (before update) {
User userOnLeave = Trigger.new();
Id delegatedApprover = userOnLeave.DelegaterApproverId;
List<id> accId = [SELECT Id FROM Account WHERE OwnerId = :userOnLeave.Id];   
}

2 个答案:

答案 0 :(得分:0)

当您调用Trigger.new时,这将返回DML操作中涉及的对象列表(如果您只更新了一条记录,则无关紧要)。我认为salesforce的前提是你必须批量化每一个触发器。

答案 1 :(得分:0)

不是Trigger.new()但是Trigger.new。但你需要所有的ID,我建议使用以下方法

trigger UserGoingLeave on User (before update) {
  Set<ID> acctId 
     = new Map<ID, Account>([select ID from Account where OwnerID in :Trigger.newMap.keySet() ])
        .keySet();

}

就是这样。 如果您需要一个数组,只需从集合中创建List