Spring '23版Salesforce沙盒刷新自动授权用户组遇字段错误
解决Spring '23沙盒自动激活并授权用户组的问题
问题根源
你混淆了字段所属的API对象:ActivationUserGroupId 并不是 SandboxInfo 对象的字段,而是属于**SandboxRefreshRequest** 对象的属性——该对象专门用于发起沙盒刷新请求,而非更新已有的SandboxInfo记录。Tooling API的SandboxInfo接口不支持这个字段,因此会返回INVALID_FIELD错误。
正确实现步骤
使用Sandbox Refresh API发起请求
调用POST /services/data/v57.0/sobjects/SandboxRefreshRequest接口,请求体包含以下参数:{ "SandboxInfoId": "{{sandbox_id}}", "LicenseType": "DEVELOPER_PRO", "AutoActivate": true, "ActivationUserGroupId": "{{group_id}}" }SandboxInfoId:对应你之前使用的{{sandbox_id}},即目标沙盒的SandboxInfo记录IDAutoActivate: 设置为true确保沙盒刷新完成后自动激活ActivationUserGroupId: 指定需要自动获得访问权限的用户组ID
验证字段可用性
若要确认字段是否存在,可调用GET /services/data/v57.0/sobjects/SandboxRefreshRequest/describe,返回的字段列表中能找到ActivationUserGroupId。替代方案(若无法使用SandboxRefreshRequest)
如果因权限或其他限制无法调用该API,可在沙盒刷新完成后通过以下方式补全权限:- 编写Apex类,查询目标用户组下的所有用户,批量为他们分配沙盒访问权限
- 使用Metadata API部署
PermissionSet,将沙盒访问权限赋予目标用户组
关键注意事项
- 确保调用API的账号拥有Modify All Data和Manage Sandboxes权限
- Spring '23版本(API v57)确实支持
ActivationUserGroupId,但仅在SandboxRefreshRequest对象中有效,SandboxInfo对象从未包含该字段
内容的提问来源于stack exchange,提问作者Tillema
相关产品推荐
相关产品推荐

