Creatio development guide
PDF

Создание схемы объекта

Glossary Item Box

Общие сведения

Объектный слой ORM (Object-relational mapping) в bpm'online основан на объектах (Entity). Объект — это бизнес-сущность, которая позволяет объявить на уровне серверного ядра новый класс ORM-модели. На уровне базы создание объекта означает создание записи таблицы с таким же именем, как у созданного объекта, и с таким же составом колонок. То есть в большинстве случаев каждый объект в системе является системным представлением одной физической таблицы в базе данных.

Основой конфигурации bpm'online является схема. Каждый тип элемента конфигурации представляется схемой соответствующего типа. С точки зрения программной реализации схема любого типа — это класс ядра, который наследуется от базового класса Schema. Подробнее типы схем и их свойства описаны в статье "Пакет, схема, объект, модуль".

Объект, как элемент конфигурации, представлен схемой объекта, которая реализована соответствующим классом EntitySchema. Именно в схеме объекта описывается состав колонок, индексов и методов объекта.

Различают базовые и пользовательские схемы объектов.

Базовые схемы объектов недоступны для редактирования и располагаются в предустановленных пакетах.

Пользовательские схемы объектов — это схемы, которые можно создавать при конфигурировании и помещать в свои пользовательские пакеты. Базовые схемы могут замещаться пользовательскими.

Создание пользовательской схемы объекта

Для создания пользовательской схемы объекта необходимо в разделе [Конфигурация] выбрать пользовательский пакет и на вкладке [Схемы] выполнить команду меню [Добавить] — [Объект] (рис. 1). В результате откроется окно дизайнера объектов, в котором выполняется настройка созданного объекта.

Рис. 1. — Создание новой схемы объекта

Для созданной схемы объекта необходимо присвоить значения следующим обязательным свойствам (рис. 2):

  • [Заголовок] — локализуемый заголовок схемы. Значение по умолчанию устанавливается дизайнером объектов и может быть изменено.
  • [Название] — название схемы. Значение по умолчанию устанавливается дизайнером объектов и может быть изменено. Должно содержать префикс, установленный в системной настройке [Префикс названия объекта] (SchemaNamePrefix). По умолчанию это префикс Usr.

ВАЖНО

До версии приложения 7.9.1 максимально допустимая длина имени объекта составляла 30 символов. Для версий 7.9.1 и выше максимально допустимая длина имени объекта — 128 символов.

Объекты с длиной имени более 30 символов нельзя использовать на базах Oracle ниже версии 12.2.

  • [Пакет] — пакет, в котором схема объекта будет размещена после публикации. По умолчанию содержит название пакета, выбранного перед созданием схемы. Значение может быть изменено на любое из выпадающего списка.
  • [Идентификатор] — системная колонка, используемая в качестве первичного ключа в таблице базы данных. Показывается в расширенном режиме отображения свойств объекта (см. "Дизайнер объектов").

Рис. 2. — Обязательные свойства схемы объекта в дизайнере объектов

К СВЕДЕНИЮ

Для отображения всех свойств схемы в дизайнере объектов необходимо выбрать опцию [Все] в меню отображения свойств объекта (см. "Дизайнер объектов").

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

Рис. 3. — Предупреждение о незаполненном свойстве [Идентификатор]

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

Рис. 4. — Выбор колонки-идентификатора

К СВЕДЕНИЮ

Процесс создания колонки описан ниже в разделе "Добавление пользовательской колонки в объект".

Указание родительского объекта

Для объектов bpm'online реализован механизм наследования. Он может быть полезным в случае, если создаваемая схема объекта должна содержать функциональность, уже реализованную в существующих объектах. В большинстве случаев в качестве родительских используются базовые объекты системы, например, [Базовый объект] или [Базовый справочник].

Чтобы реализовать наследование создаваемой схемы объекта от существующей, необходимо выбрать корневой элемент структуры схемы объекта (рис. 5, 1). Затем в поле [Родительский объект] свойств схемы указать заголовок той базовой схемы объекта, функциональность которой требуется унаследовать. Например, чтобы наследовать функциональность схемы [Базовый объект] необходимо в поле [Родительский объект] свойств схемы начать вводить заголовок схемы [Базовый объект] и выбрать нужное значение из выпадающего списка (рис. 5, 2).

Рис. 5. — Выбор родительской схемы объекта

После подтверждения выбранного родительского объекта (рис. 6) к структуре объекта будут добавлены колонки, унаследованные от базового объекта (рис. 7).

Рис. 6. — Диалог подтверждения использования родительского объекта

Рис. 7. — Унаследованные колонки в структуре объекта

К СВЕДЕНИЮ

Для отображения унаследованных колонок необходимо включить опцию [Показывать системные колонки] в окне настроек дизайнера объектов (см. "Дизайнер объектов").

Для временного сохранения всех изменений в метаданных схему объекта необходимо сохранить. Для окончательного сохранения схемы и создания соответствующей таблицы в базе данных схему необходимо опубликовать.

Добавление пользовательской колонки в объект

Добавление пользовательской колонки в схему объекта будет рассмотрено на примере добавления колонки-идентификатора.

Для добавления пользовательской колонки можно использовать кнопку [Добавить] (рис. 8) либо команду [Добавить] контекстного меню узла [Колонки] (Columns) в структуре объекта. В выпадающем меню выбирается тип колонки и далее задаются свойства колонки. Для добавления колонки-идентификатора следует выполнить команду [Добавить] — [Уникальный идентификатор].

Рис. 8. — Добавление колонки-идентификатора

К СВЕДЕНИЮ

Для отображения в меню добавления всех типов добавляемых колонок необходимо включить опцию [Отображать расширенный список типов колонок] в окне настроек дизайнера объектов (см. "Дизайнер объектов").

Затем следует задать основные свойства колонки-идентификатора (рис. 9). Основные свойства, касающиеся добавляемой колонки:

  • [Заголовок] — локализуемый заголовок колонки. Значение по умолчанию устанавливается дизайнером объектов и может быть изменено.
  • [Название] — название колонки. Значение по умолчанию устанавливается дизайнером объектов и может быть изменено.
  • [Тип данных] — тип данных, содержащихся в колонке. Значение по умолчанию устанавливается дизайнером объектов в зависимости от выполненной команды добавления колонки и может быть изменено.
  • [Обязательная для заполнения] — устанавливает обязательность колонки. Поскольку колонка должна обязательно содержать значение, то для этого свойства необходимо выбрать "На уровне приложения".
  • [Значение по умолчанию] — устанавливает значение по умолчанию. Для добавляемой колонки необходимо в диалоговом окне выбора значения по умолчанию выбрать вариант "Установить из системной переменной" (рис. 10). Затем в поле [Название] следует выбрать название системной переменной. Поскольку все идентификаторы должны быть уникальными, следует выбрать значение "Новый идентификатор".
  • [Режим использования] — режим использования "Расширенный".

Рис. 9. — Свойства колонки-идентификатора

Рис. 10. — Установка значения по умолчанию

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

Добавление индексов в объект

Кроме колонок в объект могут быть добавлены индексы, которые при публикации объекта будут автоматически созданы в таблице базы данных.

Если необходимо создать индекс по одной колонке, то для этой колонки достаточно установить признак [Индексируемая] в блоке свойств [Поведение]. По умолчанию в системе все справочные колонки являются индексируемыми.

Если нужно создать составной индекс по нескольким колонкам, то сделать это можно следующим образом:

  1. В контекстном меню элемента [Индексы] выбрать [Добавить] — [Индекс]. Для индекса можно указать пользовательское название либо поставить опцию [Автогенерируемое название]. После этого система сгенерирует уникальное название индекса.
  2. Если для колонок индекса необходимо реализовать ограничение целостности, то есть исключить возможность вставки повторяющихся комбинаций значений, то для индекса следует установить признак [Уникальный].
  3. Далее в индекс нужно добавить необходимые колонки. В контекстном меню узла индекса следует выполнить команду [Добавить] — [Колонка индекса]. Затем для добавленной колонки нужно установить свойства — выбрать колонку объекта и указать направление сортировки.

Создание замещающей схемы объекта

Замещающие схемы объектов предназначены для расширения функциональности уже существующих схем. При этом существующие схемы в свою очередь могут быть замещающими и принадлежать разным пакетам.

Для создания замещающей схемы объекта необходимо перейти в раздел [Конфигурация] и выбрать пользовательский пакет, в который будет добавлена новая схема модуля. Затем необходимо на вкладке [Схемы] выполнить команду  [Добавить] — [Замещающий объект] (рис. 11).

Рис. 11. — Команда добавления замещающей схемы объекта

Чтобы реализовать замещение создаваемой схемы объекта, необходимо выбрать корневой элемент структуры схемы объекта (рис. 5, 1). Затем в поле [Родительский объект] свойств схемы указать заголовок той базовой схемы объекта, функциональность которой требуется заместить. Например, чтобы заместить функциональность схемы [Базовый объект] необходимо в поле [Родительский объект] свойств схемы начать вводить заголовок схемы [Базовый объект] и выбрать нужное значение из выпадающего списка (рис. 5, 2).

После подтверждения выбранного родительского объекта (рис. 6) остальные поля свойств заполнятся автоматически (рис. 12, 1).

Рис. 12. — Основные свойства замещающей схемы объекта

После внесения всех изменений замещающую схему объекта нужно опубликовать.

Сохранение и публикация объекта

Все изменения структуры бизнес-объекта, выполняемые в дизайнере, осуществляются в оперативной памяти.

Чтобы изменения были сохранены на уровне метаданных схемы, схему следует сохранить. Для этого нужно в дизайнере объектов выполнить команду [Сохранить].

Для того чтобы изменения произошли на уровне базы данных, объект необходимо опубликовать. Результатом успешной публикации объекта являются созданные (или измененные) физические объекты в базе данных — таблица, столбцы, индексы.

© Terrasoft 2002-2019.

Был ли данный материал полезен?

Как можно улучшить эту статью?