-
Getting Error of FIELD_INTEGRITY_EXCEPTION while Executing Batch Class in salesforce
Hi All,
While Executing Batch Class i Am Getting the following Error
First error: Insert failed. First exception on row 0; first error: FIELD_INTEGRITY_EXCEPTION, field integrity exception: PricebookEntryId (pricebook entry is in a different pricebook than the one assigned to the opportunity): [PricebookEntryId]
Batch Class
global class UpdateProductInOpportunity implements Database.Batchable<sobject> {
global List <Id> inputforid;
global String query;
global String oppproduct;public UpdateProductInOpportunity(List<Id> userInputId){
inputforid=userInputId;
oppproduct='productForTest';}
global Database.QueryLocator Start(Database.BatchableContext BC){query='Select id FROM Opportunity WHERE id=:inputforid';
System.debug('####check###');
System.debug(query);
return Database.getqueryLocator(query);}
global void execute(Database.BatchableContext BC,list<opportunity>scope){
System.debug('####check###');for(opportunity oppp:scope){
Product2 pr=new Product2();pr.Name=oppproduct;
pr.IsActive=true;
insert pr;
PriceBook2 customPriceBook=new PriceBook2();
customPriceBook.Name='customPriceBook';
customPriceBook.IsActive=True;
insert customPriceBook;
PriceBook2 customPriceBookRec=[select Id from PriceBook2 WHERE id=:customPriceBook.id];
PriceBook2 standardPriceBookRecId=[select Id from PriceBook2 WHERE isstandard=true];
PriceBookEntry standardPriceBookEntry = new PriceBookEntry();
standardPriceBookEntry.Product2Id=pr.Id;
standardPriceBookEntry.Pricebook2Id=standardPriceBookRecId.id;
standardPriceBookEntry.UnitPrice=2000;
standardPriceBookEntry.IsActive=true;
insert standardPriceBookEntry;PriceBookEntry customPriceBookEntry = new PriceBookEntry();
customPriceBookEntry.Product2Id=pr.Id;
customPriceBookEntry.Pricebook2Id=customPriceBookRec.Id;
customPriceBookEntry.UnitPrice=5000;
customPriceBookEntry.IsActive=true;
insert customPriceBookEntry;
System.debug('####check###');
OpportunityLineItem oppLineItem = new OpportunityLineItem();
oppLineItem.OpportunityId = oppp.Id;
//oppLineItem.PricebookEntryId = customPriceBookEntry.Id;
oppLineItem.PricebookEntryId = standardPriceBookEntry.Id;
oppLineItem.UnitPrice = 7000;
oppLineItem.Quantity = 5;
insert oppLineItem;}
}global void finish (Database.BatchableContext BC) {
System.debug('####check###');}
Thanks
}-
This discussion was modified 8 years, 11 months ago by
Vikas Kumar.
-
This discussion was modified 8 years, 11 months ago by
Forcetalks.
-
This discussion was modified 8 years, 11 months ago by
Forcetalks.
-
This discussion was modified 8 years, 11 months ago by
Log In to reply.
Popular Salesforce Blogs
What is the Grant Management System in Salesforce? | All You Need to Know
Grant Management in Salesforce is a component of the Nonprofit Success Package (NPSP). In this package, Salesforce will award her 10 free licenses to some…
Seamless Integration of Salesforce with ERP Systems
Introduction For your business to thrive in today's competitive environment, it is critical for Customer Relationship Management (CRM) systems like Salesforce and Enterprise Resource Planning…
Popular Salesforce Videos
Apex Design Patterns : The Singleton Pattern in Salesforce || #Salesforce #DesignPatterns
The Singleton Pattern One Private variable of the class itself will hold the instance of the complete class so that we can access all the…
Top 5 Features Salesforce Winter Release '21
Even though we're in the middle of one of the strangest summers in our lives, we can rely on one constant: releases from Salesforce. It's…
Build a Discount Approval Process | Step by Step Guide | Trailhead Project
Building a robust discount approval process is the first step in getting a grip of price discounts that are eating into profit. In this video…