You need to sign in to do that
Don't have an account?
To Add the sum to the Opportunity based on the OpportunityLineItem
HI Everyone,
I want to add the sum to opportunity of all the items and i t should be in the batch process.
Its not going into the for loop that has been coloured.
Pl help me out
Thanks in advance
global class RollUpSummaryMaps implements Database.Batchable<sObject>
{
list<OpportunityLineItem> opporto =new List<OpportunityLineItem>();
list<Opportunity> optylist =new List<Opportunity>();
Opportunity optyupdate= new Opportunity();
public Double curecy=0;
global Database.QueryLocator start(Database.BatchableContext BC)
{
// Access initialState here
String lineitem='SELECT id,ListPrice, OpportunityId, PricebookEntryId FROM OpportunityLineItem';
// Database.ge
System.debug('The Query@@@@@@@@'+lineitem);
return Database.getQueryLocator(lineitem);
}
global void execute(Database.BatchableContext BC,List<Sobject> batch)
{
Map<ID, Opportunity> iMap = new Map<ID, Opportunity>([select Id,testvantage__Updatevalue__c From Opportunity ]);
Map<ID, OpportunityLineItem> mapOppty = new Map<ID, OpportunityLineItem>([SELECT Id,UnitPrice, OpportunityId, PricebookEntryId FROM OpportunityLineItem where OpportunityId IN :iMap.keySet()]);
Integer optylinesize=iMap.size();
System.debug('NEWDEBUGOptyLineItem @@@@@@@@@@@@@@############'+optylinesize);
Integer optysize=mapOppty.size();
System.debug('NEWDEBUGOptyList @@@@@@@@@@@@@@############'+optysize);
try{
if(mapOppty.size() != null && mapOppty.size()>0)
{
for(Id accId:iMap.keySet())
{
for(OpportunityLineItem lineitem:opporto)
{
system.debug('lineitem####################'+lineitem.UnitPrice);
curecy=lineitem.UnitPrice;
curecy++;
system.debug('TOTAL VALUES OF LIST PRICE@@@@@@@@@@@@@@@@@@'+curecy);
}
Id opptyId = iMap.get(accId).Id;
optyupdate = iMap.get(opptyId);
optyupdate.testvantage__Updatevalue__c=+curecy;
OptyList.add(optyupdate);
}
if(OptyList.size()>0)
{
update OptyList;
}
}
}catch(DMLException e)
{
system.debug('The batch jobs were not added to the queue successfully: '+e);
}
}
global void finish(Database.BatchableContext BC)
{
}
}
Hi,
You have to use inner SOQL query for your requirement to fulfill.
Try to use below updated batch class code.
Batch class:
Important :
Hit Kudos if this provides you with useful information and if this is what you where looking for then please mark it as a solution for other benefits.
Thank You,
Hitesh Patel
SFDC Certified Developer & Administrator & Advanced Administrator & Sales cloud consultant
My Blog:- http://mrjavascript.blogspot.in/
All Answers
Hi,
You have to use inner SOQL query for your requirement to fulfill.
Try to use below updated batch class code.
Batch class:
Important :
Hit Kudos if this provides you with useful information and if this is what you where looking for then please mark it as a solution for other benefits.
Thank You,
Hitesh Patel
SFDC Certified Developer & Administrator & Advanced Administrator & Sales cloud consultant
My Blog:- http://mrjavascript.blogspot.in/
I am getting the following errro
Error: Compile Error: Initial term of field expression must be a concrete SObject: MAP<Id,Opportunity> at line 23 column 38
Thanks for the help
see below code.