Решение, позволяющее избежать вставки записи в Salesforce - PullRequest
0 голосов
/ 22 апреля 2019

Мне нужно, чтобы запись не вставлялась при выполнении определенного условия.Я сделал это изменение в beforeInsert моего триггера с помощью addError ().У меня проблема с этим решением: apex addError - удалить сообщение об ошибке по умолчанию .Я хочу удалить это сообщение об ошибке по умолчанию и оставить только мое настроенное сообщение.И я хочу сделать это смелым и немного большим.Теперь я убежден, что это невозможно с помощью addError ().

Есть ли альтернативное решение?Я имею в виду, чтобы остановить эту запись от вставки?

Мой объект в озабоченности является ObjectA.И у ObjectA есть поиск к ObjectB.Это поле ObjectB в ObjectA должно быть уникальным.Никакие две записи ObjectA не могут содержать поиск в одном и том же поле ObjectB.Вот тогда мне нужно остановить эту вставку.

Может ли кто-нибудь помочь мне с этим?

1 Ответ

0 голосов
/ 22 апреля 2019

жирным шрифтом и чуть больше

Возможно только при наличии пользовательского интерфейса (Visualforce / Aura Component / Lightning Web Component ...).Я бы не стал тратить на это слишком много времени.Сконцентрируйтесь на правильной логике и убедитесь, что она работает также через API (поэтому защищена не только ручная вставка, но и Data Loader, например).

, если addError не делает то, что вам нужно, подумайте о добавлениивспомогательное текстовое поле (18).Отметьте его как уникальное и используйте триггер before insert,before update (или рабочий процесс), чтобы заполнить его значением из этого поиска.

Уникальность должна обрабатываться базой данных.Вы действительно готовы написать это "перед вставкой" отлично?Как насчет обновления?А как насчет undelete (восстановить из корзины?) Что если я захочу загрузить 2 одинаковые записи одновременно?Этот триггер начинает выглядеть немного сложнее.Что если пользователю не разрешено просматривать запись, с которой должно быть обнаружено столкновение (правила совместного использования и т. Д. Я имею в виду, что ваш сценарий звучит так, будто уникальность должна быть «глобальной», но вам нужна действительно веская причина для написания кода «без совместного использования»).в обработчике триггера).

Все это, безусловно, возможно, но гораздо проще просто создать его с уникальным полем и вызвать его за день.И скажите бизнесу разобраться с не обязательно дружелюбным сообщением об ошибке.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...