检测沙盒类型 (Salesforce)

Detect type of Sandbox (Salesforce)

Salesforce 支持不同的沙盒。

例如“部分”或“开发”沙箱。

有没有办法检测我的脚本连接到哪种沙箱?

我使用 Python 和 simple_salesforce。

我的 Python 不够好。我可以提供提示,但您必须自己尝试一下。

https://github.com/simple-salesforce/simple-salesforce“附加功能”表示有内部 class 可以向您公开 session_id 和实例。

您可以使用这些来编写对

的 HTTP GET 调用
Authorization: Bearer {session_id}
{instance}/services/data/v51.0/limits

"limits" 资源将告诉您(除其他外)该组织中可用的数据和文件存储。它会 return JSON 类似于

{
    ...
    "DataStorageMB" : {
        "Max" : 200,
        "Remaining" : 196
    },
    ...
}

使用 https://help.salesforce.com/articleView?id=sf.data_sandbox_environments.htm&type=5 底部的 DataStorageMB.Max 和 table 来确定您的位置。 200 => 开发人员,1024 => 专业开发人员...


编辑 - 如果您要使用 Apex(可能公开为 REST 服务,“simple salesforce”内置了很好的访问它们的功能)

Integer storageLimit = OrgLimits.getMap().get('DataStorageMB').getLimit();
System.debug(storageLimit);
String sandboxType;
switch on storageLimit{
    when 200 {
        sandboxType = 'Developer';
    }
    when 1024 {
        sandboxType = 'Developer Pro';
    }
    when 5120 {
        sandboxType = 'Partial Copy';
    }
    when else {
        sandboxType = 'Full Copy';
    }
}
System.debug(sandboxType);