Triggers 删除联系人中的帐户名时,“联系人”记录应转换回“潜在客户”记录
每当联系人记录中的帐户发生更改时,该联系人应转换回潜在客户。我有从联系人到潜在客户的映射字段。这可能吗?如何做到这一点 我试图通过写一个触发器来实现:Triggers 删除联系人中的帐户名时,“联系人”记录应转换回“潜在客户”记录,triggers,salesforce,apex-code,soql,Triggers,Salesforce,Apex Code,Soql,每当联系人记录中的帐户发生更改时,该联系人应转换回潜在客户。我有从联系人到潜在客户的映射字段。这可能吗?如何做到这一点 我试图通过写一个触发器来实现: trigger insertLead on Contact (before update,before delete) { Set<Id> aId = new Set<Id>(); Lead myLead = new Lead(); for (Contact opp : Trigger.new )
trigger insertLead on Contact (before update,before delete) {
Set<Id> aId = new Set<Id>();
Lead myLead = new Lead();
for (Contact opp : Trigger.new ) {
aId.add(opp.AccountId);
List<Account> acc = [select Name from Account where Id in:aId];
List<Contact> con = [select LastName,FirstName from Contact where accountId = :aId];
for(Account a: acc){
myLead.Company = a.Name;
}
for(Contact c: con)
{
myLead.LastName = c.LastName;
myLead.FirstName = c.FirstName;
}
insert myLead;
}
这就是错误:
错误:Apex触发器insertLead导致意外异常,
请与管理员联系:insertLead:执行BeforeUpdate
原因:System.DmlException:插入失败。第一个例外
在第0行;第一个错误:必填字段\缺失,必填字段
缺少:[Company]:[Company]:Trigger.insertLead:第15行第1列
我已经检查过了,你的扳机可以很好地更新联系人。 若要删除,请添加以下条件
trigger insertLead on Contact (before update,before delete) {
Set<Id> aId = new Set<Id>();
Lead myLead = new Lead();
if (Trigger.isUpdate)
{
for (Contact opp : Trigger.new ) {
aId.add(opp.AccountId);
List<Account> acc = [select Name from Account where Id in:aId];
List<Contact> con = [select LastName,FirstName from Contact where AccountId = :aId];
for(Account a: acc){
myLead.Company = a.Name;
}
for(Contact c: con)
{
myLead.LastName = c.LastName;
myLead.FirstName = c.FirstName;
}
insert myLead;
}
else if(if (Trigger.isDelete)
{
for (Contact opp : Trigger.old ) {
aId.add(opp.AccountId);
List<Account> acc = [select Name from Account where Id in:aId];
List<Contact> con = [select LastName,FirstName from Contact where AccountId = :aId];
for(Account a: acc){
myLead.Company = a.Name;
}
for(Contact c: con)
{
myLead.LastName = c.LastName;
myLead.FirstName = c.FirstName;
}
insert myLead;
}
}
}
问候,
纳文
SSE