Редактирование расширенных метаданных
Редактировать расширенные метаданные могут только администраторы Docsvision.
При использовании расширенных метаданных необходимо учитывать, что элементы управления могут быть привязаны к полям определённых типов. Без привязки в элементах не будут сохраняться значения.
Элемент управления | Тип секции | Тип поля | Ссылка |
---|---|---|---|
Сотрудник |
Struct |
RefID |
|
Сотрудники |
Table |
RefID |
|
Строка конструктора справочников |
Struct |
RefID |
|
Если расширенное поле используется в поисковом запросе, представлении или каком-либо другом компоненте системы и было удалено, корректная работа соответствующих компонентов будет нарушена.
-
Откройте окно редактирования расширенных метаданных любым доступным способом:
-
Нажмите на кнопку Редактирование динамических метаданных на ленте главного окна "Конструктора разметок".
-
Нажмите на кнопку в малой форме свойств элемента управления.
-
Воспользуйтесь меню выбора источника данных в окне расширенных свойств элемента управления.
Окно редактирования расширенных метаданных содержит дерево стандартных ("обычных") метаданных — элементов схем карточек. Элементы представляют собой иерархию секций и полей, на основе которых создаются стандартные карточки.
Рисунок 1. Окно редактирования расширенных метаданных
-
-
Нажмите на панели инструментов на кнопку , чтобы заблокировать метаданные для редактирования. Значок блокировки изменится на , панель инструментов будет разблокирована.
Если метаданные заблокированы другим пользователем, вместо кнопки будет отображаться значок . Дождитесь завершения редактирования метаданных другим пользователем — наведите курсор мыши на значок , чтобы узнать ФИО пользователя, заблокировавшего метаданные.
Блокировка автоматически снимается при закрытии Конструктора разметок (с сохранением настроек или без сохранения).
-
Создайте собственные ветки секций, добавьте в созданные секции пользовательские поля.
-
Сохраните изменения.
-
Перезапустите сервисы и клиенты Docsvision.
После добавления или изменения расширенных или динамических метаданных необходимо очистить кэш клиентских и серверных процессов Docsvision. Для этого перезапустите все экземпляры сервера Docsvision (Docsvision 5.5 Storage Server, IIS, включая экземпляры данных процессов на узлах кластера Docsvision), Docsvision 5.5 Workflow Server (включая экземпляры сервиса Workflow на узлах кластера Workflow), экземпляры Windows-клиента, все экземпляры сервера Web-клиент и т. д.
Добавление секции
Пользовательская секция может быть создана только как секция верхнего уровня. Не рекомендуется добавлять расширенные секции в обычные секции. |
-
Откройте окно Редактирование метаданных.
-
Для добавления секции, нажмите кнопку .
Рисунок 2. Добавление динамической секции -
Заполните поля окна:
-
В поле Имя укажите произвольное текстовое обозначение элемента.
-
В поле Тип выберите тип секции:
-
Struct — секции данного типа предназначены для хранения одной строки данных — одного набора значений полей секции.
Рисунок 3. Схема плоской секции -
Table — секции данного типа могут использоваться для хранения одной или нескольких не связанных строк данных (наборов значений полей секции).
В секциях типа
Table
иTree
запрещается создавать поля метаданных с именемsection
(вне зависимости от регистра), т.к. данное имя зарезервировано системой.Рисунок 4. Схема табличной секции -
Tree — секции данного типа могут использоваться для хранения одной или нескольких строк данных, которые могут быть связаны между собой по правилу родитель-потомок. Не стоит путать данный тип секций со структурой, включающей родительскую и вложенную секции — у секции типа Tree все строки имеют идентичный набор полей.
В секциях типа
Table
иTree
запрещается создавать поля метаданных с именемsection
(вне зависимости от регистра), т.к. данное имя зарезервировано системой.Рисунок 5. Иерархическая секцияЗапрещено изменять тип существующей расширенной секции.
-
-
-
Для секции может быть создано произвольное количество значений имени для разных локалей.
С помощью кнопок Добавить и Удалить можно добавлять и удалять поля значений. Каждому значению можно назначить любую из доступных в системе локалей (локали обозначаются двух- или трёхбуквенным кодом и доступны в выпадающем списке).
Добавить, изменить или удалить поле
Поле может быть добавлено только к расширенной секции.
-
Чтобы минимизировать риск возникновения конфликтов с имеющимися расширенными полями, для добавления пользовательских полей рекомендуется использовать пользовательские секции. При этом никаких запретов на добавление расширенных полей в статические секции нет.
-
Системные секции нельзя использовать для добавления пользовательских полей. Системная секция предназначена для хранения системной информации о карточке. В каждой карточке такая секция имеет своё название, например, секция Системные свойства (
SystemInfo
). -
Изменение расширенных полей и секций будет приводить к изменениям в схеме таблиц и обновлению хранимых процедур. Такие операции могут блокировать другие транзакции и значительно влиять на время выполнения пользовательских операций. Поэтому изменения в расширенных метаданных стоит выполнять в нерабочее время.
-
Для корректной работы с видами, в которых были выполнены операции над расширенными полями, необходимо перезапустить сервисы Docsvision.
-
Откройте окно Редактирование метаданных.
-
Выберите секцию, в которую требуется добавить поле.
-
Нажмите кнопку .
Кнопка активна, если в дереве выделена любая секция.
Рисунок 6. Редактирование динамического поля -
В поле Имя укажите произвольное текстовое обозначение элемента.
В качестве имён нельзя использовать служебные обозначения: UserID, SessionID, InstanceID, RowID, ParentRowID, ParentTreeRowID, ChangeServerID, SDID и прочие.
Длина имени поля не должна превышать 20 символов.
Использовать кириллицу в названии расширенных полей не рекомендуется для БД Microsoft SQL и запрещено для БД PostgreSQL.
-
В поле Тип выберите один из доступных вариантов, приведенных в таблице.
Таблица 2. Доступные варианты типов полей Обозначение типа Значение Int
Целое
Bool
Логический тип (возможны значения true/false)
DateTime
Дата/время
Enum
Перечисление
Bitmask
Битовая маска
UniqueID
Уникальный идентификатор
UserID
Идентификатор пользователя
String
Короткая текстовая строка
UniString
Строка в формате Unicode
FileID
Идентификатор файла
Float
Значение с плавающей точкой
RefID
Ссылка на значение из справочника или на сам справочник
RefCardID
Ссылка на карточку
Text
Текст
Unitext
Универсальный текст
Binary
Значение в двоичном виде
Image
Изображение
Decimal
Десятичное значение
Variant
Универсальное поле
-
В поле Ссылка укажите значение для ссылки.
Поле доступно, если для типа ссылки указано значение RefID или RefCardID.
-
В поле Тип ссылки укажите значение типа ссылки.
Поле доступно только для типа RefCardID.
Доступные варианты:-
Не указан.
-
Слабая ссылка.
-
Сильная ссылка.
-
Авто (тип определяется автоматически).
-
-
В поле Перечисление укажите возможные значения поля.
Поле доступно только для типа Enum.
-
Нажмите кнопку .
-
В появившемся окне Редактирование энумератора добавьте элементы перечисления.
Элемент перечисления состоит из псевдонима и значения перечисления — будет содержаться в поле карточки.
Рисунок 7. Пример заполнения энумератораДлина псевдонима должна быть не больше 64 символов.
Для элементов можно настроить отображаемые в карточке значения, иначе отображается псевдоним. Для этого нажмите кнопку и добавьте локализованные значения для требуемых языков.
Рисунок 8. Пример заполнения отображаемых значений элемента энумератора
-
-
В поле При копировании выберите способ переноса значения поля карточки, который будет применяться при копировании карточки и создании карточки по шаблону.
Поле доступно только для БД Docsvision, работающей с расширенными метаданными.
Доступные варианты:-
Копировать значение поля (поведение по умолчанию) — при копировании или создании по шаблону карточки значение поля будет копироваться.
-
Очищать значение поля — при копировании или создании по шаблону карточки значение поля будет очищаться (устанавливаться в
NULL
). -
Копировать объект по ссылке — при копировании или создании по шаблону карточки будет копироваться связанная карточка или файл. Данный вариант доступен только для полей типа RefCardID и FileID.
-
-
Завершите настройку нажатием на кнопку ОК.
В дальнейшем, любое созданное поле или секцию можно отредактировать с помощью кнопок Редактировать поле и Редактировать секцию на ленте окна редактирования метаданных, либо удалить, нажав кнопку Удалить поле или Удалить секцию. Эти команды также доступны в контекстном меню поля или секции.
Сохранение изменений метаданных в БД
При сохранении изменений в метаданных происходит проверка и изменение схемы данных только для секций, метаданные которых были изменены в текущем сеансе.
Прежнее поведение с проверкой и изменением схемы данных всех динамических секций в библиотеке карточек можно принудительно активировать, выполнив следующие настройки в БД:
declare @value bit = 0
exec dvsys_setting_set N'UseExtendedMetadataScope', @value;
select * from public."dvsys_setting_set"('UseExtendedMetadataScope', false);
Прежнее поведение может потребоваться для исправления настроек метаданных, если они по каким-то причинам перестали соответствовать актуальной структуре БД.
Когда настройка больше не требуется, необходимо удалить её из dvsys_settings
или задать для неё значение 1
(Microsoft SQL Server Management Studio) или true
(PostgreSQL).
После изменения настройки необходимо перезапустить IIS.