При удалении Задачи - задача является элементом процесса
При удалении Процесса - Связанные записи могут сосуществоать в следующих таблицах tbl_WorkflowItem
При удалении Элемента - Связанные записи могут существовать в следующих таблицах tbl_Task
ВСЁ круг замкнулся. ПОМОГИТЕ!
Нравится
Здравствуйте.
Напишите что именно вы хотите сделать. Вы не указали цель, которую хотите достичь.
Через клиент Terrasoft у вас не получиться удалить ни одну из перечисленных вами сущностей.
Вам придется либо менять функционал в администраторе Terrasoft, либо написать в администарторе скрипт, который будет удалять нужные вам записи, либо использовать sql-запросы для удаления нужных записей из БД.
Например, если задача привязана к бизнес-процессу, то из клиента Terrasoft вы не сможете удалить ее, но вы сможете ее удалить, используя простой запрос на базе данных:
delete from tbl_task where id = '{id задачи}'
Здравствуйте,
Как Вы заметили, удаление бизнес-процессов не предусмотрено в системе Террасофт. Они задуманы быть «вечными» и завершаться после перехода всех элементов в конечную стадию.
Есть два варианта удаления процессов:
Первый вариант
При возникновении «подвисших» процессов есть возможность вручную перевести все незавершенные элементы в конечное состояние (таким образом подтолкнем на механизм завершения процесса). При этом пропадут записи из раздела «Процессы», но останутся связи с объектами системы (например, с задачами). Если Ваша задача – почистить раздел «Процессы» от «подвисших», то этот вариант именно то, что нужно.
Открыть запрос CheckWorkflow.sql (архив scr.rar в прикрепленных файлах)
В первой строчке указать название БД.
В строчках
select @Name = 'wd_Process_name_here' select @EndState = '{End_State_ID_here}'
указать нужное имя процесса и идентификатор конечного состояния элементов процесса. Его можно узнать в сервисе enm_WorkflowItemState (Workflow\General\Items\enm_WorkflowItemState):
Проверить, какие элементы выбираются.
Если все в порядке и в результатах запроса именно зависшие, то открыть запрос DeleteWorkflow.sql (архив scr.rar в прикрепленных файлах), произвести такие же изменения строчек и выполнить запрос.
Перезапускать Террасофт не нужно, просто обновить реестр.
Второй вариант
Если Вам необходимо удалить весь процесс, включая все элементы, связанные с ним, то Вам нужно выполнить следующее:
1. Запустить SQL Management Studio
2. Открыть запрос DeleteWorkflowAll.sql, прикрепленный к письму.
3. Указать во второй строчке название процесса, который следует удалить.
4. Выполнить скрипт. У всех зависимых элементов должны удалиться связи с процессом.
Обращаю внимание, что при этом удалятся связи у всех элементов (задачи, счета, продажи, элементы диаграмм процессов), которые связаны с указанным процессом.
Также предлагаю вам SQL запросы для удаления записей в соответвующих сущностях.
delete from frb."tbl_Task" where "WorkflowItemID" in (select "ID" from frb."tbl_WorkflowItem" where "WorkflowID" in (select "ID" from frb."tbl_Workflow" where "CreatedByID" in (select "ID" from frb."tbl_Contact" where "Name" like '%ФИО пользователя, для которого нужно завершить БП%' )and "Name" = 'Название БП') ) delete from frb."tbl_Document" where "WorkflowItemID" in (select "ID" from frb."tbl_WorkflowItem" where "WorkflowID" in (select "ID" from frb."tbl_Workflow" where "CreatedByID" in (select "ID" from frb."tbl_Contact" where "Name" like '%ФИО пользователя, для которого нужно завершить БП%' )and "Name" = 'Название БП') ) delete from frb."tbl_Incident" where "WorkflowItemID" in (select "ID" from frb."tbl_WorkflowItem" where "WorkflowID" in (select "ID" from frb."tbl_Workflow" where "CreatedByID" in (select "ID" from frb."tbl_Contact" where "Name" like '%ФИО пользователя, для которого нужно завершить БП%' )and "Name" = 'Название БП') ) delete from frb."tbl_Invoice" where "WorkflowItemID" in (select "ID" from frb."tbl_WorkflowItem" where "WorkflowID" in (select "ID" from frb."tbl_Workflow" where "CreatedByID" in (select "ID" from frb."tbl_Contact" where "Name" like '%ФИО пользователя, для которого нужно завершить БП%' )and "Name" = 'Название БП') ) delete from frb."tbl_Opportunity" where "WorkflowItemID" in (select "ID" from frb."tbl_WorkflowItem" where "WorkflowID" in (select "ID" from frb."tbl_Workflow" where "CreatedByID" in (select "ID" from frb."tbl_Contact" where "Name" like '%ФИО пользователя, для которого нужно завершить БП%' )and "Name" = 'Название БП') ) delete from frb."tbl_AccountIndustry" where "WorkflowItemID" in (select "ID" from frb."tbl_WorkflowItem" where "WorkflowID" in (select "ID" from frb."tbl_Workflow" where "CreatedByID" in (select "ID" from frb."tbl_Contact" where "Name" like '%ФИО пользователя, для которого нужно завершить БП%' )and "Name" = 'Название БП') )
P.S Перед изменениями описанными выше нужно обязательно сделать резервную копию базы данных. В случае необходимости обратитесь за помощью к системному администратору или сотруднику, решающему вопросы с базами данных.