You need to sign in to do that
Don't have an account?

Before Insert or Upsert list must not have two identically equal elements
I am getting this error when I am selecting two items to be inserted from a list . This is working fine when I am inserting a single record, but giving error when multiple items are selected.
Please help here :
--------------------
public PageReference addSelectedProductAction()
{
for(ProductWrapper pw: products){
if(pw.isSelected){
pw.insertFirstProdAndDealSplit();
selectedProds.add(pw);
}
}
//------------------------------------- Opportunity Line Item Insert
String OppId = ApexPages.currentPage().getParameters().get('Id');
For (ProductWrapper p : selectedProds)
{
OpportunityLineItem oppItem = new OpportunityLineItem();
oppItem.OpportunityId = OppId ;
oppItem.PriceBookEntryId = p.product.Id;
oppItem.Roll_Call__c = p.summaryRecord.totalRollCall;
oppItem.UK_Setup__c = p.summaryRecord.totalSetup;
oppItem.ARC__c = p.summaryRecord.totalARC;
mapOppLineItems.put(p, oppItem);
p.firstDealSplit.dsObj.NAS_Opportunity__c = OppId;
lstDealSplitsFirstInsert.add(p.firstDealSplit.dsObj);
}
if(mapOppLineItems.size()>0)
{
Insert mapOppLineItems.values();
}
if(lstDealSplitsFirstInsert.size()>0)
{
Insert lstDealSplitsFirstInsert; /// Giving error on this line of the code
}
return null;
}
---------------------
Hi Rajeev,
You are getting the same record inside the list twice.
just initialize the object inside the for loop , I think you will not get error
Sagarika Rout
SFDC Developer
Thanks for the help .. But after declaring also , it is not solving the issue , it is giving the same error
Other wise do one thing , declare a set of ID,
like set<ID> setOfOpptID = new set<ID>();
then store all opportunity Id in to it. and iterate the set inside a for loop, let me know whether it is working or not !!!
Regards
Sagarika Rout
SFDC Developer
Thanks for your inputs.. the error still remains the same