-
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 9 years, 10 months ago by
Vikas Kumar.
-
This discussion was modified 9 years, 10 months ago by
Forcetalks.
-
This discussion was modified 9 years, 10 months ago by
Forcetalks.
-
This discussion was modified 9 years, 10 months ago by
Log In to reply.
Popular Salesforce Blogs
Cloud Consulting and IoT: Creating Connected and Efficient Systems
Introduction: Businesses in today’s quickly changing technological landscape are always looking for new ways to innovate and streamline their operations. As the demand for connected…
Top 5 Important Benefits of Salesforce CRM
Customer focus and a customer-centric strategy are critical components of building a holistic environment where customer information may converge. By connecting key business areas like…
Control Access to Organization | Salesforce Guide
When it is necessary to protect the data at the broadest level, it can be done by managing users, passwords policies and applying some limits…
Popular Salesforce Videos
Salesforce and JIRA (Cloud) Connector Jam Session
From within Salesforce, AgileConnect allows you to create new or link to existing Jira issues, search for specific issues, track issue status, view details, link…
Add Styles and Data to a Salesforce Lightning Web Component
After completing this unit, you’ll be able to: Use CSS and Lightning Design System with a component. Get data from a Salesforce org. Deploy your…
Kizzy Consulting Salesforce Services - Grow Your Business 2X With Salesforce CRM
Kizzy Consulting is a Salesforce Ridge Consulting Partner in the USA and has successfully implemented 100+ Salesforce projects for 100+ clients across sectors like Financial Services,…