-
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, 7 months ago by
Vikas Kumar.
-
This discussion was modified 9 years, 7 months ago by
Forcetalks.
-
This discussion was modified 9 years, 7 months ago by
Forcetalks.
-
This discussion was modified 9 years, 7 months ago by
Log In to reply.
Popular Salesforce Blogs
Lookup Relationship in Salesforce - Here's All You Need to Know
Introduction Lookup Relationship is an object type relationship in Salesforce. It is one to one or one to many relationships between two objects. Some Features…
A Beginner’s Guide to Salesforce CRM Managed Services: What You Need to Know
Businesses across the world are using Salesforce CRM as a strategic tool for their growth. The operations of the CRM are maintained by an IT…
How to Reduce Project's Cost with Business Analysis | Salesforce Business Analyst Guide
❛Without BA, you risk returning to the starting point and adding to that a significant loss of time and financial resources❜ Why are business analysis…
Popular Salesforce Videos
Salesforce Tutorial for Beginners: Profiles and Permission Set in Salesforce
Modules Covered in this Training 1. Configuration Custom objects in salesforce Standard Objects in salesforce Lookup, Master Detail and Many to Many relationship in salesforce…
Everything New in Salesforce Developer Tools
Your productivity starts and ends with the tools you use. Learn how Salesforce Developer Tooling can help you collaborate more effectively with your whole team.…
Einstein Opportunity Scoring For Everyone | Salesforce
Let artificial intelligence help you and your sales team focus on the right opportunities and close more deals. See how Einstein Opportunity Scoring makes it…