检测沙箱类型(Salesforce)
Salesforce支持不同的沙盒 例如“部分”或“开发”沙箱 有没有办法检测我的脚本连接到哪种沙盒检测沙箱类型(Salesforce),salesforce,simple-salesforce,Salesforce,Simple Salesforce,Salesforce支持不同的沙盒 例如“部分”或“开发”沙箱 有没有办法检测我的脚本连接到哪种沙盒 我使用Python和simple_salesforce。我的Python不够好。我可以给你一些提示,但你得自己做一点试验 “附加功能”表示有一个内部类可以向您公开会话id和实例 您可以使用这些来创建对的HTTP GET调用 Authorization: Bearer {session_id} {instance}/services/data/v51.0/limits 资源将告诉您(除其他外)此
我使用Python和simple_salesforce。我的Python不够好。我可以给你一些提示,但你得自己做一点试验 “附加功能”表示有一个内部类可以向您公开会话id和实例 您可以使用这些来创建对的HTTP GET调用
Authorization: Bearer {session_id}
{instance}/services/data/v51.0/limits
资源将告诉您(除其他外)此组织中可用的数据和文件存储是什么。它将返回类似于的JSON
{
...
"DataStorageMB" : {
"Max" : 200,
"Remaining" : 196
},
...
}
使用的datastorageb.Max
和底部的表来确定您的位置。200=>Developer,1024=>Developer Pro
编辑-如果您要使用Apex(可能作为REST服务公开,“simple salesforce”具有很好的内置访问功能)
我得到:
SalesforceRefusedRequest:请求被拒绝https://foo.my.salesforce.com/services/data/v42.0/limits/. 响应内容:[{'message':'limits resource not enabled','errorCode':'API_DISABLED_FOR_ORG'}]
连接用户的配置文件是否勾选了复选框:“API enabled”,“View Setup and Configuration”,“Manage Users”?我现在使用另一个帐户,它拥有更多权限。现在它起作用了。非常感谢你。虽然用这种方法检测沙箱类型是相当肮脏的。Salesforce是否有一个反馈渠道,您可以在其中创建功能请求?发布一个想法,或者像任何人都可以发布的那样更新现有想法。您需要有效的sf“production like”登录(免费开发者版或开拓者帐户也可以,您不需要付费客户/注册合作伙伴)。如果你有生产访问权限-应该有帮助和培训链接,根据支持级别($),你应该能够向他们提出一个案例,或者在SF社区中“仅仅”发表文章,挑选其他客户的想法。在Apex(服务器端语言)中,你可以将这个“200”作为一行。您可以让REST服务返回沙盒类型,但它仍然有点愚蠢,这是另一个API调用。你可以和你的管理员讨论做一个“自定义设置”来保存信息,并在创建沙盒时将值写入其中()嘿,你为什么要悬赏这个问题,我认为一切都好?不管怎么说,它最终还是和我在一起,而不是吸引到更好的答案。谢谢我猜;)这里还需要什么吗?@eyescream赏金是为了“奖励现有答案”。是的,一切都很好。
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);