You need to sign in to do that
Don't have an account?
r naresh
how provide same data Account to contact using after insert trigger
im getting this error please give me the solutuion Thank i advance
------------------------------------------------------------------------------------------------------
Error: Invalid Data.
Review all error messages below to correct your data.
Apex trigger samedata caused an unexpected exception, contact your administrator: samedata: execution of AfterInsert caused by: System.DmlException: Insert failed. First exception on row 0 with id 0039000001KC02vAAD; first error: INVALID_FIELD_FOR_INSERT_UPDATE, cannot specify Id in an insert call: [Id]: Trigger.samedata: line 22, column 1
trigger samedata on Account (before insert,after insert)
{
Account a1=new Account();
if(trigger.isbefore&&trigger.isinsert)
{
for(Account a:trigger.new)
{
a.name='naresh';
a.phone='9989099890';
a.email__c='naresh@axa.com';
a1=a;
}
}
else if(trigger.isafter&&trigger.isinsert)
{
list<contact> lc= new list<contact>();
for(contact c:[select account.name,phone,email from contact where account.id=:a1.id])
{
lc.add(c);
}
insert lc;
}
}
------------------------------------------------------------------------------------------------------
Error: Invalid Data.
Review all error messages below to correct your data.
Apex trigger samedata caused an unexpected exception, contact your administrator: samedata: execution of AfterInsert caused by: System.DmlException: Insert failed. First exception on row 0 with id 0039000001KC02vAAD; first error: INVALID_FIELD_FOR_INSERT_UPDATE, cannot specify Id in an insert call: [Id]: Trigger.samedata: line 22, column 1
trigger samedata on Account (before insert,after insert)
{
Account a1=new Account();
if(trigger.isbefore&&trigger.isinsert)
{
for(Account a:trigger.new)
{
a.name='naresh';
a.phone='9989099890';
a.email__c='naresh@axa.com';
a1=a;
}
}
else if(trigger.isafter&&trigger.isinsert)
{
list<contact> lc= new list<contact>();
for(contact c:[select account.name,phone,email from contact where account.id=:a1.id])
{
lc.add(c);
}
insert lc;
}
}
for this "select account.name,phone,email from contact where account.id=:a1.id" query you also get the Id of the contact.
So you need to create new instance. try below code.
trigger samedata on Account (before insert,after insert)
{
Account a1=new Account();
if(trigger.isbefore&&trigger.isinsert)
{
for(Account a:trigger.new)
{
a.name='naresh';
a.phone='9989099890';
a.email__c='naresh@axa.com';
a1=a;
}
}
else if(trigger.isafter&&trigger.isinsert)
{
list<contact> lc= new list<contact>();
for(contact c:[select account.name,AccountId, phone,email from contact where account.id=:a1.id])
{
Contact c1 = new Contact(phone = c.Phone, email = c.email,AccountId = c.AccountId);
lc.add(c1);
}
insert lc;
}
}
The data is inserted in to Account but not inserted in contact (eventhough data is doubled in contact when i trying to inserted data in account)
please give me the solutuion