Salesforce features an object known as Organization, equipped with a standard field called IsSandbox. This field proves useful for identifying whether Apex code is executing in a production or sandbox environment. If the organization is a sandbox, the IsSandbox field will return true.
A lazy loader can be developed for utilization by other classes, with the ideal placement being in a utility class for seamless integration into various classes. However, in this particular example, it is situated in a standalone class.
public class SandboxExample {
/**
* Lazy loader method
*/
public static Boolean runningInASandbox {
get {
//check if boolean has been set yet
if (runningInASandbox == null) {
runningInASandbox = [SELECT IsSandbox FROM Organization LIMIT 1].IsSandbox;
}
//Return value
return runningInASandbox;
}
set;
}
}
The previously provided code can now be referenced in other classes whenever there is a need to determine whether the organization is a sandbox or production environment, using the following code.
public static void sampleMethod(){
System.debug('Is running in sandbox: ' + SandboxExample.runningInASandbox);
}
In an ideal scenario, resorting to a SOQL query wouldn’t be necessary to obtain this information. However, using the domain.getSandboxName() approach poses challenges when dealing with scratch orgs.
