-
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, 4 months ago by
Vikas Kumar.
-
This discussion was modified 9 years, 4 months ago by
Forcetalks.
-
This discussion was modified 9 years, 4 months ago by
Forcetalks.
-
This discussion was modified 9 years, 4 months ago by
Log In to reply.
Popular Salesforce Blogs
Your 1st Step to become a Salesforce Certified Platform Developer 1 [Exam Notes]
Are you one among the many who endeavour to become a proficient Salesforce Developer? Then, this would be your first step after the completion of…
A Complete Guide on How Real Estate Can Streamline Its Sales Funnel With Salesforce
As more and more people invest in Real Estate, the competition among the dealers is increasing rapidly. If you are a Real Estate dealer, you…
How to use aura:set in Salesforce Lightning?
aura:set - <aura:set > is used to set the value of an attribute inherited from a parent component, event, or to set the value of…
Popular Salesforce Videos
Salesforce training video for beginners
Salesforce is an innovative tool that can be very powerful when used properly. That’s why it’s important to find effective and trustworthy ways to learn…
Salesforce Lightning Development | Make Your Business Lightning-Ready With Algoworks!
Description - From creating Lightning-ready Salesforce AppExchange apps to making Salesforce instances Lightning-ready, we have mastered Lightning. Contact us for salesforce lightning development services! https://www.algoworks.com/salesforce/…
Getting your Customer on Track with Salesforce
Hear from Jonathan Gardner, Head of CRM Development First Group, and Lee Holsgrove, Client Adviser IBM as they discuss First Group's transformation bringing together a…