是否可以 update/delete User by externalId

Is it possible to update/delete User by externalId

我们正在尝试开发支持 SCIM 的供应系统,用于供应从企业云用户 (ECS) 到 Salesforce(云服务提供商-CSP)的数据。我们遵循 SCIM 1.1 标准。

我们能做什么:

我们能够使用 Salesforce 自动生成的 userId 字段对用户对象执行 CRUD 操作

确切问题:

我们无法使用 ECS 提供的 externalId update/delete 用户对象。 尝试了如下所示...但它不起作用,抛出 Unknown_Exception...

XXX/my.salesforce.com/services/scim/v1/Users/701984?fields=externalId

请注意,由于某些合规性原因,无法将 Salesforce 用户 ID 存储在 ECS 的数据库中。所以我们必须完全依赖于 externalId。

可能的解决方法:

第一步:从Salesforce中根据externalId读取userId Step2:使用在Step1 中获得的salesforce UserId 更新User 对象。 但是这两个步骤肯定会降低性能。

有没有办法通过 externalId update/delete 用户 你能指导我们吗.. 非常感谢....

对于其他应用程序来说也是很常见的模式,先搜索然后对返回的对象执行更新。你的解决方法对我来说似乎很好。您关心什么性能问题?您是否担心 Salesforce 无法处理更多请求,或者您是否担心应用程序中的响应时间更长,因为您需要发出多个请求?你有没有实测过一次额外通话的费用?

我知道这是旧线程,但要注意您可以使用外部 ID 从 REST 更新用户。上述问题中的端点不正确。以下是它应该如何设置,作为 PATCH 请求发送:

[instance]/services/data/v37.0/sobjects/user/[external_id__c]/[external id value]
  • 实例 = 您的实例,即 https://test.salesforce.com/
  • external_id__c = API 用户自定义外部 ID 字段的名称
  • 外部 ID 值 = 用户外部 ID 的任何值

备注:

  • Salesforce 以正文中无内容的 HTTP 204 状态代码进行响应,这对于补丁请求来说并不常见,但它是 'success' 响应
  • 用户的外部 ID 必须是自定义字段,确保已设置 作为唯一
  • 确保进行呼叫的用户的 profile/permission 话机 拥有管理用户权限并且可以访问外部 ID 字段