function readOnly(count){ }
Starting November 20, the site will be set to read-only. On December 4, 2023,
forum discussions will move to the Trailblazer Community.
+ Start a Discussion
Russell baker 1Russell baker 1 

How to query opportunty stage all values.


I am wondering if I have to query other stages with prospecting so how I wrote below soql query:1
String query = 'Select Id, Name, Stage_change_reminder_count__c,StageName From Opportunity WHERE StageName = \'Prospecting\', \'Value Proposition\', \'Process Review\',\’ Validation\' and Open_Tasks__c=0 and Last_Activity_Age__c >=12 ';
But it’s not working why? cann any one help me please.
 
SFDCboxSFDCbox
Hello,

You can Create a List and store all the values of a picklist in List eg OpportunityStageValuesList.add('A','B')

Select Id, Name, Stage_change_reminder_count__c,StageName FROM Opportunity WHERE Stage IN : OpportunityStageValuesList AND Open_Tasks__c=0 AND Last_Activity_Age__c >=12


I hope this helps,
 
Russell baker 1Russell baker 1
Hi,
Is there any way to store in strin because a have a batch apex code below:
global class updateAllOpptoday1 implements Database.Batchable<SObject>, Database.Stateful{
             
    global Database.QueryLocator start(Database.BatchableContext BC)
    {
        String query = 'Select Id, Name, Stage_change_reminder_count__c,StageName From Opportunity WHERE StageName = \'Qualification\'OR\'Needs Analysis\'OR\'Value Proposition\' and Open_Tasks__c=0 and Last_Activity_Age__c >=12 ';
        
        // added below line because Last_Activity_Age__c should be >=12 which we cnt do inside test class
        if(test.isRunningTest())
        {
            
            Query = 'Select Id, Name, Stage_change_reminder_count__c,StageName From Opportunity WHERE StageName = \'Qualification\'OR\'Needs Analysis\'OR\'Value Proposition\'';
        }
        
        system.debug(query);
        return Database.getQueryLocator(query);
    }
     
    global void execute(Database.BatchableContext BC, List<SObject> scope){
        for(Opportunity obj : (Opportunity[]) scope){
            if(obj.Stage_change_reminder_count__c != Null){
               obj.Stage_change_reminder_count__c = obj.Stage_change_reminder_count__c + 1;
              } else 
               obj.Stage_change_reminder_count__c = 0;
            }
        system.debug('list to be updated size  :: ' + scope.size());
        if(!scope.isEmpty())
        {
              update scope;
         }
     }

    global void finish(Database.BatchableContext BC){
    }
}

So how can i use the list. Can you please help me.
prasanth kumarprasanth kumar
global class updateAllOpptoday1 implements Database.Batchable<SObject>, Database.Stateful{
             
Schema.DescribeFieldResult fieldResult = opportunity.StageName.getDescribe();
global List<Schema.PicklistEntry> ple = fieldResult.getPicklistValues();
system.debug(ple.size());


    global Database.QueryLocator start(Database.BatchableContext BC)
    {
        String query = 'Select Id, Name, Stage_change_reminder_count__c,StageName From Opportunity WHERE StageName in:ple and Last_Activity_Age__c >=12 ';
        
       

 // added below line because Last_Activity_Age__c should be >=12 which we cnt do inside test class
        if(test.isRunningTest())
        {
            
            Query = 'Select Id, Name, Stage_change_reminder_count__c,StageName From Opportunity WHERE StageName = \'Qualification\'OR\'Needs Analysis\'OR\'Value Proposition\'';
        }
        
        system.debug(query);
        return Database.getQueryLocator(query);
    }
     
    global void execute(Database.BatchableContext BC, List<SObject> scope){
        for(Opportunity obj : (Opportunity[]) scope){
            if(obj.Stage_change_reminder_count__c != Null){
               obj.Stage_change_reminder_count__c = obj.Stage_change_reminder_count__c + 1;
              } else 
               obj.Stage_change_reminder_count__c = 0;
            }
        system.debug('list to be updated size  :: ' + scope.size());
        if(!scope.isEmpty())
        {
              update scope;
         }
     }

    global void finish(Database.BatchableContext BC){
    }
}
Russell baker 1Russell baker 1
Hi Prashant,
 Above code didn't work.