You need to sign in to do that
Don't have an account?
sakthidharan Ambayiram
getting the below error when the trigger executes
Error:Apex trigger Test caused an unexpected exception, contact your administrator: Test: execution of AfterUpdate caused by: System.StringException: Invalid id: Dickenson Mobile Generators: Trigger.Test: line 8, column 1
Scenario: whenever the stage field changed to Close won in opportunities , a new object record (Litrack__c)should be created.
Code:
trigger Test on Opportunity (after update) {
Map<Id,Litrack__c> LitInsert= new Map<Id,Litrack__c>();
for(Opportunity opNew: Trigger.new){
for(Opportunity opOld: Trigger.old){
if(opNew.StageName!=opOld.StageName && opNew.StageName=='Closed Won'){
Litrack__c Record = new Litrack__c();
Record.Name=opNew.id;
Record.Opportunity_Lookup__c=opNew.Name;
LitInsert.put(Record.id,Record);
}
}
insert LitInsert.values();
}
}
Scenario: whenever the stage field changed to Close won in opportunities , a new object record (Litrack__c)should be created.
Code:
trigger Test on Opportunity (after update) {
Map<Id,Litrack__c> LitInsert= new Map<Id,Litrack__c>();
for(Opportunity opNew: Trigger.new){
for(Opportunity opOld: Trigger.old){
if(opNew.StageName!=opOld.StageName && opNew.StageName=='Closed Won'){
Litrack__c Record = new Litrack__c();
Record.Name=opNew.id;
Record.Opportunity_Lookup__c=opNew.Name;
LitInsert.put(Record.id,Record);
}
}
insert LitInsert.values();
}
}
You have to map the Lookup field with the opp.Id and Name with opp.Name.
trigger Test on Opportunity (after update) {
List<Litrack__c> tobeInsert = new List<Litrack__c>();
for(Opportunity opNew: Trigger.new){
for(Opportunity opOld: Trigger.old){
if(opNew.StageName!=opOld.StageName && opNew.StageName=='Closed Won'){
Litrack__c Record = new Litrack__c();
Record.Name=opNew.Name;
Record.Opportunity_Lookup__c=opNew.Id;
tobeInsert.add(Record);
}
}
if(tobeInsert.size()>0){
insert tobeInsert;
}
}
}
Thanks,
SEKAR RAJ
All Answers
You have to map the Lookup field with the opp.Id and Name with opp.Name.
trigger Test on Opportunity (after update) {
List<Litrack__c> tobeInsert = new List<Litrack__c>();
for(Opportunity opNew: Trigger.new){
for(Opportunity opOld: Trigger.old){
if(opNew.StageName!=opOld.StageName && opNew.StageName=='Closed Won'){
Litrack__c Record = new Litrack__c();
Record.Name=opNew.Name;
Record.Opportunity_Lookup__c=opNew.Id;
tobeInsert.add(Record);
}
}
if(tobeInsert.size()>0){
insert tobeInsert;
}
}
}
Thanks,
SEKAR RAJ
try changing below lines, must work
Thanks
Ramesh