Creatio development guide
PDF
Документация по разработке
Описание платформы

Получение результата запроса

Glossary Item Box

Результатом выполнения запроса EntitySchemaQuery является коллекция сущностей bpm'online. Каждый экземпляр в коллекции представляет собой строку набора данных, возвращаемого запросом. Получить результаты выполнения запроса можно следующими способами:

  • Получить конкретную строку набора данных по заданному первичному ключу, вызвав метод getEntity (пример 1).
  • Получить весь результирующий набор данных, вызвав метод getEntityCollection (пример 2).

Пример 1. — Получение конкретной строки набора данных

// Получаем [Id] объекта карточки.
var recordId = this.get("Id");
// Создаем экземпляр класса Terrasoft.EntitySchemaQuery с корневой схемой [Contact].
var esq = this.Ext.create("Terrasoft.EntitySchemaQuery", {
    rootSchemaName: "Contact"
});
// Добавляем колонку с именем основного контакта контрагента, который относится к данному контакту.
esq.addColumn("Account.PrimaryContact.Name", "PrimaryContactName");
// Получаем одну запись из выборки по [Id] объекта карточки и отображаем ее
// в информационном окне.
esq.getEntity(recordId, function(result) {
    if (!result.success) {
        // обработка/логирование ошибки, например
        this.showInformationDialog("Ошибка запроса данных");
        return;
    }
    this.showInformationDialog(result.entity.get("PrimaryContactName"));
}, this);

Пример 2. — Получение всего набора данных

var message = "";
// Создаем экземпляр класса Terrasoft.EntitySchemaQuery с корневой схемой [Contact].
var esq = Ext.create("Terrasoft.EntitySchemaQuery", {
    rootSchemaName: "Contact"
});
// Добавляем колонку с названием контрагента, который относится к данному контакту.
esq.addColumn("Account.Name", "AccountName");
// Добавляем колонку с именем основного контакта контрагента, который относится к данному контакту.
esq.addColumn("Account.PrimaryContact.Name", "PrimaryContactName");
// Получаем всю коллекцию записей и отображаем ее в информационном окне.
esq.getEntityCollection(function (result) {
    if (!result.success) {
        // обработка/логирование ошибки, например
        this.showInformationDialog("Ошибка запроса данных");
        return;
    }
    result.collection.each(function (item) {
        message += "Account name: " + item.get("AccountName") +
        " - primary contact name: " + item.get("PrimaryContactName") + "\n";
    });
    this.showInformationDialog(message);
}, this);

К СВЕДЕНИЮ

При получении справочных колонок метод this.get() возвращает объект, а не идентификатор записи в базе данных. Чтобы получить идентификатор, используйте свойство value, например, this.get('Account').value.

Табл. 1. — Методы получения результатов запроса

Метод
getEntity(primaryColumnValue, callback, scope)

Возвращает экземпляр сущности по заданному первичному ключу [primaryColumnValue]. После получения данных вызывает функцию [callback] в контексте [scope].

primaryColumnValue String/Number Значение первичного ключа.
callback Function Функция, которая будет вызвана при получении ответа от сервера.
scope Object Контекст, в котором будет вызвана функция [callback].
getEntityCollection(callback, scope)

Возвращает коллекцию экземпляров сущности, представляющих результаты выполнения текущего запроса. После получения данных вызывает функцию [callback] в контексте [scope].

callback Function Функция, которая будет вызвана при получении ответа от сервера.
scope Object Контекст, в котором будет вызвана функция [callback].

Смотрите также

© Terrasoft 2002-2019.

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

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