我们有一个Salesforce应用程序,我们有一些自定义对象,并希望向客户公开各种自定义对象记录。
我们需要确保客户只能看到属于其帐户的记录。由于这些记录的设置方式(由不同系统用户在不同的处理级别拥有),我们不能使用基于所有者的共享...并且不能使用基于标准的共享,因为它不是动态的(我不能使用基于标准的共享来说“与“在运行时”记录属于同一帐户的所有客户门户网站用户共享此记录。
所以我知道我必须使用基于Apex的共享。我已经阅读了共享对象和共享表。但是我该怎么做呢。
我可以编写一个触发器,在插入时将创建一个共享对象,并获取属于客户门户组的所有用户ID,其帐户等于记录的帐户,并将它们与记录的共享对象相关联。
但我觉得这有点矫枉过正?假设我们的客户中有5位用户,可以说每天创建500条记录......这意味着每天只为1位客户共享2500份对象...对于10位客户,这可以达到25000 ...以这种方式缩放......
我在这儿吗?
另一个问题是如果一个新人加入该客户团队......没有其他流程更新旧记录的共享,他/她就看不到旧记录。
那么有更好/更优雅的方法吗?我想到将一个共享对象添加到组中......但是只有一个组“客户门户组”以及如何将该组与用户的帐户相关联?
我将不胜感激任何想法。
答案 0 :(得分:1)
您应该了解大量客户门户网站用户。它们相对于标准客户门户网站用户来说要便宜得多,而且应该满足您的需求。与普通用户不同,他们拥有完全不同的共享概念。简而言之,如果他们拥有一个他们可以看到的物体,如果不是他们不能。然后,您可以根据对象上的联系人或帐户查找是否与登录用户匹配来扩展此功能。
阅读本文档:
答案 1 :(得分:1)
您可以使用群组进行共享,以避免创建这么多共享记录。每个帐户可以有一个组,每个帐户可以有一个共享记录。您无需管理数千个共享记录,而是必须管理数百个组。 我没有尝试过这种方法,但我前段时间读过它应该有用(有人发布了很多小组进行分享)。如果您尝试这样做,请告诉我们它是否正常。