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

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

Скачать model.xml

Часть "registers"

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Большинство простых атрибутов имеют свойство 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.

Часть “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 – Связи