Структура данных

Структура данных - это основная часть модели данных. Для ее получения можно использовать файл model.xml, состоящий из 5 частей.

Скачать model.xml

Часть "registers"

Часть содержит 6 реестров, каждый из которых имеет определенные свойства (Рисунок 1).

Свойства реестра:

  • name - имя реестра (обязательное; может содержать латинские буквы, цифры, символ '_');

  • displayName - имя реестра, отображаемое в пользовательском интерфейсе (обязательное; может содержать буквы разных языков, цифры, различные символы, включая пробел);

  • groupName - группа реестров/справочников (обязательное; может содержать латинские буквы, цифры, символ '_'). См. описание части entitiesGroup.

Перечень атрибутов реестра может содержать множество атрибутов трех типов: простой, массив-атрибут и комплексный.

Реестр "MASTER" имеет в своем составе только два простых атрибута (Рисунок 2).

Свойства атрибутов реестра:

  • name - имя атрибута (обязательное; может содержать латинские буквы, цифры, символ '_');

  • displayName - имя атрибута, отображаемое в пользовательском интерфейсе (обязательное; может содержать буквы разных языков, цифры, различные символы, включая пробел);

  • order - порядок атрибутов в списке атрибутов реестра.

Большинство простых атрибутов имеют свойство simpleDataType. Это свойство устанавливает тип данных простого атрибута.

Реестр ALL_TYPES имеет 12 простых атрибутов, и 9 из них имеют различные свойства simpleDataType со значениями: строковый, целочисленный, численный, дата, время, дата/время, логический.

Простой атрибут с simpleDataType = "Численный" используется для установки единиц измерения. Он имеет свойство measureSettings, которое, в свою очередь, имеет свойства categoryId и defaultUnitId. Значения measureSettings.categoryId и measureSettings.defaultUnitId должны совпадать со значениями category.name и unit.name в файле measurement-units.xml.

Реестр ALL_TYPES имеет простой атрибут lookupLink. Значением этого атрибута является кодовый атрибут справочника.

Свойство lookupEntityCodeAttributeType говорит о типе этого кодового атрибута. Свойство lookupEntityType определяет имя справочника. См. описание части lookups.

Простой атрибут webLink подходит для ссылки на данные. Он имеет свойство linkDataType.

Значение простого атрибута enum - это элемент одного из перечислений, которые задаются в enumDataType. Все перечисления модели и их элементы прописываются в файле enumerations.xml.

Примечания:

  • Каждый реестр должен иметь как минимум один простой атрибут.

  • Один простой атрибут каждого реестра должен быть основным отображаемым (иметь следующие свойства: mainDisplayable=true, displayable=true, nullable=false, searchable=true).

Реестр ALL_TYPES имеет не только простые атрибуты, но и массив-атрибуты, которые могут хранить несколько значений (массивы значений).

Атрибуты массива имеют свойства arrayValueType вместо свойств простого атрибута simpleDataType.

Третий тип атрибутов - комплексный. Реестр COMPLEX_ATTRS содержит два комплексных атрибута. Первый определяется вложенным объектом complex_levels (nestedEntityName=complex_levels). Второй использует вложенный объект complex_all_types (nestedEntityName=complex_all_types). Описание вложенных объектов см. в части nesteds.

Реестры в части “registers”

Рисунок 1 – Реестры в части “registers”

Реестр “MASTER” и его свойства

Рисунок 2 – Реестр “MASTER” и его свойства

Часть “lookups”

Справочники схожи с реестрами и имеют такие же свойства.

Свойства справочника:

  • name - имя справочника (обязательное; может содержать латинские буквы, цифры, символ '_');

  • displayName - имя справочника, отображаемое в пользовательском интерфейсе (обязательное; может содержать буквы разных языков, цифры, различные символы, включая пробел);

  • groupName - группа реестров/справочников (обязательное; может содержать латинские буквы, цифры, символ '_'). См. описание части entitiesGroup.

Справочник имеет перечень простых атрибутов и один кодовый атрибут. Кодовый атрибут может быть использован в атрибутах реестра для связи реестра и справочника. Также справочник может иметь альтернативные кодовые атрибуты.

В приведенном примере реестр ALL_TYPES связан со справочником STR_LOOKUP простым атрибутом реестра lookupLink и кодовым атрибутом code.

Примечания:

  • Каждый справочник должен иметь кодовый атрибут. Этот атрибут по умолчанию простой, и в интерфейсе создается вместе со справочником.

  • Кодовый атрибут или один простой атрибут каждого справочника должен быть основным отображаемым (должен иметь следующие свойства: mainDisplayable=true, displayable=true, nullable=false).

Справочники

Рисунок 3 – Справочники

Часть “nesteds”

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

Свойства вложенного объекта:

  • name - имя вложенного объекта (обязательное; может содержать латинские буквы, цифры, символ '_');

  • displayName - имя объекта, отображаемое в пользовательском интерфейсе (обязательное; может содержать буквы разных языков, цифры, различные символы, включая пробел).

Вложенные объекты

Рисунок 4 – Вложенные объекты

Часть “entitiesGroup”

Модель данных может содержать множество реестров и справочников. Для облегчения поиска в пользовательском интерфейсе можно использовать группы реестров/справочников.

Существует одна группа по умолчанию - ROOT.

Свойства групп:

  • name - имя группы (обязательное; может содержать латинские буквы, цифры, символ '_');

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

Доступно создание глубокой иерархии групп реестров/справочников. Каждая внутренняя группа может содержать внутри себя множество внутренних групп.

Группы реестров/справочников

Рисунок 5 – Группы реестров/справочников

Часть “relations”

Реестры могут быть связаны со справочниками с помощью простых или массив-атрибутов с заданными свойствами lookupEntityType и lookupEntityCodeAttributeType.

Существуют связи 3 типов: Contains (Включение), References (ссылка) и ManyToMany (Многие-ко-многим). Тип описывает свойство relType.

Каждая связь, например, register или lookup, имеет имя и отображаемое имя (свойства name и displayName). Они могут быть обязательными или нет (свойство required). Имя основного реестра определяется свойством fromEntity; toEntity - имя подчиненного реестра.

Связи типа register или lookup могут иметь и простые атрибуты.

Связи

Рисунок 6 – Связи