いくつかのカスタムオブジェクトがあり、さまざまなカスタムオブジェクトコードを顧客に公開したいSalesforceアプリケーションがあります。
お客様が自分のアカウントに属するレコードのみを表示できるようにする必要があります。これらのレコードの設定方法(さまざまなシステムユーザーがさまざまな処理レベルで所有している)のため、所有者ベースの共有を使用することはできません...また、動的ではないため、基準ベースの共有を使用することはできません(基準ベースの共有を使用して「このレコードを、実行時にレコードと同じアカウントに属するすべてのカスタマーポータルユーザーと共有します。
したがって、Apexベースの共有を使用する必要があることはわかっています。共有オブジェクトと共有テーブルについて読みました。しかし、私はこれにどのようにアプローチしますか。
挿入時に共有オブジェクトを作成し、カスタマーポータルグループに属し、アカウントがレコードのアカウントと等しいすべてのユーザーIDを取得し、それらをレコードの共有オブジェクトに関連付けるトリガーを作成できます。
しかし、これはやり過ぎだと思いますか?ある顧客から5人のユーザーがいて、1日に500件のレコードが作成されているとします。つまり、1人の顧客だけで1日に2500個の共有オブジェクトがあります。10人の顧客の場合、これは最大25000になります。このようにスケーリングします...
私はここにいますか?
別の問題は、新しい人がその顧客チームに加わった場合です。別のプロセスが古いレコードの共有を更新しない限り、その人は古いレコードを見ることができません。
それで、これを行うためのより良い/エレガントな方法はありますか?グループに共有オブジェクトを追加することを考えましたが、「カスタマーポータルグループ」というグループは1つしかなく、そのグループをユーザーのアカウントに関連付けるにはどうすればよいですか。
これについての考えをいただければ幸いです。