Пространство имен

Материал из GedeminWiki
Перейти к: навигация, поиск

Пространство Имен (далее по тексту ПИ) – это модуль, который содержит объекты данных и/или метаданных.

Как правило, Пространство имен формируется на базе данных и записывается в дисковый файл. В качестве формата данных используется YAML. Файл Пространства имен может быть просмотрен или изменен любым текстовым редактором, который поддерживает кодировку UTF-8. Мы рекомендуем Notepad++.

Пространство имен из файла может быть загружено в базу данных. В базе данных ПИ хранятся в следующих таблицах:

ПИ призваны заменить существующий механизм настроек. Основные отличия ПИ от настройки:

  1. Хранится на диске в текстовом виде в формате YAML, что позволяет использовать систему контроля версий для отслеживания и распространения изменений, а также для одновременной распределенной разработки одной подсистемы несколькими разработчиками на разных базах данных.
  2. При записи ПИ в файл попадают ТОЛЬКО объекты, непосредственно включенные в него разработчиком. В отличие от сохранения в поток настройки, система не пытается сканировать ссылки и включать в поток все необходимые объекты.
  3. При загрузке новой версии ПИ отслеживаются и корректно обрабатываются ситуации с изменением объекта в базе данных, в загружаемом файле или и там, и там одновременно. В последнем случае, в процессе загрузки, пользователь может указать какие изменения будут сохранены.
  4. В отличие от настройки, ПИ не хранит дубликат файла в виде бинарного потока в базе данных. Т.е. отсутствует операция Активации, которая была необходима для настроек. В процессе загрузки ПИ с диска все метаданные сразу же создаются, а данные загружаются.
  5. Имеется возможность сравнить ПИ в базе данных с дисковым файлом. Если ПИ еще не загружено, то дисковый файл можно сравнить с текущим состоянием базы данных.
  6. Пусть некоторый объект был включен в ПИ и загружен на базу данных. Позже разработчик решил, что данный объект не нужен и удалил его из ПИ. При загрузке новой версии ПИ на базу данных, удаленный из ПИ объект будет удален из нее. Но, при этом, если объект был не удален, а перемещен разработчиком из одного ПИ в другое и между такими ПИ проставлены зависимости, то такой объект не будет удален из БД. В момент загрузки новой версии ПИ все зависимые файлы должны быть доступны системе для анализа.
  7. При включении в ПИ объекта с зависимыми объектами сохраняется информация о зависимостях. В дальнейшем, при удалении или перемещении такого объекта в другое ПИ, подчиненные объекты будут удалены или перемещены автоматически.

Форма просмотра со списком ПИ вызывается из раздела Исследователь-Администратор-Атрибуты.

На панели инструментов расположены кнопки вызова вспомогательных окон:

  1. Изменения очередности объектов в ПИ.
  2. Сравнения ПИ с дисковым файлом.
  3. Поиска дубликатов, т.е. объектов, которые входят в два и более ПИ. В окне со списком дубликатов на панели инструментов присутствует команда для автоматического удаления повторных записей.
  4. Поиска объектов, не включенных в ПИ. В данном окне присутствует фильтр для отбора объектов по типу, а также за указанный период по дате изменения.
  5. Просмотр дерева зависимостей между файлами ПИ из указанного каталога и всех его подкаталогов.

При создании ПИ могут быть заданы следующие флаги:

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

Как и в случае с настройками, объект (или группа выделенных объектов) может быть добавлен в ПИ через контекстное меню в форме просмотра или через меню в диалоговом окне.

В диалоговом окне добавления объекта в ПИ дополнительно выводится список зависимых объектов. С помощью соответствующего флага можно указать включать их в ПИ или нет.

Параметры объекта в пространстве имен:

  • Всегда перезаписывать при загрузке — при загрузке на базу данных, где такой объект уже существует, он будет перезаписан данными из файла вне зависимости от даты его изменения.
  • Не удалять объекты при удалении пространства имен — помеченные таким флагом объекты не будут удалены из базы, при удалении ПИ, в которое они входят.
  • Для древовидных иерархий включать вложенные объекты — в момент записи ПИ в файл, в него будут включены объекты, входящий в заданный объект. Например, мы добавили в ПИ товарную группу «Тара» и пометили ее указанным флагом. На момент сохранения ПИ файл, в указанной группе были введены подгруппы «Стеклопосуда», «Деревянные поддоны». Все они автоматически будут включены в ПИ и записаны на диск.

Для синхронизации базы данных с набором ПИ в файлах на диске предназначено окно Синхронизация ПИ, которое вызывается из раздела Исследователь-Администратор-Аттрибуты. Основное пространство окна занимает таблица, в левой части которой находится список ПИ в базе данных, а в правой – ПИ в дисковых файлах. Последние берутся из указанного каталога и всех его подкаталогов.

Между двумя списками устанавливается соответствие. Колонка «Op» показывает статус для текущей позиции:

  • > — ПИ присутствует в базе, но отсутствует на диске.
  • >> — в базе данных более новая версия ПИ, чем на диске.
  • => — версия ПИ в базе данных соответствует версии ПИ на диске, но хотя бы одно из ПИ в базе данных, от которых зависит данное ПИ, имеет более новую версию.
  • == — версии ПИ в базе данных и на диске равны.
  • <= — версия ПИ на диске соответствует версии ПИ в базе данных, но хотя бы один из файлов, от которых зависит данное ПИ, имеет более новую версию.
  • << — на диске более новая версия ПИ, чем в базе.
  • < — ПИ присутствует на диске, но отсутствует в базе.
  •  ! – ПИ перечислено в списке зависимости хотя бы одного ПИ, но не найдено в базе данных или на диске.
  •  ? – пространство имен изменено и в базе данных, и на диске. Требуется вмешательство оператора для разрешения конфликта.

При сравнении ПИ в базе данных и на диске используются только даты изменения объектов в базе данных и дискового файла. Номера версий ПИ приведены в таблице только для справки.

На панели инструментов находятся фильтры для отображения только части записей в таблице. Для выделенной записи (или группы записей) статус можно изменить с помощью команд на панели инструментов. При этом при выделении ПИ на загрузку будут также выделены все ПИ, от которых зависит указанное ПИ. После установки статусов для нужных ПИ можно вызвать окно Синхронизации, с помощью которого список ПИ загружается в БД или сохраняется на диске.

Дополнительные команды для работы с ПИ и файлами доступны в контекстном меню окна синхронизации.

См. также

Персональные инструменты
Пространства имён

Варианты
Действия
Навигация
Инструменты