You need to sign in to do that
Don't have an account?
Charni Wiggins
Variable does not exist in global method
I have tried t put together a batch class to update parent Account records with credit scores.. I need to make 2 list variables public so I am able to access them in the finish global batch method, how would I do this? I get errors all lines in the finish method...
global class BatchCreditReportDelta implements Database.Batchable<sObject> { public static void runBatch() { BatchCreditReportDelta batch = new BatchCreditReportDelta(); Database.executeBatch(batch); } global Database.QueryLocator start(Database.BatchableContext bc) { return Database.getQueryLocator( [SELECT Id, Name, Wholesale_Last_Month_Negative__c, Wholesale_This_Month_Negative__c, Wholesale_Last_Month_Positive__c, Wholesale_This_Month_Positive__c, VoIP_Last_Month_Negative__c, VoIP_This_Month_Negative__c, VoIP_Last_Month_Positive__c, VoIP_This_Month_Positive__c, (SELECT Name, Credit__c FROM Voip_IDs__r), (SELECT Name, Credit__c FROM Wholesale__r) FROM Account WHERE Account_Branding__c != null ]); } global void execute(Database.BatchableContext bc, List <Account> scope) { // create 2 lists to split negative and positive scores List <Account> popNegScores = new List <Account>(); List <Account> popPosScores = new List <Account>(); // List to get VoIP values - should this be map instead? List <VoIP_ID__c> voips = new List<VoIP_ID__c>(); // List to get Wholesale values - should this be map instead? List <Wholesale__c> whsale = new List<Wholesale__c>(); for (Account acc: scope) { // populate voip values for (VoIP_ID__c v : acc.VoIP_IDs__r) { // if scores below zero, assign to neg list if (v.Credit__c < 0) { popNegScores.add(new Account( // populate scores on account record id = v.id, VoIP_Last_Month_Negative__c = v.credit__c)); } // what about values = 0? else { popPosScores.add(new Account( // populate scores on account record id = v.id, VoIP_Last_Month_Positive__c = v.credit__c)); } } for (Wholesale__c w : acc.Wholesale__r) { // for negative wholesale values, assign to account if (w.Credit__c < 0) { popNegScores.add(new Account( id = w.id, Wholesale_Last_Month_Negative__c = w.credit__c)); } // for positive values, assign to account (what about values = 0?) else { popPosScores.add(new Account( id = w.id, Wholesale_Last_Month_Positive__c = w.credit__c)); } } } } global void finish(Database.BatchableContext bc) { // do updates in here update popNegScores; update popPosScores; // print out lists System.debug(popNegScores); System.debug(popPosScores); } }Thank you!
Charni Wiggins
Update: removed the two lists on line 18 and 20