Подготовка к обновлению
Резервное копирование данных Docsvision
| Создайте резервную копию базы данных Docsvision перед выполнением обновления! |
-
Если для Docsvision 5.4 были разработаны собственные библиотеки карточек, их нужно будет загрузить повторно при установке версии 5.5 --- должна быть резервная копия файлов со схемами собственных библиотек карточек. Если библиотека карточек загружалась с помощью расширения Консоли настройки Docsvision (см. руководство разработчика, раздел "Создание расширения для Консоли настройки"), создайте резервную копию расширения и всех загружаемых данных.
-
При установке Docsvision 5.5 будут перезаписаны настройки стандартных папок, поисковых запросов и представлений приложения Управление документами.
Настройки созданных пользователем объектов не затрагиваются.
Если в настройки стандартных элементов приложения "Управление документами" были внесены изменения, которые нужно сохранить, экспортируйте их перед обновлением и загрузите после обновления.
Перенос архивных карточек
В Docsvision 5.5 появилась возможность хранить данные архивных карточек в отдельной БД (в 5.4 архивные карточки могли храниться только в БД Docsvision). Решение об использовании отдельной БД (в терминах Docsvision — сателлитная БД) для хранения архивных карточек принимается при первоначальной настройке Docsvision 5.5 (на этапе настройки базы данных).
| После завершения настройки БД изменить способ хранения архивных данных будет нельзя. |
По умолчанию использование сателлитной БД для хранения архивных карточек Отключено — архивные карточки будут храниться в основной БД Docsvision (как в Docsvision 5.4).
Если планируется использовать новую возможность хранения архивных карточек в сателлитной БД, перед обновлением до версии 5.5 самостоятельно извлеките из архива все карточки (карточки с признаком "Архивная"). Для извлечения можно использовать программу Навигатор/РМА или функции API Docsvision. Для получения списка архивных карточек обратитесь к таблице dvsys_instances_archive базы данных Docsvision. Если при установке Docsvision 5.5 будет Включено хранение архивных карточек в сателлитной БД, карточки, которые не были извлечены из архива, станут недоступны (для стандартных способов работы с данными). После установки и настройки Docsvision 5.5 извлеченные из карточки можно будет поместить обратно в архив.
Если использовать сателлитную БД для хранения архивных карточек не планируется, выполнять указанные выше действия не нужно.
Выгрузка журналов работы Docsvision
В Docsvision 5.5 появилась возможность хранить журналы работы Docsvision в сателлитной БД. Решение об использовании сателлитной БД для хранения журналов принимается при первоначальной настройке Docsvision 5.5.
По умолчанию использование сателлитной БД для хранения журналов Отключено — журналы будут храниться в основной БД Docsvision (как в Docsvision 5.4).
-
Если при обновлении версии будет Включено хранение журналов в сателлитной БД, существующие журналы станут недоступны для стандартных способов работы с данными (могут быть просмотрены с помощью стандартных средства просмотра текстовых данных).
-
Объём журналов влияет на время обновления БД, поэтому некоторые журналы рекомендуется очистить перед обновлением.
Удаление полнотекстовых индексов
-
Откройте Консоль настройки Docsvision.
-
Перейдите в раздел настроек .
-
Выберите базу данных в списке БД, обслуживаемых сервисом полнотекстового индексирования.
-
Нажмите кнопку Удалить базу и индексы.
Отключение отслеживания изменений в базе данных
Если для таблиц базы данных включена функция ChangeTracking (Отслеживание изменений), отключите эту функцию перед выполнением обновления. После окончания обновления функцию ChangeTracking следует включить обратно.
Исключение дублирования операций
-
Убедитесь, что у карточек базовых объектов нет операций с одинаковыми названиями.
Выполните следующий скрипт в БД Docsvision:WITH Helper ([DefaultName], [ParentRowID], [Uses]) AS ( SELECT [DefaultName], [ParentRowID], COUNT(*) FROM [dvtable_{a5d22d25-435d-4f08-bf02-b4e9f778709f}] WITH(NOLOCK) GROUP BY [DefaultName], [ParentRowID] ) SELECT tKind.[Name] [KindName], tOper.[DefaultName] [OperationName] FROM [dbo].[dvtable_{a5d22d25-435d-4f08-bf02-b4e9f778709f}] tOper WITH(NOLOCK) JOIN Helper tHelp ON (tOper.[DefaultName] = tHelp.[DefaultName] AND tOper.[ParentRowID] = tHelp.[ParentRowID]) JOIN [dbo].[dvtable_{ae4c7de8-ea40-4358-b8a1-f8fa6ab654e4}] tKindState WITH(NOLOCK) ON (tOper.[ParentRowID] = tKindState.[RowID]) JOIN [dbo].[dvtable_{c7ba000c-6203-4d7f-8c6b-5cb6f1e6f851}] tkind WITH(NOLOCK) ON (tKindState.[Kind] = tKind.[RowID]) WHERE tHelp.[Uses] > 1 ORDER BY tOper.[DefaultName], tKind.[Name] -
Будут выведены названия операций с одинаковыми названиями:
Рисунок 1. Операции с одинаковыми названиями -
Если такие операции будут найдены, их необходимо переименовать в Конструкторе состояний:
Рисунок 2. Переименование операций в Конструкторе состояний
Проверка перечислений
В Docsvision 5.5 установлено ограничение на количество символов в псевдониме элемента перечисления (Enum): не более 64.
При обновлении БД, содержащей нарушающие ограничение метаданные, возникнет ошибка: Псевдоним элемента перечисления не может быть длиннее '64' символов.
-
Найдите перечисления, в названии (Alias) значений которых больше 64 символов.
Перечисление можно найти "вручную" в Конструкторе разметок (просматривая значения расширенных/динамических полей) или запросом в БД:
Для БД с расширенными полями:select cast(XMLSchema as XML) from dvsys_carddefs_extensions where XMLSchema LIKE '%Type="enum"%' (1)1 Данный запрос вернёт XML схемы, расширяющие метаданные карточек, с полями типа Enum. Каждую схему нужно просмотреть на наличие значений перечислений, которые могут вызвать ошибку при обновлении.
Рисунок 4. Получение XML расширяющей схемыДля БД с динамическими полями:select tCard.CardTypeID, tCard.Alias [CardAlias], tSec.SectionTypeID, tSec.Alias[SectionAlias], tFields.Alias [FieldAlias], tEnum.*, tString.Value [StringValue], tAnsiString.Value [AnsiStringValue] from dvsys_dynamic_enumdefs tEnum join dvsys_fielddefs tFields on (tFields.FieldID = tEnum.FieldID) join dvsys_sectiondefs tSec on (tFields.SectionTypeID = tSec.SectionTypeID) join dvsys_carddefs tCard on (tCard.CardTypeID = tSec.CardTypeID) left join dvsys_dynamic_string tString on (tString.FieldID = tEnum.FieldID) left join dvsys_dynamic_ansistring tAnsiString on (tAnsiString.FieldID = tEnum.FieldID) (1)1 Данный запрос вернёт информацию о перечислениях.
Рисунок 5. Получение информации о перечисленияхИз результатов запросов к БД можно получить информацию о поле Enum, которое может вызвать ошибку при обновлении: тип и вид карточки, название секции и поля.
-
Исправьте (сократите) название значения перечисления, содержащее более 64 символов, в Конструкторе разметок.
Очистка журналов сообщений
Журналы сообщений Windows-клиента и бизнес-процессов часто имеют большой объем, и их обновление займет много времени.
TRUNCATE TABLE [dvtable_{388F390F-139E-498E-A461-A24FBA160487}]
TRUNCATE TABLE dvsys_log