We are trying to develop a SCIM enabled Provisioning system for provisioning data from an Enterprise Cloud Subscriber(ECS) to Salesforce(Cloud Service Provider-CSP). We are following SCIM 1.1 standard.
We are able to perform CRUD operations on User object using Salesforce auto-generated userId field
We are not able to update/delete User object using externalId provided by ECS. Tried something as below... But it is not working, Unknown_Exception is thrown...
XXX/my.salesforce.com/services/scim/v1/Users/701984?fields=externalId
Please note that it is not possible to store Salesforce userId in ECS's database due to some compliance reasons. So we have to completely depend upon externalId only.
Step1: Read the userId based on externalId from Salesforce Step2: Update the User object using the salesforce UserId obtained in Step1. But this two step process would definitely degrade the performance.
Is there any way to update/delete the User by externalId Could you please guide us on this.. Thanks so much....
It is pretty common pattern for other applications, too, to search first and then perform on update on the returned object. Your workaround seems fine to me. What performance problem are you concerned about? Are you concerned about Salesforce not being able to process more requests or are you concerned about the higher response time in your application because you need to make multiple requests? Have you actually measured how much an extra call costs?