Класс SelectQuery

Сложный
PDF

Класс SelectQuery 

Пространство имен Terrasoft.Nui.ServiceModel.DataContract библиотеки классов Terrasoft.Nui.ServiceModel.dll.

Назначение класса SelectQuery — чтение записей раздела. Передача данных непосредственно в сервис работы с данными DataService осуществляется по HTTP протоколу при помощи POST-запроса по URL.

/* Формат URL для POST-запроса к DataService на чтение данных. */
http(s)://[Адрес приложения Creatio]/[Номер конфигурации]/dataservice/[Формат данных]/reply/SelectQuery
/* Пример URL для POST-запроса к DataService на чтение данных. */
http(s)://example.creatio.com/0/dataservice/json/reply/SelectQuery

Контракт данных SelectQuery имеет иерархическую структуру с несколькими уровнями вложенности. Для простоты восприятия иерархическую структуру контракта данных SelectQuery удобно представить в формате объекта JSON.

Структура контракта данных SelectQuery
{
    "RootSchemaName":"[Имя корневой схемы объекта]",
    "OperationType":[Тип операции с записью],
    "QueryId":[Идентификатор запроса],
    "QueryKind":[Информация о запросе для DBExecutor],
    "IncludeProcessExecutionData":[Данные о выполнении процесса],
    "ColumnValues":[Значения колонок],
    "ChunkSize":[Количество сущностей в блоке],
    "IgnoreDisplayValues":[Использовать запрос для отображения значений столбцов],
    "QueryOptimize":[Использовать оптимизацию запросов],
    "QuerySource":[Источник запроса],
    "QueryType":[Тип запроса],
    "RowsOffset":[Количество пропущенных строк],
    "UseLocalization":[Использовать локализованные данные],
    "UseMetrics":[Использовать метрики для запроса],
    "UseRecordDeactivation":[Отключить данные при фильтрации],
    "Columns":{
        "Items":{
            "Name":{
                "OrderDirection":[Порядок сортировки],
                "OrderPosition":[Позиция колонки],
                "Caption":"[Заголовок]",
                "Expression":{
                    "ExpressionType":[Тип выражения],
                    "ColumnPath":"[Путь к колонке]",
                    "Parameter":[Параметр],
                    "FunctionType":[Тип функции],
                    "MacrosType":[Тип макроса],
                    "FunctionArgument":[Аргумент функции],
                    "DatePartType":[Тип части даты],
                    "AggregationType":[Тип агрегации],
                    "AggregationEvalType":[Область применения агрегации],
                    "SubFilters":[Вложенные фильтры]
                }
            }
        }
    },
    "AllColumns":[Признак выбора всех колонок],
    "ServerESQCacheParameters":{
        "CacheLevel":[Уровень кеширования],
        "CacheGroup":[Группа кеширования],
        "CacheItemName":[Ключ записи в хранилище]
    },
    "IsPageable":[Признак разбиения на страницы],
    "IsDistinct":[Признак уникальности],
    "RowCount":[Количество выбираемых записей],
    "ConditionalValues":[Условия для построения постраничного запроса],
    "IsHierarchical":[Признак иерархической выборки данных],
    "HierarchicalMaxDepth":[Максимальный уровень вложенности иерархического запроса],
    "HierarchicalColumnName":[Имя колонки, использующейся для построения иерархического запроса],
    "HierarchicalColumnValue":[Начальное значение иерархической колонки],
    "Filters":[Фильтры],
    "AdminUnitRoleSources":[Источник вхождения пользователя в роль, который используется для фильтрации записей при проверке прав]
}

На заметку. Полный перечень свойств класса InsertQuery и его родительских классов можно найти в Библиотеке .NET классов.

Свойства 

Filters Filters

Коллекция фильтров запросов. Имеет тип Filters, определенный в пространстве имен Terrasoft.Nui.ServiceModel.DataContract.

QueryId string

Идентификатор запроса.

QueryKind QueryKind

Дополнительная информация о запросе, которая может быть использована для отправки запроса DBExecutor.

Возможные значения (QueryKind)
General Используется, как значение по умолчанию.
Limited Используется, чтобы показать, что запрос может быть отправлен исполнителю с ограниченными ресурсами.
ColumnValues ColumnValues

Значения колонок.

RootSchemaName string

Строка, содержащая название корневой схемы объекта добавляемой записи.

OperationType QueryOperationType

Тип операции с записью. Задается значением перечисления QueryOperationType пространства имен Terrasoft.Nui.ServiceModel.DataContract. Для SelectQuery устанавливается значение QueryOperationType.Select.

Возможные значения (QueryOperationType)
Select 0
Insert 1
Update 2
Delete 3
Batch 4
IncludeProcessExecutionData bool

Флаг, который включает данные о выполнении процесса.

AdminUnitRoleSources AdminUnitRoleSources

Целочисленное свойство, которое соответствует критериям фильтрации записей по источнику вхождения пользователя в роли. Значение по умолчанию: 0. Перечисление AdminUnitRoleSources находится в пространстве имен Terrasoft.Common. Чтобы сформировать AdminUnitRoleSources, необходимо с помощью побитового ИЛИ ("|") перечислить константы из JS-класса Terrasoft.AdminUnitRoleSources. В результате, на серверной стороне запись будет возвращена, если у пользователя есть хоть одна роль, которой доступна запись, и пользователь входит в эту роль в соответствии с источниками, указанными в условиях фильтрации.

Возможные значения (AdminUnitRoleSources)
All Получает все роли.
AsManager Получает роль менеджера.
Delegated Делегированная роль.
ExplicitEntry Явное вхождение в роль.
FuncRoleFromOrgRole Получает функциональную роль с организационной роли.
None Пустое значение.
Self Самостоятельно.
UpHierarchy Возвращает роль вверх по иерархии.
AllColumns bool

Признак выбора всех колонок. Если значение установлено как true, в результате выполнения запроса будут выбраны все колонки корневой схемы.

ChunkSize int

Количество сущностей в блоке.

Columns SelectQueryColumns

Содержит коллекцию колонок для считываемых записей. Имеет тип SelectQueryColumns, определенный в пространстве имен Terrasoft.Nui.ServiceModel.DataContract. Следует конфигурировать, если значение признака AllColumns установлено как false и нужен определенный набор колонок корневой схемы, не включающий колонку Id.

ConditionalValues ColumnValues

Условия для построения постраничного запроса. Тип ColumnValues определен в пространстве имен Terrasoft.Nui.ServiceModel.DataContract.

HierarchicalColumnName string

Имя колонки, использующейся для построения иерархического запроса.

HierarchicalColumnValue string

Начальное значение иерархической колонки, от которого будет строиться иерархия.

HierarchicalMaxDepth int

Максимальный уровень вложенности иерархического запроса.

IgnoreDisplayValues bool

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

IsDistinct bool

Признак, указывающий убирать или нет дубли в результирующем наборе данных.

IsHierarchical bool

Признак иерархической выборки данных.

IsPageable bool

Признак постраничной выборки данных.

QueryOptimize bool

Позволяет использовать оптимизацию запросов.

QuerySource QuerySource

Источник запроса.

Возможные значения (QuerySource)
Filter Из фильтра.
FilterSummary Из аннотации с фильтром.
Undefined Не задано.
QueryType QueryType

Тип запроса.

Возможные значения (QueryType)
Delete Удаление данных.
Select Чтение данных.
Update Изменение данных.
RowCount int

Количество выбираемых строк. По умолчанию содержит значение -1, т. е. выбираются все строки.

RowsOffset int

Количество пропущенных строк.

ServerESQCacheParameters ServerESQCacheParameters

Параметры кэширования EntitySchemaQuery на сервере. Тип ServerESQCacheParameters определен в пространстве имен Terrasoft.Nui.ServiceModel.DataContract.

UseLocalization bool

Параметр, который определяет использование локализованных данных.

UseMetrics bool

Использует метрики для запроса.

UseRecordDeactivation bool

Определяет отключение данных при фильтрации.

Класс SelectQueryColumns 

Пространство имен Terrasoft.Nui.ServiceModel.DataContract.

На заметку. Полный перечень свойств класса SelectQueryColumns и его родительских классов можно найти в Библиотеке .NET классов.

Свойства 

Items Dictionary<string, SelectQueryColumn>

Коллекция ключей и значений Dictionary<string, SelectQueryColumn>. Ключом является строка с названием добавляемой колонки, а значением — экземпляр класса SelectQueryColumn, который определен в пространстве имен Terrasoft.Nui.ServiceModel.DataContract.

Параметры
OrderDirection OrderDirection Направление сортировки. Задается значением перечисления OrderDirection пространства имен Terrasoft.Common, определенного в библиотеке классов Terrasoft.Common.
OrderPosition int Задает номер позиции в коллекции колонок запроса, по которой производится сортировка.
Caption string Заголовок колонки.
Expression ColumnExpression Свойство, определяющее выражение типа выбираемой колонки.

Класс ColumnExpression 

Пространство имен Terrasoft.Nui.ServiceModel.DataContract.

Класс ColumnExpression определяет выражение, задающее тип колонки схемы. Он определен в пространстве имен Terrasoft.Nui.ServiceModel.DataContract библиотеки Terrasoft.Nui.ServiceModel. Свойства экземпляра этого класса заполняются в зависимости от свойства ExpressionType, которое и задает тип выражения.

На заметку. Полный перечень свойств класса SelectQueryColumns и его родительских классов можно найти в Библиотеке .NET классов.

Свойства 

PrimaryColumnMacrosType int

Тип макроса основной колонки.

PrimaryDisplayColumnMacrosType int

Тип макроса отображаемой колонки.

PrimaryImageColumnMacrosType int

Тип макроса основной колонки изображения.

ExpressionType EntitySchemaQueryExpressionType

Тип выражения, определяющий значение, которое будет содержаться в добавляемой колонке. Задается значением перечисления EntitySchemaQueryExpressionType пространства имен Terrasoft.Core.Entities, определенного в библиотеке классов Terrasoft.Core. Для SelectQuery устанавливается значение EntitySchemaQueryExpressionType.Parameter.

Возможные значения (EntitySchemaQueryExpressionType)
SchemaColumn 0 Колонка схемы.
Function 1 Функция.
Parameter 2 Параметр.
SubQuery 3 Вложенный запрос.
ArithmeticOperation 4 Арифметическая операция.
IsBlock bool

Блокировка.

ColumnPath string

Путь к колонке относительно корневой схемы.

Parameter Parameter

Определяет значение, которое будет содержаться в добавляемой колонке. Имеет тип Parameter, определенный в пространстве имен Terrasoft.Nui.ServiceModel.DataContract.

FunctionType FunctionType

Тип функции. Задается значением из перечисления FunctionType, определенного в пространстве имен Terrasoft.Nui.ServiceModel.DataContract.

Возможные значения (FunctionType)
None 0 Не определен.
Macros 1 Макрос.
Aggregation 2 Агрегирующая функция.
DatePart 3 Часть даты.
Length 4 Длина.
MacrosType EntitySchemaQueryMacrosType

Тип макроса. Задается значением перечисления EntitySchemaQueryMacrosType, определенного в пространстве имен Terrasoft.Core.Entities.

FunctionArgument BaseExpression

Аргумент функции. Принимает значение, если функция определена с параметром. Класс BaseExpression определен в пространстве имен Terrasoft.Nui.ServiceModel.DataContract, является предком для класса ColumnExpresion и имеет такой же набор свойств.

FunctionArguments BaseExpression[]

Массив аргументов функции.

DateDiffInterval DateDiffQueryFunctionInterval

Интервал разницы дат.

DatePartType DatePart

Часть даты. Задается значением из перечисления DatePart, определенного в пространстве имен Terrasoft.Nui.ServiceModel.DataContract.

Возможные значения (DatePart)
None 0 Не определен.
Day 1 День.
Week 2 Неделя.
Month 3 Месяц.
Year 4 Год.
Weekday 5 День недели.
Hour 6 Час.
HourMinute 7 Минута.
AggregationType AggregationType

Тип агрегирующей функции. Задается значением из перечисления AggregationType, определенного в пространстве имен Terrasoft.Common, определенного в библиотеке классов Terrasoft.Common.

AggregationEvalType AggregationEvalType

Область применения агрегирующей функции. Задается значением из перечисления AggregationEvalType, определенного в пространстве имен Terrasoft.Core.DB, определенного в библиотеке классов Terrasoft.Core.

SubFilters Filters

Коллекция фильтров вложенных запросов. Имеет тип Filters, определенный в пространстве имен Terrasoft.Nui.ServiceModel.DataContract.

ArithmeticOperation ArithmeticOperation

Тип арифметической операции.

Возможные значения (ArithmeticOperation)
Addition Сложение.
Division Деление.
Multiplication Умножение.
Subtraction Вычитание.
LeftArithmeticOperand BaseExpression

Левый операнд.

RightArithmeticOperand BaseExpression

Правый операнд.

Класс ServerESQCacheParameters 

Пространство имен Terrasoft.Nui.ServiceModel.DataContract.

На заметку. Полный перечень свойств класса SelectQueryColumns и его родительских классов можно найти в Библиотеке .NET классов.

Свойства 

CacheGroup string

Группа кэширования.

CacheItemName string

Ключ записи в хранилище.

CacheLevel int

Уровень размещения данных в кэше EntitySchemaQuery.