I am trying to pass value from a map into a string set but get the error: variable does not exist: NewToolsMap in my execute method. I tried to make my map public but this does not seem to work. How can i solve this?
global class NewToolsTaskHandler extends psb_tsr.ScheduledTaskHandler{
private static final Integer BATCH_SIZE;
{ //load config
BATCH_SIZE = FixConfigRepository.cfg_Fix.Batch_Size_SO_Task_Handler__c.intValue();
}
global NewToolsTaskHandler(){
setBatchSize(BATCH_SIZE);
}
MAP<Id, Stock_Product__c> NewToolsMap = new Map<Id, Stock_Product__c>();
global override Iterable<psb_tsr.ITaskAction> DoInitialize(psb_tsr.IInitializeCommand initCommand){
MAP<Id, Stock_Product__c> NewToolsMap = new Map<Id, Stock_Product__c>( [ SELECT Id, Article_Code__c
FROM Stock_Product__c
]);
system.debug('NewToolsTaskHandler|NewToolsMap: ' + NewToolsMap);
Set<Id> spIds = new Set<id>();
List<NewToolsTaskAction> actions = new List<NewToolsTaskAction>();
for(id NewToolsId : NewToolsMap.keySet()){
if(spIds.size() == 10){
actions.add(new NewToolsTaskAction(spIds));
spIds = new Set<Id>();
}
spIds.add(NewToolsId);
}
if(!spIds.isEmpty()) {
actions.add(new NewToolsTaskAction(spIds));
}
return (List<psb_tsr.ITaskAction>) actions;
}
global class NewToolsTaskAction implements psb_tsr.ITaskAction{
private Set<Id> spIdsToProcess;
public NewToolsTaskAction(Set<Id> spIds){
spIdsToProcess = spIds;
}
public void Execute(){
Utils.log('spIdsToProcess: ' + spIdsToProcess);
Set<string> spArtcodeSet = new Set<string>();
for(integer x=0; x<spIdsToProcess.size();x++){
spArtcodeSet.add(NewToolsMap.get(spIdsToProcess[0]).Article_Code__c);
}
}
}
}