Возможные ошибки при обновлении БД
Ошибка уникальности операций
Возможна ситуация, когда при обновлении БД Docsvision будет получена ошибка со следующей информацией в логе сервера:
Method name: StorageServer.RowSetData
Param1: 23c42136-0ee3-e211-905a-005056c00008
Param2: 20d21193-9f7f-4b62-8d69-272e78e1d6a8
Param3: c81fa07c-2328-4821-b453-ae5959bf8fae
Stack trace: at Docsvision.Platform.StorageServer.StorageServer.RetryIfFail(Action requestOperation)
at Docsvision.Platform.StorageServer.StorageServer.RowSetData(Guid sessionId, Guid sectionId, Guid rowId, String rowData)
ProcessId=3320
DateTime=2013-07-02T15:55:09.0269569+04:00
StorageServerRuntime Error: 0 :
Violation of UNIQUE KEY constraint 'dvsys_refstates_operations_uc_section_defaultname'. Cannot insert duplicate key in object 'dbo.dvtable_\{a5d22d25-435d-4f08-bf02-b4e9f778709f}'. The duplicate key value is (Set controller, 9395e682-2b5a-4ee0-84c8-1ff5b4bf5217, <NULL>).
The statement has been terminated.
Данная ошибка указывает на наличие дубликата встроенной операции приложения Управление документами.
-
Определите вид карточек с ошибкой.
Идентификатор вида указан в тексте ошибки в сообщении
The duplicate key value is (Set controller, 9395e682-2b5a-4ee0-84c8-1ff5b4bf5217, <NULL>).Обратите внимание на первые два параметра:-
Set controller— название операции. -
9395e682-2b5a-4ee0-84c8-1ff5b4bf5217— идентификатор вида, к которому привязана операция.
-
-
Выполните следующий скрипт в БД Docsvision:
SELECT [RowID] FROM [dbo].[dvtable_{a5d22d25-435d-4f08-bf02-b4e9f778709f}] Operations WHERE [DefaultName] = 'Set controller' and [ParentRowID] = '{ИД вида}' (1) (2)1 В поле RowID будет содержаться идентификатор строки операции, которая вызывает ошибку. 2 Вместо ИД видаукажите идентификатор вида, полученный на шаге 1. -
Выполните скрипт для удаления дубликата операции:
DELETE [dbo].[dvtable_{a5d22d25-435d-4f08-bf02-b4e9f778709f}] WHERE RowID = '{ИД из поля RowID}'Похожие ошибки следует исправить аналогичным способом.
Если в изменённом Решении настроен доступ к элементам управления с использованием встроенных операций обновляемой версии Управление документами, необходимо повторно настроить доступ с использованием операций Управление документами новой версии.
Ошибка уникальности локализации состояний
При обновлении БД Docsvision может возникать ошибка со следующей информацией в журнале сервера:
DocsVision.Platform.StorageServer.StorageServerException: Internal exception, error code: GlobalUniquenessViolated.
---> DocsVision.Platform.StorageServer.StorageServerException: Internal exception, error code: GlobalUniquenessViolated.
---> DocsVision.Platform.StorageServer.StorageServerException: Internal exception, error code: GlobalUniquenessViolated.
---> System.Data.SqlClient.SqlException (0x80131904): Violation of UNIQUE KEY constraint 'dvsys_refstates_statenames_uc_global_localeidparentrowid'. Cannot insert duplicate key in object 'dbo.dvtable_{da37ca71-a977-48e9-a4fd-a2b30479e824}'. The duplicate key value is (1049, 004d97cf-0df2-4611-b76e-f29d766cb74f, <NULL>).
The statement has been terminated.
Данная ошибка указывает на наличие дубликата локализованного названия состояния приложения Управление документами.
-
Определите состояние с ошибкой. Идентификатор состояния указан в тексте ошибки в сообщении:
The duplicate key value is (1049, 004d97cf-0df2-4611-b76e-f29d766cb74f, <NULL>).1 и 2 значения в сообщении — это номер локали (
1049) и ID состояния(004d97cf-0df2-4611-b76e-f29d766cb74f) соответственно. -
Выполните следующий скрипт в БД Docsvision:
SELECT [RowID] FROM [dbo].[dvtable_{DA37CA71-A977-48E9-A4FD-A2B30479E824}] Operations WHERE [LocaleID] = 1049 and [ParentRowID] = '{ID состояния}' -
Выполните скрипт для удаления дубликата:
DELETE [dbo].[dvtable_{DA37CA71-A977-48E9-A4FD-A2B30479E824}] WHERE RowID = '{ИД из поля RowID}' -
Если уверены что у проблемного состояния имеются только стандартные локализованные названия, можно очистить сразу всё при помощи следующего скрипта:
DELETE [dbo].[dvtable_{DA37CA71-A977-48E9-A4FD-A2B30479E824}] WHERE ParentRowID = '{ИД состояния}' -
Похожие ошибки следует исправить аналогичным способом.