global void execute(SchedulableContext ctx) {
Map<String,List<membership_sales_lines__c>> lineRelatedRecords = new Map<String,List<membership_sales_lines__c>>();
List<membership_sales_lines__c> memberShipRecords = [Select Id,Name,Payment_status__c,Ledger_entry_no__c from membership_sales_lines__c where Payment_status__c !='Paid'];
for(membership_sales_lines__c sales : memberShipRecords) {
String salesOrder = sales.Name;
List<membership_sales_lines__c> accOppList = lineRelatedRecords.get(salesOrder);
if(accOppList == null) {
lineRelatedRecords.put(salesOrder,new List<membership_sales_lines__c>{sales});
} else {
lineRelatedRecords.get(salesOrder).add(sales);
}
}
List<membership_sales_lines__c> paidStatusRecords = new List<membership_sales_lines__c>();
paidStatusRecords = [select Id,Name,Payment_status__c,Ledger_entry_no__c from membership_sales_lines__c where Payment_status__c = 'Paid'];
for(membership_sales_lines__c obj : paidStatusRecords)
{
if(lineRelatedRecords.containsKey(obj.Name))
{
obj.Payment_status__c = lineRelatedRecords.get(obj.Name).Payment_status__c ;
}
}
2 件の回答
Hi Yeturu,
For which variable are you getting variable does not exisit?
Is it for lineRelatedRecords
Are you not getting an error on this line-:
if(lineRelatedRecords.containsKey(obj.Name))
In your map you are storing list against every string
Map<String,List<membership_sales_lines__c>> lineRelatedRecords = new Map<String,List<membership_sales_lines__c>>();
lineRelatedRecords.get(obj.Name) will return a list and not single object