2012-04-19 13 views
0

我們有一個Salesforce應用程序,我們擁有一些自定義對象,並希望向客戶展示各種自定義對象的rcords。基於Salesforce APEX的共享。我在正確的方向嗎?

我們需要確保客戶只能看到屬於他們的帳戶記錄。由於這些記錄的設置方式(由不同處理級別的各種系統用戶擁有),我們不能使用基於所有者的共享......並且不能使用基於標準的共享,因爲它不是動態的(我不能使用基於標準的共享來說「將此記錄與「在運行時」屬於與記錄相同的所有客戶門戶用戶共享。

所以我知道我必須使用基於頂點共享。我已經閱讀了共享對象和共享表。但是,我將如何處理這個問題。

我可以編寫一個觸發器,它在插入時將創建一個共享對象並獲取屬於客戶門戶組的所有用戶標識,其帳戶等於該記錄的帳戶並將它們與該記錄的共享對象相關聯。

但我覺得這是矯枉過正正確的嗎?假設我們的客戶有5個用戶,並且可以說每天創建500條記錄......這意味着每天僅爲1個客戶分享2500個對象......對於10個客戶,這可以達到25000個......並且規模如此...

我說得對不對嗎?

的另一個問題是,如果一個新的人加入了客戶team..unless另一個進程更新的較舊的記錄共享,他/她看不到的較舊的記錄。

那麼,有沒有更好的/優雅的方式來做到這一點?我想爲該組添加一個共享對象...但只有一個組「客戶門戶組」,我如何將該組與用戶的帳戶相關聯?

我會很感激這方面的想法。

回答

1

您應該看看大批量的客戶門戶用戶。相對於標準的客戶門戶用戶,它們要便宜得多,並且應該滿足您的需求。與普通用戶不同,他們擁有完全不同的共享概念。簡而言之,如果他們擁有一個他們可以看到的對象,如果他們不能的話。然後,您可以根據對象的聯繫人或帳戶查找是否與登錄用戶匹配來擴展此功能。

閱讀上此文件:

+0

嗨拉爾夫,非常感謝您的回覆。我確實閱讀過大量的用戶,並認爲他們的一些侷限性無法滿足我的需求。例如,我認爲我們不能使用角色或基於頂點的安全性。如果我需要將我的用戶組織在可以看到一個對象而不是另一個對象的人之間呢? – 2012-04-24 15:40:13

+0

標記爲答案...結束了這條路線。 – 2012-05-22 15:59:28

+0

是的,你沒有得到任何標準的共享框架。他們基於將登錄用戶帳戶或聯繫人與他們正在查看的記錄進行比較的基礎知識。除此之外,您需要實現您自己的共享模式,這也意味着您需要創建一個供用戶訪問該對象的Visualforce頁面。 – 2012-06-20 02:03:49

1

您可以使用羣組來共享,以避免產生這麼多共享記錄。您每個帳戶都有一個組,每個帳戶有一個共享記錄。管理數千個共享記錄,而不必管理數百個組。 我還沒有嘗試過這種方法,但很久以前我就讀過它應該可以工作(有人用很多組來分享)。如果你確實嘗試過,請告訴我們它是否工作正常。