жирным шрифтом и чуть больше
Возможно только при наличии пользовательского интерфейса (Visualforce / Aura Component / Lightning Web Component ...).Я бы не стал тратить на это слишком много времени.Сконцентрируйтесь на правильной логике и убедитесь, что она работает также через API (поэтому защищена не только ручная вставка, но и Data Loader, например).
, если addError
не делает то, что вам нужно, подумайте о добавлениивспомогательное текстовое поле (18).Отметьте его как уникальное и используйте триггер before insert,before update
(или рабочий процесс), чтобы заполнить его значением из этого поиска.
Уникальность должна обрабатываться базой данных.Вы действительно готовы написать это "перед вставкой" отлично?Как насчет обновления?А как насчет undelete (восстановить из корзины?) Что если я захочу загрузить 2 одинаковые записи одновременно?Этот триггер начинает выглядеть немного сложнее.Что если пользователю не разрешено просматривать запись, с которой должно быть обнаружено столкновение (правила совместного использования и т. Д. Я имею в виду, что ваш сценарий звучит так, будто уникальность должна быть «глобальной», но вам нужна действительно веская причина для написания кода «без совместного использования»).в обработчике триггера).
Все это, безусловно, возможно, но гораздо проще просто создать его с уникальным полем и вызвать его за день.И скажите бизнесу разобраться с не обязательно дружелюбным сообщением об ошибке.