Работа с данными в Creatio 8.x организована на основе паттерна DAO (Data Access Object). О паттерне DAO читайте в Википедии.
Слои паттерна DAO:
- BusinessObject — реализация бизнес-логики.
- DataAccessObject — предоставляет приложению доступ к данным. При этом бизнес-логика и источник данных отделены друг от друга. Слой DAO может создавать DTO (Data Transfer Object). DTO может использовать слой BusinessObject. Для сохранения возвращать их в DAO. О паттерне DTO читайте в Википедии.
- DataStorage — организация различных хранилищ данных.
Детальная схема работы с данными представлена на рисунке ниже.
Слой Storage
Storage — слой хранилища, который связан с определенным источником данных.
Типы хранилищ:
- База данных приложения.
- Веб-сервис.
- Файловая система.
В Creatio 8.0 Atlas реализован доступ к базе данных приложения.
Слой Data Access Object
Data Access Object — слой, который содержит источники данных (Data Source). Каждый источник данных связан с соответствующей моделью слоя бизнес-логики.
Функции, которые выполняет слой DAO:
- Обеспечивает возможность выполнения CRUD-операций (load, save, insert, delete).
- Предоставляет права на выполнение операций с данными (canEdit, canCreate, canDelete).
- Предоставляет структуру данных (getSchema).
Схема данных описывает структуру данных, с которыми работает приложение.
Составляющие схемы данных:
- Имя.
- Заголовок.
- Атрибуты. Важным структурным элементом атрибута являются валидаторы. Подробнее о валидаторах читайте в статье Кастомизация страницы.
Классы, которые описывают структуру схемы данных и атрибута, приведены ниже.
Слой Business Object
Business Object — слой, который содержит модель представления (View model). Модель представления может содержать несколько моделей (Model). Слои View и Model описаны в статье Front-end архитектура Creatio.
Модель
Модели данных описаны в секции modelConfig клиентской схемы. Модель содержит описание источника данных. В версии Creatio 8.0 Atlas реализован источник данных EntityDataSource, который предоставляет возможность работы с базой данных приложения.
С помощью источника данных можно выполнять различные действия с данными в системе:
- Добавлять на холст новые и существующие элементы источников данных.
- Редактировать элементы источников данных.
- На холсте осуществлять привязку элементов управления к элементам источников данных и т. д.
Пример регистрации модели в клиентской схеме представлен ниже.
Структура клиентской схемы описана в статье Клиентская схема.
Модель представления
Модель представления отвечает за формирование слоя ViewModel — бизнес-логики взаимодействия слоев View и Model.
На уровне клиентской схемы модель представления конфигурируется в секции viewModelConfig. Для каждого атрибута модели представления указывается соответствующий атрибут модели, который описан в секции modelConfig.
Пример описания модели представления в клиентской схеме представлен ниже.
Типы атрибутов модели представления:
- Колонки простых типов.
- Колонки коллекций.
- Колонки по прямой связи.
Атрибуты для колонок простых типов данных
Простые типы данных, которые можно представить путем использования элементов источников данных::
- Текст.
- Число.
- Логическое значение.
- Значение даты и времени.
Чтобы создать атрибут для колонки простого типа данных:
-
Зарегистрируйте источник данных в схеме страницы Freedom UI.
Регистрация источника данных -
В свойстве attributes секции viewModelConfig создайте атрибут.
Создание атрибута
Основным свойством атрибута является секция modelConfig. Это свойство описывает связь с элементом источника данных через свойство path. Значение свойства path — [Имя источника данных].[Код колонки] (в примере ContactDS.Name) .
Атрибуты для коллекций
Модель представления позволяет выполнять привязку атрибутов, которые являются коллекцией данных. Чтобы привязать атрибут типа коллекция, для свойства isCollection атрибута установите значение true.
Расширенная настройка атрибута типа коллекция позволяет настроить постраничный вывод данных и их сортировку.
Атрибуты для колонок по прямой связи
Колонки по прямой связи — это колонки связанных объектов текущего источника данных. Например, объект [Contact] содержит свойство [Account], которое также является объектом. Необходимо зарегистрировать атрибут по колонке [Name] связанного объекта [Account].
Чтобы создать атрибут для колонки по прямой связи:
-
Зарегистрируйте источник данных в схеме страницы.
Пример регистрации источника данных -
В свойстве attributes секции viewModelConfig создайте атрибут схемы страницы.
Пример cоздания атрибутаВ свойстве path хранится не путь к колонке, а путь к атрибуту источника данных, который будет создан на следующем шаге. Значение свойства path — [Имя источника данных].[Имя атрибута источника данных] (например, ContactDS.AccountName) .
-
В секции modelConfig cоздайте атрибут.
Пример cоздания атрибута источника данных
Creatio позволяет создать атрибут по прямой связи с уровнем вложенности больше одного. Например, можно вывести название города связанного контрагента текущего контакта. В таком случае атрибут источника данных может выглядеть так:
Встроенная модель
Встроенная модель (Embedded Model) — модель данных, которая встроена в модель представления без привязки к источнику данных.
Элементы типа коллекция, для которых Creatio позволяет использовать встроенную модель:
- Список значений для реестра.
- Выпадающий список, который формируется на основе справочника и т. д.
Creatio не отображает встроенные модели данных в дизайнере Freedom UI, а также не предоставляет возможность привязки встроенных моделей к элементам управления на холсте.