Пользовательские источники данных¶
Инструмент предназначен для работы с произвольными источниками данных как из самой системы, так и получаемых через интеграции: просмотр, фильтрация, выбор полей, выгрузка в excel. Произвольные источники позволяют в интерфейсе "Первой Формы" работать с большими объемами данных и сложными аналитическими отчетностями.
Добавление и редактирование источника данных¶
Для добавления нового источника данных нажмите кнопку Добавить — откроется модальное окно добавления нового источника данных. Обязательные для заполнения поля выделены красным цветом.
После указания источника данные по колонкам загружаются автоматически. Для источника можно указать набор существенных доступных пользователям полей — для полей источника можно указывать название, тип и формат данных.
ℹ️ При создании нового источника необходимо настроить и сохранить колонки
Для перехода в режим редактирования нажмите на строку с нужным источником — откроется модальное окно настроек произвольного источника.
Общие
Общие настройки произвольного источника:
| Параметр | Описание |
|---|---|
| Тип источника данных | Доступные варианты: |
-Таблица -Функция -Хранимая процедура (доступно только на MSSQL) -Представление -Хранимая процедура без явного ResultSetВ качестве источника данных можно указать процедуру с параметрами или иной произвольный SQL запрос.
*Хранимая процедура без явного ResultSet используется, когда в зависимости от контекста меняется количество возвращаемых колонок. Этот источник не описывает структуру возвращаемых данных и не определяет количество столбцов, в связи с чем часть пользовательских функций, таких как сортировка, фильтрация, группировка, разбиение на страницы будут недоступны.
При выборе функции или хранимой процедуры в качестве типа источника данных справа от поля появляется значок — нажатие на него отображает окно с примером кода для создания необходимой функции или процедуры.
ℹ️ Обратите внимание: при изменении состава колонок в хранимой процедуре или функции произвольного источника требуется обновить колонки на вкладке Колонки.
|
Пример функции:
CREATE FUNCTION customDataSourceFunc ( @UserId int null ) RETURNS TABLE AS RETURN ( SELECT DisplayName, LastName from Users )
Пример хранимой процедуры:
CREATE PROCEDURE customDataSourceProc @UserId int null AS BEGIN SELECT DisplayName, LastName from Users END
По умолчанию активировано. | Название | Название произвольного источника | | --- | --- | | Алиас* | Наименование источника (псевдоним) | | Путь | Полный путь до произвольного источника с учетом текущего алиаса. Заполняется автоматически после указания алиаса | | Описание | Описание произвольного источника | | Группы | Список групп, которым выданы права на источник | | Специальный тип | Произвольный источник можно открыть как отдельным роутом, так и из БИ. |
При выборе типа "Блок используется" к пути добавляется ds/{alias}?taskId= Обязательные параметры табличной функции для БИ: -UserID (int) — ID пользователя. -TaskID (int) — ID задачи. [Пример табличной функции для БИ]
call dbo.droproutineifexists(\'dbo\', \'fn_ds_bi\');
create or replace function dbo.fn_ds_bi
(
p_userid int,
p_taskid int = NULL::integer
)
returns record
as
$routine_text$
select
epHistory.extparamvalue,
epHistory.comment,
coalesce(epHistory.extparamoldvalue, \'\') as extparamoldvalue,
u.DisplayName as username,
coalesce(nullif(epInSubcat.ExtParamName,\'\'),ep.ExtParamName) as ExtParamName,
epHistory.dt,
epHistory.taskid,
ep.extparamtype
from
dbo.extparamhistory epHistory
inner join
dbo.tasks t
on t.taskid = epHistory.taskid
left join
dbo.users u
on u.userid = epHistory.userid
inner join
dbo.extparams ep
on ep.extparamid = epHistory.extparamid
left outer join
dbo.extparamsinsubcat epInSubcat
on epInSubcat.subcatid = t.subcatid
and epInSubcat.extparamid = epHistory.extparamid
left outer join
(
select
epPermission.extparamid,
epPermission.subcatid,
bool_or(epPermission.AllowEdit) as AllowEdit
from
dbo.ExtParamPermission epPermission
inner join
dbo.usergroups ug
on ug.groupid = epPermission.groupid
and ug.userid = p_userid
group by
epPermission.extparamid,
epPermission.subcatid
) prm
on prm.subcatid = t.subcatid
and ep.extparamid = prm.extparamid
where
epInSubcat.Id is not null
and
(
coalesce(epInSubcat.AccessControl,0) in (0,3,4,5)
or
prm.AllowEdit is not null
)
and epHistory.taskid = p_taskid;
$routine_text$
language sql;
Особенности работы с хранимой процедурой в качестве источника данных
Источником данных может являться хранимая процедура SQL. К таким процедурам предъявляется ряд требований.
Входные параметры хранимой процедуры:
Обязательно: \@UserID (int) — ID текущего пользователя.
Опционально: \@TaskID (int) — ID текущей задачи¶
Если процедура передает другие параметры, они не должны быть обязательными, т.к. при вычислении им будет передано значение NULL.
Хранимая процедура может возвращать произвольные данные и произвольный набор колонок. Названия колонок должны быть на латинице без пробелов
Пример процедуры:
create PROCEDURE [dbo.\bi_sp_simple_example]
@Userid int null,
@TaskID int null
AS
BEGIN
declare @result table
Taskid int null,
Userid int null,
SomeText varchar(max) null
);
insert into @result
select top 10
t.TaskID,
t.UserID,
t.Description
from
Tasks t with(nolock)
where
t.TaskID = @TaskID;
select
TaskID,
UserID,
SomeText
from
@result;
END
Во вкладке доступны настройки колонок табличного вида.
По кнопке Обновить колонки данные будут обновлены в соответствии с указанным источником.
По кнопке Сброс настроек всех пользователей персональные настройки табличного вида пользователей будут сброшены к виду по умолчанию.
Настройки колонок:
| Параметр | Описание |
|---|---|
| Колонка в БД | Название колонки в БД. Подтягивается автоматически, поле недоступно для редактирования |
| Название | Название колонки. |
ℹ️ При настройке произвольного источника необходимо использовать значения колонок именно в том виде (с сохранением регистра), в котором они передаются в поле Колонка в БД
Рядом с названием отображается иконка локализации — по клику на нее открывается окно для задания названий колонки в разных локалях.
ℹ️ Если необходимо открывать ссылки, в название колонки необходимо указать TaskID
| Параметр | Описание |
|---|---|
| Тип | Тип данных колонки. Доступные варианты: -Число -Строка -Дата -Дата и время -Html -Html без тегов -Чекбокс |
| Настройки фильтра | Доступные типы фильтра: Базовый и Мультивыбор. Фильтр с типом "Мультивыбор" для колонки в списке задач категории позволяет дополнительно выбирать несколько значений из множества.\ |
Для мультивыбора необходимо указать источник фильтра: |
[Пример источника фильтра]
| Функция возвращает таблицу с двумя колонками name и value, предназначенную для использования в интерфейсе фильтрации. Колонка name содержит значения для отображения в пользовательском интерфейсе, а колонка value хранит значения, которые используются для фактической фильтрации данных. В интерфейсе пользователь видит значения из колонки name, и при выборе конкретного значения система применяет фильтр по соответствующему значению из колонки value.
| Пример функции:
CREATE OR ALTER FUNCTION [dbo.\testBoytsova\ (@UserId int)]
RETURNS @Table TABLE(
[name\ nvarchar(300),]
[value\ nvarchar(300)]
)
AS
Begin
insert into @Table ([name\, \value)]
select s.Description,s.Description
from States s
where s.StateID IN (1,2,3,4)
RETURN
END
Детализация по колонкам Title, Genre, Year Действия
Позволяет добавлять кастомные кнопки действий со строкой, которые отобржаются в отдельной колонке "Действия".
Настройка кнопок действий в колонке задается в формате JSON со следующими параметрами:
-
icon — Название иконки из набора, она будет отображаться на кнопке. Список доступных иконок вы можете найти по ссылке: /spa/icons
-
name — Название кнопки.
-
showInMenu — Отображение кнопки в меню. Возможные значения: true (отображать) / false (не отображать).
-
showInActions — Отображение кнопки в тулбаре действий. Возможные значения: true (отображать) / false (не отображать).
-
type — Тип кнопки. Возможные значения: OpenUrl — Открыть ссылку из параметра url, Request — Запрос, OpenComponent — Открыть компонент (в настоящее время не поддерживается).
-
options:
ourl — Ссылка, которая открывается при нажатии на кнопку. Помимо статичной ссылки вы можете задать ссылку на конкретную строку таблицы в формате {params:\column}, вместо \column\ указывается название колонки, из которой необходимо получить данные в этой строке (см.пример).
ℹ️ Начиная с версии 2.262 Весы, параметры должны передаваться исключительно в нижнем регистре. Пример: /admin/extparams/ExtParamsMainFrame.aspx?ExtParamID={params:extparamid}
До версии 2.261 допустимо указание параметров в верхнем регистре, действие будет корректно обрабатывать запросы следующего формата: /admin/extparams/ExtParamsMainFrame.aspx?ExtParamID={params:ExtParamID} oopenMode — Режим отображения. Возможные значения: CurrentWindow — в текущем окне, NewWindow — в новом окне, ModalWindow — в модальном окне.
oparams --- может содержать элемент http-запроса: headers, credentials, body и т.п. Наиболее распространенное значение:
▪method — API-метод (GET, POST).
oshowResponse — Отображение результата запроса. Возможные значения: true (отображать) / false (не отображать).
oisAvailable — Настройка доступа в формате: "(params, ctx) => params.id === 123 && ctx.userId === 11".
Пример:
[\ { "icon": "vh-tasks-add-24", "name": "Получить кэш", "showInMenu": null, "showInActions": null, "type": "Request", "options": { "url": "/spa/ds/films", "params": { "method": "POST" }, "showResponse": true, "isAvailable": "(params, ctx) => params.id == 3 && ctx.userId == 8323" } }, { "icon": "", "name": "Открыть группу", "showInMenu": null, "showInActions": null, "type": "OpenUrl", "options": { "url": "/spa/ds/films?f_id={params:id}", "openMode": "ModalWindow" } } По кнопке справа доступен пример JSON:
Пример отображения кнопок действий в пользовательском интерфейсе:
Настройки тулбара¶
Позволяет добавлять кастомные кнопки действий в панели инструментов.
Настройка кнопок в панели инструментов задается в формате JSON со следующими параметрами:
-
icon — Название иконки из набора, она будет отображаться на кнопке панели инструментов. Список доступных иконок вы можете найти по ссылке: /spa/icons
-
name — Название кнопки.
-
showInMenu — Отображение кнопки в меню. Возможные значения: true (отображать) / false (не отображать).
-
showInActions — Отображение кнопки в тулбаре действий. Возможные значения: true (отображать) / false (не отображать).
-
type — Тип кнопки. Возможные значения: OpenUrl — Открыть ссылку из параметра url, Request — Запрос, OpenComponent — Открыть компонент (в настоящее время не поддерживается).
-
options:
ourl — Ссылка, которая открывается при нажатии на кнопку.
oopenMode — Режим отображения. Возможные значения: CurrentWindow — в текущем окне, NewWindow — в новом окне, ModalWindow — в модальном окне.
oparams (может содержать элемент http-запроса: headers, credentials, body и т.п. Наиболее распространенное значение:
▪method — API-метод (GET, POST).
oshowResponse — Отображение результата запроса. Возможные значения: true (отображать) / false (не отображать).
oisAvailable — Настройка доступа в формате: "(params, ctx) => params.id === 123 && ctx.userId === 11".
Пример:
[\ { "icon": "vh-tasks-add-24", "name": "Группы", "showInMenu": null, "showInActions": null, "type": "OpenUrl", "options": { "url": "/groups.aspx", "openMode": "ModalWindow" } }, { "icon": "vh-tasks-add-24", "name": "Получить настройки", "showInMenu": null, "showInActions": null, "type": "Request", "options": { "url": "/app-settings.json", "params": { "method": "GET" }, "showResponse": true } } По кнопке справа доступен пример JSON:
Пример отображения кнопок действий в пользовательском интерфейсе:
Общий вид¶
Во вкладке Общий вид отображается то, как будет выглядеть табличный вид по выбранному источнику данных в пользовательском интерфейсе.
Панель инструментов табличного вида:
| Кнопка | Описание |
|---|---|
|
ℹ️ В системе нельзя экспортировать более 50 000 задач!
После внесения изменений нажмите кнопку Сохранить.
Удаление настроек¶
Чтобы удалить источник данных, нажмите кнопку в конце соответствующей строки. Для подтверждения удаления нажмите Ок. Если действие было сделано ошибочно, нажмите Отмена.