Правила удаления разделов

Добрый день! При создании проблем не случается. Но возникают проблемы при модифицировании или удаления. Подскажите, пожалуйста, как правильно удалять разделы в bpm'online? Ведь много записей в таблице создается и других связок.

Нравится

15 комментариев

и про детали тоже интересно

Здравствуйте!

Сами разделы/детали (их страницы редактирования, а также объекты, на которые они ссылаются) Вы можете удалить из конфигурации.
При этом в базе данных останутся записи. Необходимо удалить записи с таблиц:
SysModule
SysModuleEdit
SysModuleEditLcz

"Демьяник Алексей Олегович" написал:Необходимо удалить записи с таблиц:

Что же так не любят SQL-запрос предоставить? :)

"Владимир Соколов" написал:

Что же так не любят SQL-запрос предоставить? :)


А разгадка проста: разделы стараются не удалять. Максимум — скрыть в рабочих местах и удалить из раздела все записи.

Ведь если стандартный раздел удалить, кто знает, что поломается в других разделах, с ним связанных.
Иногда даже удаление поля чревато.

А полностью скрывать детали от пользователей нужно с помощью прав доступа?

Спасибо за ответы

Мне нужно удалить пользовательский раздел в BPMOnline. Сервисов, связанных с ним нет, но раздел в списке присутствует. Я удалил запись из SysModule, но это не помогло. В таблицах SysModuleEdit,
SysModuleEditLcz информации по нему нет.

"Зверев Александр" написал:Максимум — скрыть в рабочих местах и удалить из раздела все записи.

Проблема в том, что "мусор" появляется в условиях фильтрации и только усложняет её.

"Владимир Соколов" написал:

Что же так не любят SQL-запрос предоставить? :)

Владимир, на основании одного объекта можно сделать два раздела. Будет обидно, если предоставленный запрос удалит оба раздела вместо одного.
Приблизительный запрос ниже:

declare @SectionObject varchar(50)
set @SectionObject = /*Название объекта раздела*/
delete from SysModule where SysModule.SysModuleEntityId in
(select SysModuleEntity.Id from SysModuleEntity
join SysSchema
on SysSchema.UID = SysModuleEntity.SysEntitySchemaUId
where SysSchema.Name = @SectionObject)

Для выполнения запроса нужно еще очистить связи.

"Тюльпа Владимир" написал:

Мне нужно удалить пользовательский раздел в BPMOnline. Сервисов, связанных с ним нет, но раздел в списке присутствует. Я удалил запись из SysModule, но это не помогло. В таблицах SysModuleEdit,
SysModuleEditLcz информации по нему нет.

Владимир, уточните, пожалуйста, в каком списке присутствует раздел? Проверьте таблицу SysModuleInWorkplace.

"Тюльпа Владимир" написал:

Мне нужно удалить пользовательский раздел в BPMOnline. Сервисов, связанных с ним нет, но раздел в списке присутствует. Я удалил запись из SysModule, но это не помогло. В таблицах SysModuleEdit,
SysModuleEditLcz информации по нему нет.

Владимир, здравствуйте!

Ниже инструкция по удалению типового раздела из системы:

Пусть «ToDelete» - название обьекта раздела

1. Выполнить скрипт в БД для удаления регистрационных данных:

DECLARE @UId UNIQUEIDENTIFIER;
DECLARE @ModuleEntityUID UNIQUEIDENTIFIER;
DECLARE @ModuleID UNIQUEIDENTIFIER;
DECLARE @Name NVARCHAR(max) = 'ToDelete';
select @UId = UId from SysSchema where Name Like @Name
select @ModuleEntityUID = Id from SysModuleEntity where SysEntitySchemaUId = @UId
select @ModuleID = Id from SysModule where SysModuleEntityId = @ModuleEntityUID;
delete from SysModuleInWorkplace where SysModuleId = @ModuleID;
delete from SysModule where Id = @ModuleID;
delete from SysModuleEdit where SysModuleEntityId = @ModuleEntityUID;
delete from SysModuleEntity where Id = @ModuleEntityUID;
delete from SysDetail where EntitySchemaUId = @UId;
delete from SysLookup where SysEntitySchemaUId = @UId;
delete from [Lookup] where SysEntitySchemaUId = @UId;

2. Через конфигурацию удалите схемы в следующем порядке:

Клентские схемы (раздела, редактирования, детали)
ToDeleteFile
ToDeleteInFolder
ToDeleteInTag
ToDeleteTag
ToDeleteFolder
ToDelete

Проще всего запустить профайлер и создать ещё один раздел, посмотреть, в какие таблицы идёт запись.

Спасибо за материалы. Воспользоваться ими не пришлось. Запустил BPMOnline и злополучного раздела не увидел. Похоже, что сделанного оказалось достаточно.

Возможно, после удаления раздел был виден, поскольку закешировался в редисе. Нужно было почистить, и пропал бы.

Я создавал новый раздел. Раздел создал и нажал "Сохранить" без создания страницы. Создать это раздел повторно нельзя - такой уже есть, продолжить работу с ним нельзя, он не появляется в списке. Удалить нельзя, в указанных таблицах он не упоминается.

Добрый день, Владимир!

Если раздел не зарегистрирован, скорее всего, что-то пошло не так при его сохранении. Вы можете либо зарегистрировать его вручную, либо же просто удалить страницы и объекты из конфигурации, и создать его заново.

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