контроль_целостности
каскадная связь
индексы
удаление
Studio_Creatio
#7.18

Добрый день!



Может ли кто-то пояснить как работает контроль целостности?

 

Есть объект "журнал", в котором есть колонка Контакт. 

1) заполняем колонку Контакт в записи "журнал".

2) удаляем запись контакта.

 

1. Если стоит радиобаттон"удалять" у поля "Контакт" в Журнале, то по идее должна удаляться запись журнала -- удаляется

2. Если стоит радиобаттон "блокировать" у поля "Контакт" в Журнале, то выходит окно с контролем целостности с указанием на страницу Журнала. Тут есть возможность удалить связанные записи, но в нашем случае происходит какое-то зацикливание и после ожидания "подготовки данных к удалению" мы снова попадаем в окно контроля целостности

 

Самое интересное как работает галка "не контролировать целостность"

- во-первых этой галки нет в мастере страниц, есть только в конфигурации. В мастере же есть только радиобаттоны "удалять"  и "блокировать", и когда это поле редактируется через мастер то в конфигурации галка снимается.

- если будет поставлена галка "не контролировать" и радиобаттон "блокировать", то при удалении объекта все равно попадаем в окно контроля целостности

- если стоит галка "не контролировать" и радиобаттон "удалять"  -- только в этом случае обычно все нормально работает.



Почему вообще при постановке галки "не контролировать" доступны радиобаттоны? не было бы логичнее делать их тдч и вообще не учитывать при удалении?



В общем какое-то странное поведение, которое не дает нам полностью реализовать необходимую логику.



По поводу набора столбцов в деталях в окне контроля целостности -- их тоже не получается настроить. Всегда стандартный набор столбцов (как я понял, сначала наименование, а потом по алфавиту несколько штук). Нашел модуль, в котором генерируются детали этого модуля, заместить его и подсунуть нужный конфиг деталям не удалось

Нравится

1 комментарий

Добрый день.

Ниже описано как в приложении Creatio реализованы три стратегии удаления.



Блокировать удаление (RESTRICT):

Если установлен признак "Блокировать удаление", то при наличии связей будет выводиться диалоговое окно.



При этом у пользователя остается возможность выполнить удаление связанной записи, то-есть остается возможность использовать 2 стратегии удаления: удалять связанный объект (CASCADE) и очищать связь со связанным объектом (SET NULL)







Удалять связанный объект (CASCADE):

Если установлен признак "Удалять записи из...", то при наличии связей с этим объектом, диалогового окна не будет и связанная запись будет удалена.



Если установлен признак "Блокировать удаление", то при наличии связей будет выводиться диалоговое окно и пользователь сможет удалить связанную запись.







Очищать связь со связанным объектом (SET NULL):

Если установлен признак "Блокировать удаление", то при наличии связей будет выводиться диалоговое окно и пользователь сможет удалить запись без удаления связанной записи.

 

Показать все комментарии
связанные объекты
каскадная связь
обязательное поле
удаление связанных записей
7.8
bank_customer_journey

Добрый день. Подскажите, пожалуйста, как разрешить следующую проблему.

При удалении объекта, на который ссылается справочное поле другого объекта, штатно вызывается сообщение о невозможности удаления, так как присутствуют ссылающиеся записи. И вот тут тонкий момент, необходимо дать пользователю возможность удалить запись с удалением связанных записей, но запретить удаление без удаления связанных записей, так как поле, через которое связан объект, - обязательно к заполнению и использование объекта после такой очистки в "бэковых" процессах вызовет ошибку. Каскадную связь не предлагать.

 

PS. Может, я чего-то не знаю и возможность удаления без удаления связанных записей можно отключить?

Нравится

1 комментарий

Здравствуйте, Александр!

Запуск механизма массового удаления осуществляется при помощи GridUtilitiesService. метод DeleteRecordsAsync который принимает массив идентификаторов записей, название сущности и словарь, который отвечает за конфигурирование параметров, так же метод подготавливает параметры и запускает MultiDeleteExecutor. Особенностью метода является управляемый запуск операции удаления при помощи системной настройки с кодом DefaultNumberItemsReturned, которая отвечает за запуск операции в фоне или в общем потоке.

Вы можете полностью заместить и изменить схему GridUtilitiesService для решения вашей бизнес цели.

Показать все комментарии