Форма настройки etl-блока
Введение
В меню etl-блока на странице редактирования модели AW есть пункт "Настройка параметров".
При выборе этого пункта открывается правая панель с формой настройки etl-блока. На этой форме указываются значения параметров блока, необходимых для его работы в текущей модели.
Содержимое формы настройки блока строится по описанию параметров, указанных метаданных блока. В разделах ниже, показывается, как именно это происходит.
Параметры
Параметры, группы параметров и действия блока рисуются сверху вниз, заполняя форму по вертикали. Поле каждого параметра занимает всю ширину формы.

Метаданные блока с изображения
| {
"uid": "example_params",
"name": "Параметры блока",
"description": "Пример блока разными параметрами",
"author": "Analytic Workspace",
"version": "1.0",
"updated_at": "2020-01-01 00:00:00+00:00",
"params": [
{
"code": "param_string",
"name": "Параметр string",
"type": "string",
"mult": false,
"required": false
},
{
"code": "param_text",
"name": "Параметр text",
"type": "text",
"mult": false,
"required": false
},
{
"code": "param_date",
"name": "Параметр date",
"type": "date",
"mult": false,
"required": false
},
{
"code": "param_select",
"name": "Параметр select",
"type": "select",
"mult": false,
"required": false,
"domain": [
{"id": "1", "name": "Опция 1"},
{"id": "2", "name": "Опция 2"}
]
}
]
}
|
Внутригрупповые параметры
Параметры, объявленные внутри группы, рисуются "слева направо", заполняя текущую строку формы по горизонтали.

Метаданные блока с изображения
| {
"uid": "example_params",
"name": "Параметры блока",
"description": "Пример блока разными параметрами",
"author": "Analytic Workspace",
"version": "1.0",
"updated_at": "2020-01-01 00:00:00+00:00",
"params": [
{
"code": "group_1",
"name": "Группа",
"type": "group",
"mult": false,
"params": [
{
"code": "group_param_1",
"name": "Параметр 1",
"type": "string",
"mult": false,
"required": false
},
{
"code": "group_param_2",
"name": "Параметр 2",
"type": "string",
"mult": false,
"required": false
}
]
}
]
}
|
При нехватке места на одной строке формы, поля начинают переноситься на следующую.

Метаданные блока с изображения
| {
"uid": "example_params",
"name": "Параметры блока",
"description": "Пример блока разными параметрами",
"author": "Analytic Workspace",
"version": "1.0",
"updated_at": "2020-01-01 00:00:00+00:00",
"params": [
{
"code": "group_1",
"name": "Группа",
"type": "group",
"mult": false,
"params": [
{
"code": "group_param_1",
"name": "Параметр 1",
"type": "string",
"mult": false,
"required": false
},
{
"code": "group_param_2",
"name": "Параметр 2",
"type": "string",
"mult": false,
"required": false
},
{
"code": "group_param_3",
"name": "Параметр 3",
"type": "string",
"mult": false,
"required": false
}
]
}
]
}
|
Множественные параметры
Под полем ввода параметра с mult: true
появляется кнопка-ссылка "Добавить".

При нажатии на кнопку "Добавить" на форме появляется ещё одно поле для ввода следующего значения.

Метаданные блока с изображения
| {
"uid": "example_params",
"name": "Параметры блока",
"description": "Пример блока разными параметрами",
"author": "Analytic Workspace",
"version": "1.0",
"updated_at": "2020-01-01 00:00:00+00:00",
"params": [
{
"code": "param_1",
"name": "Множественный параметр",
"type": "string",
"mult": true,
"required": false
}
]
}
|
Множественные группы параметров
У группы параметров можно указать mult: true
, и в этом случае под полями параметров появится кнопка-ссылка "добавить"

При нажатии "Добавить" в группе появляется новая строка с параметрами.

Метаданные блока с изображения
| {
"uid": "example_params",
"name": "Параметры блока",
"description": "Пример блока разными параметрами",
"author": "Analytic Workspace",
"version": "1.0",
"updated_at": "2020-01-01 00:00:00+00:00",
"params": [{
"code": "group_1",
"name": "Группа",
"type": "group",
"mult": true,
"params": [
{
"code": "group_param_1",
"name": "Параметр 1",
"type": "string",
"mult": false,
"required": false
},
{
"code": "group_param_2",
"name": "Параметр 2",
"type": "string",
"mult": false,
"required": false
}
]
}]
}
|
По умолчанию, для заголовка группы и заголовка кнопки добавления используется одно и то же значение - атрибут name
в описании группы.
Чтобы сделать название кнопки более адекватным, в разделе extra
можно указать значение add_row_label
.

Метаданные блока с изображения
| {
"uid": "example_params",
"name": "Параметры блока",
"description": "Пример блока разными параметрами",
"author": "Analytic Workspace",
"version": "1.0",
"updated_at": "2020-01-01 00:00:00+00:00",
"params": [{
"code": "group_2",
"name": "Группа",
"type": "group",
"mult": true,
"extra": {
"add_row_label": "строку"
},
"params": [{
"code": "group_param_1",
"name": "Параметр 1",
"type": "string",
"mult": false,
"required": false
}, {
"code": "group_param_2",
"name": "Параметр 2",
"type": "string",
"mult": false,
"required": false
}]
}]
}
|
Действия
Действия отрисовываются аналогично параметрам, занимая очередную строку формы.

Метаданные блока с изображения
| {
"uid": "example_params",
"name": "Параметры блока",
"description": "Пример блока разными параметрами",
"author": "Analytic Workspace",
"version": "1.0",
"updated_at": "2020-01-01 00:00:00+00:00",
"params": [{
"code": "param_1",
"name": "Параметр 1",
"type": "string",
"required": false,
"mult": false
}, {
"code": "action_1",
"name": "Нажми меня",
"type": "action",
"action": "action_1"
}, {
"code": "param_2",
"name": "Параметр 2",
"type": "string",
"required": false,
"mult": false
}]
}
|
Внутригрупповые действия для множественных групп отображаются справа от кнопки "Добавить".

Метаданные блока с изображения
| {
"uid": "example_params",
"name": "Параметры блока",
"description": "Пример блока разными параметрами",
"author": "Analytic Workspace",
"version": "1.0",
"updated_at": "2020-01-01 00:00:00+00:00",
"params": [
{
"code": "group_1",
"name": "Группа",
"type": "group",
"mult": true,
"extra": {
"actions": [
{
"code": "group_action_1",
"name": "Заполнить автоматически",
"icon": "ic_etl_block_16"
}
]
},
"params": [
{
"code": "group_param_1",
"name": "Параметр 1",
"type": "string",
"mult": false,
"required": false
},
{
"code": "group_param_2",
"name": "Параметр 2",
"type": "string",
"mult": false,
"required": false
}
]
}
]
}
|
Со списком иконок для внутригрупповых действий можно ознакомиться здесь.
Условный показ полей
На форме настройки блока есть возможность условного показа полей для параметров, групп и действий.
Для этого, в атрибуте extra
параметра (группы, действия) предусмотрено значение visible_if
, в котором можно указать код поля и его значение, при котором поле будет отображаться на форме настройки блока.
Описание параметра, отображаемого по условию |
---|
| {
"code": "param_1",
"name": "Название параметра",
"description": "Видим, только если в поле select_1 выбрано значение 'x'",
"mult": false,
"required": false,
"extra": {
"visible_if": {"select_1": "x"}
}
}
|
Условие по нескольким полям
Можно задавать условие отображения параметра по нескольким полям.
| {
"code": "param_1",
"name": "Название параметра",
"mult": false,
"required": false,
"extra": {
"visible_if": {
"select_1": "x",
"select_2": "y"
}
}
}
|
Вот так поведение с условным отображением параметров видно в интерфейсе пользователя. В примере ниже
есть выпадающий список, при выборе разных значений в котором отображается свой набор полей.
Пользователь выбрал значение "В столбцы" и видит на форме одну группу и действие.
Пользователь изменил выбор на "В строки" и видит другой выпадающий список.

Метаданные блока с изображений
| {
"uid": "example_params",
"name": "Параметры блока",
"description": "Пример блока разными параметрами",
"author": "Analytic Workspace",
"version": "1.0",
"updated_at": "2020-01-01 00:00:00+00:00",
"params": [
{
"code": "transform_type",
"name": "Вид преобразования",
"type": "select",
"mult": false,
"required": false,
"domain": [
{"id": "to_columns", "name": "В столбцы"},
{"id": "to_rows", "name": "В строки"}
]
},
{
"code": "group_columns",
"name": "Столбцы",
"type": "group",
"mult": "true",
"extra": {
"visible_if": {"transform_type": "to_columns"},
"add_row_label": "столбец"
},
"params": [
{
"code": "column_name",
"name": "Название столбца",
"type": "string",
"mult": false,
"required": true
},
{
"code": "column_type",
"name": "Тип значения",
"type": "select",
"mult": "false",
"required": true,
"domain": [
{"id": "string", "name": "Строка"},
{"id": "number", "name": "Число"},
{"id": "date", "name": "Дата"}
]
}
]
},
{
"code": "action_autofill_columns",
"name": "Заполнить автоматически",
"type": "action",
"action": "action_autofill_columns",
"extra": {
"visible_if": {"transform_type": "to_columns"}
}
},
{
"code": "field_to_rows",
"name": "Поле для вывода в строки",
"type": "select",
"mult": false,
"required": false,
"domain": "child_fields",
"extra": {
"visible_if": {"transform_type": "to_rows"}
}
}
]
}
|
Внимание
Параметры, для которых настроен условный показ, не должны быть помечены как обязательные. Для
скрытых из-за условия extra.visible_if
полей ввода тоже срабатывают клиентские валидации.
Обрабатывайте ситуацию пустоты таких обязательных параметров в функциях модуля блока.