我们有一个 Salesforce 应用程序,其中有一些自定义对象,并希望向客户公开各种自定义对象记录。
我们需要确保客户只能看到属于其帐户的记录。由于这些记录的设置方式(由不同处理级别的各种系统用户拥有),我们不能使用基于所有者的共享......并且不能使用基于标准的共享,因为它不是动态的(我不能使用基于标准的共享来说“与与记录属于同一帐户的所有客户门户用户共享此记录”在运行时)。
所以我知道我必须使用基于 Apex 的共享。我已经阅读了共享对象和共享表。但我将如何处理这个问题。
我可以编写一个触发器,在插入时将创建一个共享对象并获取属于客户门户组且其帐户等于记录帐户的所有用户 ID,并将它们与记录的共享对象相关联。
但我觉得这是矫枉过正对吗?假设我们的一位客户有 5 个用户,假设每天创建 500 条记录...这意味着每天为 1 个客户共享 2500 个共享对象...对于 10 个客户,这可以达到 25000...并且以这种方式缩放...
我在这里吗?
另一个问题是,如果一个新人加入了该客户团队。除非另一个进程更新旧记录上的共享,否则他/她看不到旧记录。
那么有没有更好/优雅的方法来做到这一点?我想在组中添加一个共享对象...但是只有一个组“客户门户组”,我如何将该组与用户的帐户相关联?
我将不胜感激对此的任何想法。