2013-12-09 26 views
0

我试图获取特定用户拥有的所有帐户的ID。但我收到错误消息。变量不存在:触发器

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]; 
} 

回答

0

当你调用Trigger.new时,它将返回一个参与DML操作的对象列表(不管你是否只更新了一条记录)。我认为销售人员的前提是你必须对每一个触发器进行批量化。

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(); 

}

就是这样。 如果您需要一个阵列,只需从集合中创建列表