Creatio development guide
Это документация Creatio версии 7.11.0. Мы рекомендуем использовать новую версию документации.

Описание и примеры работы с классом DataManager

Glossary Item Box

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

При работе с клиентской частью приложения возникает необходимость создавать, изменять и удалять данные сущностей без сохранения этих изменений в базу данных. Фиксация изменений в базу данных должна происходить при явном вызове метода сохранения. Данная функциональность реализована в классах DataManager и DataManagerItem.

Класс DataManager — синглтон, и доступен через глобальный объект Terrasoft. Данный класс предоставляет хранилище dataStore. В хранилище может быть загружено содержимое одной или нескольких таблиц базы данных. Например:

dataStore: {
SysModule: sysModuleCollection,
SysModuleEntity: sysModuleEntityCollection
}

Здесь sysModuleCollection и sysModuleEntityCollection — коллекции данных типа DataManagerItem схем SysModule и SysModuleEntity. Каждая запись коллекции представляет запись из соответствующей таблицы в базе данных.

Диаграмма классов DataManager и DataManagerItem представлена на рисунке 1.

Рис. 1. — Диаграмма классов

Основные свойства и методы

Свойства и основные методы класса DataManager представлены в таблицах 1 и 2. Полный перечень свойств и методов можно узнать в разделе "JavaScript API клиентской части ядра платформы".

Табл. 1. — Свойства класса DataManager

Название Тип Описание
dataStore Object Хранилище коллекций данных.
itemClassName String Имя класса записи. Имеет значение “Terrasoft.DataManagerItem”.

Табл. 2. — Основные методы класса DataManager

Название Параметры Описание
select

config {Object} — конфигурационный объект;

callback {Function} — функция обратного вызова;

scope {Object} — контекст выполнения функции обратного вызова.

В случае если dataStore не содержит коллекцию данных с именем config.entitySchemaName, то метод формирует и выполняет запрос в базу данных, затем возвращает полученные данные, иначе возвращает коллекцию данных из dataStore.
createItem

config {Object} — конфигурационный объект;

callback {Function} — функция обратного вызова;

scope {Object} — контекст выполнения функции обратного вызова.

Создает новую запись типа config.entitySchemaName со значениями колонок config.columnValues.
addItem item {Terrasoft.DataManagerItem} — добавляемая запись. Добавляет запись item в коллекцию данных схемы.
findItem

entitySchemaName {String} — название коллекции данных;

id {String} — идентификатор записи.

Возвращает запись из коллекции данных схемы с именем entitySchemaName и с идентификатором id.
remove item {Terrasoft.DataManagerItem} — удаляемая запись. Устанавливает признак isDeleted для записи item, при фиксации изменений запись будет удалена из базы данных.
removeItem item {Terrasoft.DataManagerItem} — удаляемая запись. Удаляет запись из коллекции данных схемы.
update

config {Object} — конфигурационный объект;

callback {Function} — функция обратного вызова;

scope {Object} — контекст выполнения функции обратного вызова.

Обновляет запись со значением первичной колонки config.primaryColumnValue значениями из config.columnValues.
discardItem item {Terrasoft.DataManagerItem} — запись, по которой будут отменены изменения. Отменяет изменения для записи item, сделанные в текущей сессии работы с DataManger.
save

config {Object} — конфигурационный объект;

callback {Function} — функция обратного вызова;

scope {Object} — контекст выполнения функции обратного вызова.

Выполняет сохранение в базу данных коллекций данных схем, указанных в config.entitySchemaNames.

Свойства и основные методы класса DataManagerItem представлены в таблицах 3 и 4. Полный перечень свойств и методов можно узнать в разделе "JavaScript API клиентской части ядра платформы".

Табл. 3. — Свойства класса DataManagerItem

Название Тип Описание
viewModel Terrasoft.BaseViewMode Объектная проекция записи в базе данных.

Табл. 4. —Основные методы класса DataManagerItem

Название Параметры Описание
setColumnValue

columnName {String} — название колонки;

columnValue {String} — значение колонки.

Устанавливает новое значение columnValue для колонки с именем columnName.
getColumnValue

columnName {String} — название колонки.

Возвращает значение колонки с именем columnName.
getValues Нет. Возвращает значения всех колонок записи.
remove Нет. Устанавливает признак isDeleted для записи.
discard Нет. Отменяет изменения для записи, сделанные в текущей сессии работы с DataManger.
save Нет. Фиксирует изменения в базе данных.
getIsNew Нет. Возвращает признак того, что запись новая.
getIsChanged Нет. Возвращает признак того, что запись была изменена.

Примеры работы

Получение записей из таблицы [Contact]:

// Определение конфигурационного объекта.
var config = {
    // Название схемы сущности.
    entitySchemaName: "Contact",
    // Убирать дубли в результирующем наборе данных.
    isDistinct: true
};
// Получение данных.
Terrasoft.DataManager.select(config, function (collection) {
    // Сохранение полученных записей в локальное хранилище.
    collection.each(function (item) {
        Terrasoft.DataManager.addItem(item);
    });
}, this);

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

// Определение конфигурационного объекта.
var config = {
    // Название схемы сущности.
    entitySchemaName: "Contact",
    // Значения колонок.
    columnValues: {
        Id: "00000000-0000-0000-0000-000000000001",
        Name: "Name1"
    }
};
// Создание новой записи.
Terrasoft.DataManager.createItem(config, function (item) {
    Terrasoft.DataManager.addItem(item);
}, this);

Получение записи и изменение значения колонки:

// Получение записи.
var item = Terrasoft.DataManager.findItem("Contact",
     "00000000-0000-0000-0000-000000000001");
// Установка нового значения "Name2" колонке [Name]. 
item.setColumnValue("Name", "Name2");

Удаление записи из DataManager:

// Определение конфигурационного объекта.
var config = {
    // Название схемы сущности.    
    entitySchemaName: "Contact",
    // Значение первичной колонки.
    primaryColumnValue: "00000000-0000-0000-0000-000000000001"
};
// Устанавливает признак isDeleted для записи item.
Terrasoft.DataManager.remove(config, function () {
}, this);

Отмена изменений, сделанных в текущей сессии работы с DataManager:

// Получение записи.
var item = Terrasoft.DataManager.findItem("Contact",
     "00000000-0000-0000-0000-000000000001");
// Отмена изменений для записи.     
Terrasoft.DataManager.discardItem(item);

Фиксация изменений в базе данных:

// Определение конфигурационного объекта.
var config = {
    // Название схемы сущности.    
    entitySchemaNames: ["Contact"]
};
// Сохранение изменений в базу данных.
Terrasoft.DataManager.save(config, function () {
}, this);
© Terrasoft 2002-2018.

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

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