Редактирование расширенных метаданных
Редактировать расширенные метаданные могут только администраторы Docsvision.
При использовании расширенных метаданных необходимо учитывать, что элементы управления могут быть привязаны к полям определённых типов. Без привязки в элементах не будут сохраняться значения.
Элемент управления | Тип секции | Тип поля | Ссылка |
---|---|---|---|
Сотрудник |
Struct |
RefID |
|
Сотрудники |
Table |
RefID |
|
Строка конструктора справочников |
Struct |
RefID |
|
Если расширенное поле используется в поисковом запросе, представлении или каком-либо другом компоненте системы и было удалено, корректная работа соответствующих компонентов будет нарушена.
-
Откройте окно редактирования расширенных метаданных любым доступным способом:
-
Нажмите на кнопку Редактирование динамических метаданных на ленте главного окна "Конструктора разметок".
-
Нажмите на кнопку в малой форме свойств элемента управления.
-
Воспользуйтесь меню выбора источника данных в окне расширенных свойств элемента управления.
Окно редактирования расширенных метаданных содержит дерево стандартных ("обычных") метаданных — элементов схем карточек. Элементы представляют собой иерархию секций и полей, на основе которых создаются стандартные карточки.
Рисунок 1. Окно редактирования расширенных метаданных
-
-
Нажмите на панели инструментов на кнопку , чтобы заблокировать метаданные для редактирования. Значок блокировки изменится на , панель инструментов будет разблокирована.
Если метаданные заблокированы другим пользователем, вместо кнопки будет отображаться значок . Дождитесь завершения редактирования метаданных другим пользователем — наведите курсор мыши на значок , чтобы узнать ФИО пользователя, заблокировавшего метаданные.
Блокировка автоматически снимается при закрытии Конструктора разметок (с сохранением настроек или без сохранения).
-
Создайте собственные ветки секций, добавьте в созданные секции пользовательские поля.
-
Сохраните изменения.
-
Перезапустите сервисы и клиенты Docsvision.
После добавления или изменения расширенных или динамических метаданных необходимо очистить кэш клиентских и серверных процессов Docsvision. Для этого перезапустите все экземпляры сервера Docsvision (dvappserver, включая экземпляры данных процессов на узлах кластера Docsvision), dvworkflow (включая экземпляры сервиса 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
Изображение
Sdid
Идентификатор безопасности
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).
После изменения настройки необходимо перезапустить dvappserver.