2012-04-19 7 views
0

カスタムオブジェクトがあり、さまざまなカスタムオブジェクトのrcordsを顧客に公開するSalesforceアプリケーションがあります。Salesforce APEXベースの共有。私は正しい方向にいますか?

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

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

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

しかし、私はこれが過労だと感じますか?私たちの顧客から5人のユーザーがいると言うと、1日に作成された500のレコードがあると言うことができます。つまり、1人の顧客に対して2500人の共有オブジェクトを意味します... 10人の顧客に対して、このようにスケール...

私はここですか?

もう1つの問題は、新しい顧客がその顧客チームに参加した場合です。別のプロセスが古いレコードの共有を更新しない限り、古いレコードは表示されません。

これを行うにはより良い/エレガントな方法がありますか?私はグループに共有オブジェクトを追加することを考えました...しかし、ただ1つのグループ "Customer portal group"があり、そのグループをユーザーのアカウントにどのように関連付けるのですか?

これについてのご意見をお待ちしております。

答えて

1

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

+0

こんにちはラルフ、お返事ありがとうございました。私は大量のユーザーを読んで、その限界のいくつかが私の必要性を気にかけないと思った。たとえば、ロールや頂点ベースのセキュリティを使用することはできません。オブジェクトを1つしか表示できないが、他のオブジェクトを表示できないユーザーの間でユーザーをグループ化する必要がある場合はどうなりますか? –

+0

答えとしてマーク...このルートに行くことを終了しました。 –

+0

うん、あなたは標準の共有フレームワークのいずれかを得ることはありません。彼らは、ログインしようとしているユーザーのアカウントや連絡先を見たいレコードと比較することに基づいて、基本的なものをいくつか持っています。それ以外に、あなたはまた、あなたがオブジェクトにアクセスするユーザーのためにVisualforceページを作成する必要がありますを意味し、独自の共有モデルを実装する必要があります。 –

1

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

関連する問題