Я не думаю, что вы действительно можете переопределить действие удаления. Вы можете переопределить кнопку (с помощью страницы Visualforce), но это никоим образом не поможет вам, если удаление удалено из API.
Я подозреваю, что вы хотите притворяться, что пользователи API (SOAP, REST и т. Д.), Которые записывают, были удалены, а на самом деле их где-то сохраняли? Пахнет какой-то теневой деловой практикой, если честно, но что угодно, давайте предположим, что это действительно законно ... Конечно, вы не можете внезапно бросать ошибки в операции, потому что ваши конечные пользователи заметят.
Я думаю, что я поеду со скрытым 1-к-1 соответствующим «теневым» объектом и синхронизирую каждое действие с ним. Вам понадобится триггер для вставки/обновления/удаления/восстановления вашего соединения, который бы реплицировал действие (разница в этом пользовательском флажке «мягкое удаление»). У этого есть много проблем, как использование памяти, но хорошо.
Одна вещь, которая приходит на ум, состоит в том, что (если я правильно помню) триггеры на соединительном объекте не срабатывают, если вы удаляете одного из мастеров. Поэтому, если это реальный объект соединения (вы написали «действует как»), вам придется иметь дело с этим сценарием и поместить логику в триггеры главных объектов.
Если это не настоящий объект соединения (т. Е. Он имеет видимое поле OwnerId
), и ваши правила совместного доступа разрешают - возможно, вы можете передать право собственности на запись на какой-то специальный пользователь/очередь за пределами иерархии ролей, чтобы она стала невидимой ... Но я сомневаюсь, что это сработает, в конце концов, удаление должно выглядеть успешно, не так ли? Может быть, в сочетании с некоторыми @future
, которые немедленно восстановили бы их & передачи ... Все еще - беспорядочно!
Я попробую включить триггер и отчитаться. – Dan