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

Класс DataManager

Glossary Item Box

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

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

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

dataStore: {
SysModule: sysModuleCollection,
SysModuleEntity: sysModuleEntityCollection
}

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

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

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

Класс Terrasoft.manager.DataManager

Свойства

Табл. 1. — Основные свойства класса DataManager

dataStore
Object

Хранилище коллекций данных.


itemClassName
String

Имя класса записи. Имеет значение Terrasoft.DataManagerItem.


Методы

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

select

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

Параметры:

  • config {Object} — конфигурационный объект;
  • callback {Function} — функция обратного вызова;
  • scope {Object} — контекст выполнения функции обратного вызова.

createItem

Создает новую запись типа config.entitySchemaName со значениями колонок config.columnValues.

Параметры:

  • config {Object} — конфигурационный объект;
  • callback {Function} — функция обратного вызова;
  • scope {Object} — контекст выполнения функции обратного вызова.

addItem

Добавляет запись item в коллекцию данных схемы.

Параметры:

  • item {Terrasoft.DataManagerItem} — добавляемая запись.

findItem

Возвращает запись из коллекции данных схемы с именем entitySchemaName и с идентификатором id.

Параметры:

  • entitySchemaName {String} — название коллекции данных;
  • id {String} — идентификатор записи.

remove

Устанавливает признак isDeleted для записи item, при фиксации изменений запись будет удалена из базы данных.

Параметры:

  • item {Terrasoft.DataManagerItem} — удаляемая запись.

removeItem

Удаляет запись из коллекции данных схемы.

Параметры:

  • item {Terrasoft.DataManagerItem} — удаляемая запись.

update

Обновляет запись со значением первичной колонки config.primaryColumnValue значениями из config.columnValues.

Параметры:

  • config {Object} — конфигурационный объект;
  • callback {Function} — функция обратного вызова;
  • scope {Object} — контекст выполнения функции обратного вызова.

discardItem

Отменяет изменения для записи item, сделанные в текущей сессии работы с DataManger.

Параметры:

  • item {Terrasoft.DataManagerItem} — запись, по которой будут отменены изменения.

save

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

Параметры:

  • config {Object} — конфигурационный объект;
  • callback {Function} — функция обратного вызова;
  • scope {Object} — контекст выполнения функции обратного вызова.

Класс Terrasoft.DataManagerItem

Свойства

Табл. 3. — Основные свойства класса DataManagerItem

viewModel
Terrasoft.BaseViewMode

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


Методы

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

setColumnValue

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

Параметры:

  • columnName {String} — название колонки;
  • columnValue {String} — значение колонки.

getColumnValue

Возвращает значение колонки с именем columnName.

Параметры:

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

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-2020.

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

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