Подготовка к обновлению

Резервное копирование данных Docsvision

Создайте резервную копию базы данных Docsvision перед выполнением обновления!
  1. Если для Docsvision 5.4 были разработаны собственные библиотеки карточек, их нужно будет загрузить повторно при установке версии 5.5 --- должна быть резервная копия файлов со схемами собственных библиотек карточек. Если библиотека карточек загружалась с помощью расширения Консоли настройки Docsvision (см. руководство разработчика, раздел "Создание расширения для Консоли настройки"), создайте резервную копию расширения и всех загружаемых данных.

  2. При установке 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).

Перед обновлением версии рекомендуется выгрузить журналы с помощью функции экспорта журналов программы РМА по следующим причинам:
  • Если при обновлении версии будет Включено хранение журналов в сателлитной БД, существующие журналы станут недоступны для стандартных способов работы с данными (могут быть просмотрены с помощью стандартных средства просмотра текстовых данных).

  • Объём журналов влияет на время обновления БД, поэтому некоторые журналы рекомендуется очистить перед обновлением.

Удаление полнотекстовых индексов

  1. Откройте Консоль настройки Docsvision.

  2. Перейдите в раздел настроек Модули расширения  Сервис полнотекстового поиска.

  3. Выберите базу данных в списке БД, обслуживаемых сервисом полнотекстового индексирования.

  4. Нажмите кнопку Удалить базу и индексы.

Отключение отслеживания изменений в базе данных

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

Исключение дублирования операций

  1. Убедитесь, что у карточек базовых объектов нет операций с одинаковыми названиями.

    Выполните следующий скрипт в БД 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]
  2. Будут выведены названия операций с одинаковыми названиями:

    Операции с одинаковыми названиями
    Рисунок 1. Операции с одинаковыми названиями
  3. Если такие операции будут найдены, их необходимо переименовать в Конструкторе состояний:

    Переименование операций в Конструкторе состояний
    Рисунок 2. Переименование операций в Конструкторе состояний

Проверка перечислений

В Docsvision 5.5 установлено ограничение на количество символов в псевдониме элемента перечисления (Enum): не более 64.

Ограничение на количество символов в псевдониме элемента перечисления
Рисунок 3. Ограничение на количество символов в псевдониме элемента перечисления

При обновлении БД, содержащей нарушающие ограничение метаданные, возникнет ошибка: Псевдоним элемента перечисления не может быть длиннее '64' символов.

Перед выполнением обновления найдите и исправьте такие перечисления:
  1. Найдите перечисления, в названии (Alias) значений которых больше 64 символов.

    Перечисление можно найти "вручную" в Конструкторе разметок (просматривая значения расширенных/динамических полей) или запросом в БД:

    Для БД с расширенными полями:
     select cast(XMLSchema as XML)
     from dvsys_carddefs_extensions where XMLSchema LIKE '%Type="enum"%' (1)
    1 Данный запрос вернёт XML схемы, расширяющие метаданные карточек, с полями типа Enum. Каждую схему нужно просмотреть на наличие значений перечислений, которые могут вызвать ошибку при обновлении.
    Получение XML расширяющей схемы
    Рисунок 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, которое может вызвать ошибку при обновлении: тип и вид карточки, название секции и поля.

  2. Исправьте (сократите) название значения перечисления, содержащее более 64 символов, в Конструкторе разметок.

Очистка журналов сообщений

Журналы сообщений Windows-клиента и бизнес-процессов часто имеют большой объем, и их обновление займет много времени.

Выполните следующий скрипт в БД, чтобы очистить журналы сообщений:
TRUNCATE TABLE [dvtable_{388F390F-139E-498E-A461-A24FBA160487}]
TRUNCATE TABLE dvsys_log