Клиентская схема

Основы

Клиентская схема — это схема клиентского модуля, с помощью которой реализуется front-end часть приложения. Клиентская схема является одним из элементов пакета Creatio. Назначение клиентской схемы — сохранение и поставка метаданных части системы (приложения, раздела, модального окна и т. д.). Типы модулей и их особенности описаны в статье Виды модулей.

Клиентская схема для версии Creatio 8 Atlas и выше представлена схемой клиентского модуля типа Страница Freedom UI (Freedom UI page). Создание страницы Freedom UI описано в статье Клиентский модуль. Клиентская схема принадлежит к слою Schema (слой метаданных) режима DesignTime платформы Creatio и содержит настройки слоев режима RunTime.

Структурные элементы слоя Schema и его взаимодействие с другими структурными элементами платформы Creatio представлены на рисунке ниже.

Подробнее о режимах DesignTime и RunTime читайте в статье Front-end архитектура Creatio.

Исходный код клиентских схем имеет общую структуру, которая представлена ниже.

Структура исходного кода клиентской схемы
define("ExampleSchema", [], function() {
    return {
        modelConfig: /**SCHEMA_MODEL_CONFIG*/{}/**SCHEMA_MODEL_CONFIG*/,
        viewConfigDiff: /**SCHEMA_VIEW_CONFIG_DIFF*/[]/**SCHEMA_VIEW_CONFIG_DIFF*/,
        viewModelConfig: /**SCHEMA_VIEW_MODEL_CONFIG*/{}/**SCHEMA_VIEW_MODEL_CONFIG*/,
        validators: /**SCHEMA_VALIDATORS*/ {} /**SCHEMA_VALIDATORS*/,
        converters: /**SCHEMA_CONVERTERS*/ {} /**SCHEMA_CONVERTERS*/,
        handlers: /**SCHEMA_HANDLERS*/[] /**SCHEMA_HANDLERS*/
    };
});

Маркерные комментарии к секциям клиентской схемы обязательны к использованию.

Секции клиентской схемы представлены в таблице ниже.

Секции клиентской схемы
Секция
Описание
modelConfig Отвечает за описание источников данных слоя Model.
viewConfigDiff Отвечает за формирование слоя View.
viewModelConfig Отвечает за формирование слоя ViewModel — бизнес-логики взаимодействия слоев View и Model.
validators Валидаторы.
converters Конвертеры.
handlers Обработчики запросов.

Подробнее о слоях читайте в статье Front-end архитектура Creatio.

Секции клиентской схемы описываются в формате JSON. Логика секций validators, converters, handlers реализуется на языке JavaScript.

Кастомизация страницы описана в статье Кастомизация страницы.

Секция validators
Основы

Валидаторы — функции проверки корректности значения атрибута ViewModel. Например, проверка значения поля записи на соответствие установленным условиям. Пример использования валидатора приведен в статье Реализовать валидацию значения поля на странице.

Базовые валидаторы, которые предоставляет Creatio 8 Atlas, представлены ниже.

Базовые валидаторы 

crt.Required

Устанавливает обязательность заполнения поля.

crt.MinLength

Устанавливает минимально допустимое значение длины строки.

Параметры
minLength INTEGER Минимально допустимое значение длины строки.
crt.MaxLength

Устанавливает максимально допустимое значение длины строки.

Параметры
maxLength INTEGER Максимально допустимое значение длины строки.
crt.Min

Устанавливает минимально допустимое значение.

Параметры
min INTEGER Минимально допустимое значение.
crt.Max

Устанавливает максимально допустимое значение.

Параметры
max INTEGER Максимально допустимое значение.
crt.EmptyOrWhiteSpace

Устанавливает обязательность заполнения поля. Не допускается заполнение поля пробелами.

Секция converters
Основы

Конвертеры — функции преобразования значения атрибута ViewModel, который привязан к свойству визуального компонента, в другое значение. Пример использования конвертера приведен в статье Реализовать конвертацию значения поля на странице.

Базовые конвертеры, которые предоставляет Creatio 8 Atlas, представлены ниже.

Базовые конвертеры 

crt.ToBoolean

Конвертирует значения других типов в тип BOOLEAN.

Значения
value ANY Входящее значение. Значение, которое не является типом BOOLEAN.
result BOOLEAN Исходящее значение. Конвертированное значение типа BOOLEAN.
crt.InvertBooleanValue

Конвертирует значение типа BOOLEAN в противоположное значение типа BOOLEAN. Например, если входящее значение — true, то возвращается значение false и наоборот.

Значения
value BOOLEAN Входящее значение.
result BOOLEAN Исходящее значение.
crt.ToEmailLink

Конвертирует адрес электронной почты в ссылку, добавляя в начало адреса префикс mailTo:.

Значения
value TEXT Входящее значение. Адрес электронной почты.
result TEXT Исходящее значение. Ссылка на адрес электронной почты.
crt.ToObjectProp

Получает значение указанного свойства объекта.

Значения
value CUSTOM_OBJECT Входящее значение. Имя свойства объекта.
result ANY Исходящее значение. Значение свойства объекта.
Параметры
prop required TEXT Имя свойства, которое необходимо получить.
defaultValue optional ANY Значение, которое возвращается, если свойства не существует или в ответе возвращено значение false.
crt.ToPhoneLink

Конвертирует номер телефона в ссылку, добавляя в начало адреса префикс tel:.

Значения
value TEXT Входящее значение. Номер телефона.
result TEXT Исходящее значение. Ссылка на номер телефона.
Секция handlers
Основы

Обработчики запросов — элементы механизма HandlerChain, который позволяет описывать бизнес-логику в формате запроса на действие и цепочки обработчиков запроса. Примеры использования обработчиков запросов приведены в пункте Примеры блока по кастомизации страницы.

Среди базовых обработчиков есть действия по открытию страниц, работе с данными на странице и т. д.

Базовые обработчики запросов, которые предоставляет Creatio 8 Atlas, представлены ниже.

Базовые обработчики запросов 

crt.CreateRecordRequest

Создает запись.

crt.UpdateRecordRequest

Обновляет запись.

crt.OpenPageRequest

Открывает страницу.

crt.SaveRecordRequest

Сохраняет данные.

crt.CancelRecordChangesRequest

Отменяет изменение данных.

crt.RunBusinessProcessRequest

Запускает бизнес-процесс.

crt.ClosePageRequest

Закрывает страницу.

crt.HandleViewModelInitRequest

Инициализирует экземпляр жизненного цикла.

crt.HandleViewModelAttributeChangeRequest

Изменяет значение атрибута жизненного цикла.

crt.HandleViewModelDestroyRequest

Уничтожает экземпляра жизненного цикла. На этом этапе необходимо выполнять только синхронный код, который уничтожает накопленные в процессе работы ресурсы.