我有一個自定義對象。有諸如month_c,項目_c,聯繫人_c和角色_c的字段的組合,其確定記錄是唯一的。防止自定義對象中的重複記錄
我可以在插入之前編寫觸發器來檢查是否有任何已存在的相同組合的記錄。我想問的問題是
我該如何讓插入停止。一旦我發現已經有一條記錄,那麼它應該不會插入記錄。它不需要拋出/顯示錯誤。
感謝
Prady
我有一個自定義對象。有諸如month_c,項目_c,聯繫人_c和角色_c的字段的組合,其確定記錄是唯一的。防止自定義對象中的重複記錄
我可以在插入之前編寫觸發器來檢查是否有任何已存在的相同組合的記錄。我想問的問題是
我該如何讓插入停止。一旦我發現已經有一條記錄,那麼它應該不會插入記錄。它不需要拋出/顯示錯誤。
感謝
Prady
雖然其他人已經回答了這個更好的解決方案(一般非編解決方案是該系統的最終用戶更加靈活),答案以阻止特定記錄被插入的是向該記錄上的字段添加錯誤。
舉例來說,如果我將帳戶我可能有這樣的事情:
另一種方法是創建擴展Exception
一類,然後拋出該異常類的新實例,這將阻止所有傳遞給觸發器的記錄都被處理,而不是特定的記錄。
我在Salesforce類似的情況。它通過創建一個字段來處理,該字段包含由保證唯一性所需的所有值組成的值(在您的情況中,month_c,Project_c,contact_c和role_c)。然後選擇該字段的「唯一」複選框。重複現在將在垃圾中結束。
在我的情況下,這個新字段被一個外部程序填充(並推入到Salesforce中)。在你的情況下,你需要填寫觸發器中的值。我認爲這比在觸發器中執行SOQL查詢更有效,但我沒有做任何檢查來確認這一點。
幾天前,我發現了一個非常有用和簡單的解決方案(在ForceTree.com文章中),這使我不必編寫觸發器。它允許您組合字段以使用工作流程規則和自定義字段檢查唯一性。
這裏有一個步行通過: http://www.forcetree.com/2010/07/unique-field-combination-in-salesforce.html