-
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 7 years, 3 months ago by Vikas Kumar.
- This discussion was modified 7 years, 3 months ago by Forcetalks.
- This discussion was modified 7 years, 3 months ago by Forcetalks.
Log In to reply.
Popular Salesforce Blogs
What do you mean by Ant Migration in 2023? | Salesforce Developer Guide
Salesforce is a popular customer relationship management (CRM) platform used by businesses of all sizes to manage their sales, marketing, and customer service operations. One…
Future Methods in Salesforce: An Overview
Future methods are is a set of code that runs in the background. It is basically an asynchronous process. Don’t forget to check out: Asynchronous…
Salesforce Commerce Cloud for E-Commerce
What Is Commerce Cloud? Commerce Cloud is one of the eight product clouds that make up the Salesforce Intelligent Customer Success Platform. Along with Sales…
Popular Salesforce Videos
All Things Telesales Podcast
Sales Director at Natterbox, Ian Moyse shares with us 3 Powerful Pillars of Servant Leadership - Yearning, Earning, Learning. Ian drops wisdom bombs left and right…
Salesforce SOAP API integration using Partner WSDL
This video is another one on our Salesforce Integration learning video series, through this video our experts will be going to demonstrate how to use…
Handle Events in Lightning Web Components | Salesforce Tutorial
Watch this video and learn about the following: Create an app that includes multiple components. Describe the file structure of a complex component. Handle events.