-
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, 8 months ago by
Vikas Kumar.
-
This discussion was modified 9 years, 8 months ago by
Forcetalks.
-
This discussion was modified 9 years, 8 months ago by
Forcetalks.
-
This discussion was modified 9 years, 8 months ago by
Log In to reply.
Popular Salesforce Blogs
How Salesforce Pardot Derives Your Sales Engagement?
Sales are a crucial aspect of every business, and now with the advent of social media and other online platforms, you not only have to…
Brave Your Business Challenges With Salesforce
As any business grows, it faces a plethora of challenges along the way. To keep up with the cut-throat market competition, it is extremely important…
Can You Really Learn Salesforce Marketing Cloud in 30 Days?
If you’re serious about taking your marketing career to the next level, mastering Salesforce Marketing Cloud could be a game-changer. But with so many features,…
Popular Salesforce Videos
Custom Aura Feed Component | forceChatter:feed | Chatter in #Salesforce | Salesforce Tutorials
In this vlog I will create a custom aura feed component with two picklists to select Group and then based on the Group selection, select…
How to Become a Salesforce Admin | 6-step Guide
Salesforce administrators are the backbone of any company that uses Salesforce. They are responsible for maintaining the Salesforce platform to ensure it meets the needs…
How To: Build A Salesforce Career with This Tool!
Timecodes 0:00 - Intro & Overview 0:57 - Talent Stacker 3:00 - Career Progression 10:08 - Flow is the Future 13:36 - Learn More/Outro If…