0

いくつかのカスタムオブジェクトがあり、さまざまなカスタムオブジェクトコードを顧客に公開したいSalesforceアプリケーションがあります。

お客様が自分のアカウントに属するレコードのみを表示できるようにする必要があります。これらのレコードの設定方法(さまざまなシステムユーザーがさまざまな処理レベルで所有している)のため、所有者ベースの共有を使用することはできません...また、動的ではないため、基準ベースの共有を使用することはできません(基準ベースの共有を使用して「このレコードを、実行時にレコードと同じアカウントに属するすべてのカスタマーポータルユーザーと共有します。

したがって、Apexベースの共有を使用する必要があることはわかっています。共有オブジェクトと共有テーブルについて読みました。しかし、私はこれにどのようにアプローチしますか。

挿入時に共有オブジェクトを作成し、カスタマーポータルグループに属し、アカウントがレコードのアカウントと等しいすべてのユーザーIDを取得し、それらをレコードの共有オブジェクトに関連付けるトリガーを作成できます。

しかし、これはやり過ぎだと思いますか?ある顧客から5人のユーザーがいて、1日に500件のレコードが作成されているとします。つまり、1人の顧客だけで1日に2500個の共有オブジェクトがあります。10人の顧客の場合、これは最大25000になります。このようにスケーリングします...

私はここにいますか?

別の問題は、新しい人がその顧客チームに加わった場合です。別のプロセスが古いレコードの共有を更新しない限り、その人は古いレコードを見ることができません。

それで、これを行うためのより良い/エレガントな方法はありますか?グループに共有オブジェクトを追加することを考えましたが、「カスタマーポータルグループ」というグループは1つしかなく、そのグループをユーザーのアカウントに関連付けるにはどうすればよいですか。

これについての考えをいただければ幸いです。

4

2 に答える 2

1

大量のカスタマーポータルユーザーを確認する必要があります。標準のカスタマーポータルユーザーに比べてはるかに安価であり、ニーズを満たす必要があります。通常のユーザーとは異なり、共有の概念はまったく異なります。一言で言えば、彼らがオブジェクトを所有している場合、彼らは見ることができますが、そうでない場合は見ることができません。次に、オブジェクトの連絡先またはアカウントの検索がログインしたユーザーと一致するかどうかに基づいて、これを拡張できます。

このドキュメントを読んでください:

于 2012-04-21T19:49:55.890 に答える
1

共有にグループを使用して、非常に多くの共有レコードを作成しないようにすることができます。アカウントごとに1つのグループがあり、アカウントごとに1つの共有レコードがあります。何千もの共有レコードを管理する代わりに、何百ものグループを管理する必要があります。私はこれほど多くのグループでこのアプローチを試したことがありませんが、しばらく前にそれが機能するはずだと読みました(誰かが共有のためにたくさんのグループを使用して投稿しました)。これを試してみたら、うまくいったかどうか教えてください。

于 2012-04-28T18:37:27.887 に答える