2011-11-10 27 views
1

私はカスタムオブジェクトを持っています。月をc、プロジェクト _c、連絡先_ c、ロール _cなどのフィールドの組み合わせがあり、レコードが一意であると判断されます。カスタムオブジェクトの重複レコードを防止する

挿入前にトリガーを書き込んで、同じ組み合わせのレコードが既に存在するかどうかを確認できます。私が尋ねたい質問は

どのように挿入を止めることができますか?レコードがすでに見つかったらレコードを挿入しないでください。それはエラーを表示/表示する必要はありません。

おかげ

Prady

答えて

2

他の人が(一般に非コードソリューションは、システムのエンドユーザーのために、より柔軟性があり)、より良いソリューションでこれに答えたが、答えはから特定のレコードを停止しますそのレコードのフィールドにエラーを追加することです。例えば

、私はアカウントを挿入した場合、私はこのようなものかもしれません:

​​

別の方法としては、Exceptionを拡張するクラスを作成し、その例外クラスの新しいインスタンスをスローすることで、これは防ぐことができますトリガーに渡されたすべてのレコードは、特定のレコードとは対照的に処理されません。

1

は、私は、Salesforceで似たような状況があります。これは、一意性を保証するために必要なすべての値(あなたの場合はmonth_c、Project_c、contact_cおよびrole_c)で構成される値を含むフィールドを作成することによって処理されます。そのフィールドの「一意」チェックボックスをオンにします。重複がゴミ箱に移動するようになりました。

私の場合、この新しいフィールドは外部プログラムによって入力され、Salesforceにプッシュされます。あなたの場合、トリガーの値を入力する必要があります。これはトリガーでSOQLクエリを実行するより効率的だと思いますが、これを確認するためのチェックは行っていません。

関連する問題