Salesforce 任务销售团队触发
我正在尝试编写一个触发器,将“Name”字段(API中的WhoId)更新为与任务相关的帐户的自定义主联系人字段的“Name”(ContactId)Salesforce 任务销售团队触发,salesforce,apex,Salesforce,Apex,我正在尝试编写一个触发器,将“Name”字段(API中的WhoId)更新为与任务相关的帐户的自定义主联系人字段的“Name”(ContactId) trigger updateNameToPrimary on Task (after insert, after update) { for(Task t : Trigger.new) { t.WhoID = [SELECT Account.Id FROM Account
trigger updateNameToPrimary on Task (after insert, after update) {
for(Task t : Trigger.new) {
t.WhoID = [SELECT Account.Id
FROM Account
WHERE Id = :t.Id].Custom_Primary_Contact__c;
}
}
我一直在做一些测试,但认为它不起作用,也不知道为什么。只是在寻找一个方向正确的点,因为我仍在学习过程中。将触发器从“更新后插入”更改为“更新前插入”。
像这样的
trigger updateNameToPrimary on Task (before insert, before update) {
set<Id> accIdSet = new set<Id>();
for(Task t : Trigger.new) {
if(t.AccountId!=null)
accIdSet.add(t.AccountId);
}
map<Id,Account> accMap = new map<Id,Account>([select Custom_Primary_Contact__c from Account where Id in:accIdSet]);
for(Task t : Trigger.new) {
if(t.AccountId!=null && accMap.containsKey(t.AccountId))
t.WhoID = accMap.get(t.AccountId).Custom_Primary_Contact__c;
}
}
在任务上触发updateNameToPrimary(插入前,更新前){
set accIdSet=new set();
for(任务t:Trigger.new){
如果(t.AccountId!=null)
accIdSet.add(t.AccountId);
}
map accMap=新地图([从Id所在的帐户中选择自定义\主要\联系人\ c:accIdSet]);
for(任务t:Trigger.new){
if(t.AccountId!=null&&accMap.containsKey(t.AccountId))
t、 WhoID=accMap.get(t.AccountId).Custom\u Primary\u Contact\u\c;
}
}