Triggers Apex触发器--使用数据加载程序时的值不正确
我在account对象上有一个字段,该字段在编辑帐户时更新。单独编辑记录时,会将正确的值写入字段。当我使用数据加载器时。一个值适用于所有记录。这是我的扳机,请告诉我Triggers Apex触发器--使用数据加载程序时的值不正确,triggers,salesforce,apex,Triggers,Salesforce,Apex,我在account对象上有一个字段,该字段在编辑帐户时更新。单独编辑记录时,会将正确的值写入字段。当我使用数据加载器时。一个值适用于所有记录。这是我的扳机,请告诉我 trigger Populate_Transfer_Manager on Account (before insert, before Update) { list<id> aid = new list<id>(); for(account a: trigger.new){
trigger Populate_Transfer_Manager on Account (before insert, before Update) {
list<id> aid = new list<id>();
for(account a: trigger.new){
aid.add(a.ownerid);
}
list<user> managers = new list<user>();
managers = [select managerid from user where id in: aid];
set<id> manid = new set<id>();
for(user u: managers){
manid.add(u.managerid);
}
for(account a: trigger.new){
for(id i: manid){
a.transfer_manager__c = i;
}
}
}
触发器仅为每批200个触发一次,并将该值分配给该批中的所有记录。使用映射,我能够为数据库中的所有记录分配正确的值
trigger Populate_Transfer_Manager on Account (before insert, before Update) {
list<id> aid = new list<id>();
for(account a: trigger.new){
aid.add(a.ownerid);
}
map<id, user> users = new map<id, user>(
[select managerid from user where id in: aid]);
for(account a: trigger.new){
a.Transfer_Manager__c = users.get(a.ownerid).managerid;
}
}
我用地图算出来的。我不能在8小时内发布解决方案。今天晚些时候将发布。是否介意继续更新此内容,以便其他人可以从您的错误中吸取教训?