Запуск скрипта из дашборда
В рамках работы с одним пространством есть возможность не переходить от дашборда к скриптам, а запустить скрипт с помощью настроенного действия из виджета Таблица.
Примеры использования:
- Добавить, удалить или обновить строки таблицы
- Совершить действие в другой системе:
- Создать задачу
- Повысить приоритет задачи
- Отправить сообщение
Настройка скрипта
Для запуска скрипта из дашборда необходимо создать скрипт, который можно будет использовать для настройки действия в виджете Таблица. Для этого:
- Создайте новый скрипт в Панели данных пространства.
- Первым блоком (триггером) обязательно должен быть Ручной запуск. Для запуска действия можно использовать скрипт только с этим триггером.
- Настройте ожидаемые поля, они будут заполняться пользователем или автоматически во время запуска действия из виджета. В параметрах блока:
- Укажите название поля
- Выберите тип данных (текст, число, дата или дата и время)
- Если будет приниматься ряд данных, поставьте галочку рядом с полем Массив
- Можно сделать поле обязательным для заполнения переключателем Обязательное поле
- При нажатии Продолжить открывается модальное окно с созданными полями. Заполните их и нажмите Выполнить. Блок протестируется и в левой панели отобразятся дата и время выполнения, а также введенные в полях значения.
- Добавьте блок, например, для удаления или обновления строки таблицы.
- Выберите таблицу, в которую будут вноситься изменения, и с помощью маппинга соотнесите поля.
- Протестируйте блок и опубликуйте скрипт.
Если скрипт не опубликован, он не отобразится при настройке кнопки в виджете Таблица.
Добавление действия в Таблицу
Действия запускаются в режиме просмотра с помощью настроенных кнопок над Таблицей. Сначала необходимо добавить кнопку, затем — действия для неё.
Создайте или выберите Таблицу, для которой необходимо настроить действие. Откройте вкладку Действия в правой панели и нажмите + Кнопка.
После нажатия появляются параметры для настройки кнопки. Они аналогичны тем, что используются в виджете Кнопка.
Настройка действия
Чтобы настроить действие:
- В параметрах кнопки кликните по полю Действие по клику.
- Нажмите + Действие.
- Выберите скрипт, который будет запускаться при нажатии на кнопку в режиме просмотра.
Параметры настройки действия
- Название — отображается на кнопке
- Описание — используется в качестве подсказки на этапе запуска скрипта
- Выполнить скрипт — в раскрывающемся списке отображаются только скрипты, которые возвращают данные
- Параметры — настраиваются для каждого поля из скрипта отдельно. Доступна смена названия и обязательная настройка способа ввода
- Подсказка — текст, который появляется при наведении на кнопку в режиме просмотра. Максимальная длина — 160 символов
- Активация кнопки — это возможность добавить условие, при выполнении которого кнопка в режиме просмотра становится доступной для нажатия. Указать условие для активации можно по формуле или по переменной. При выборе активации по переменной, доступны только переменные типа Статический список. Если установленное в условии значение не соответствует текущему значению переменной, то в режиме просмотра кнопка запуска действия не активна. Дополнительно можно выбрать тип кнопки: основная, второстепенная или ссылка. Также можно настроить базовый цвет обводки кнопки и текста в ней
- Скрывать неактивную кнопку. Доступно для виджета Кнопка
- Автообновление — срабатывает после выполнения скрипта. Можно обновить данные в виджете, из которого запускался скрипт, во всех виджетах и плейсхолдерах образа или отключить параметр
При настройке условия активации действия через формулу, основанную на данных из связанной таблицы в модели данных, данные в виджете с действием могут отфильтроваться. Будут отображаться только те строки, для которых есть данные в связанной таблице. Только таким образом условие активации может быть гарантировано проверено на существующих данных.
Поведение в режиме просмотра
Если для кнопки задано одно действие, то она становится доступной когда:
- Настроены обязательные параметры
- Выбраны строки Таблицы в режиме просмотре (если необходимо)
- Сработало условие активации
При нажатии на кнопку с одним действием оно запускается сразу или появляется модальное окно настройки параметров.
Если для кнопки задано более одного действия, она становится доступной сразу. При нажатии на кнопку появляется раскрывающийся список с действиями. Пункты списка с ненастроенными действиями недоступны для выбора.
Если размер Таблицы небольшой, кнопки над ней могут скрываться в одну кнопку контекстного меню.
Принцип отображения подсказок:
- Если задана подсказка для кнопки или действия, то при наведении отображается этот текст
- Если заданы подсказки и для кнопки, и для действия, то при наведении отображается подсказка для кнопки
Настройка способа ввода
- Для каждого действия дополнительно отображаются названия параметра в скрипте и тип.
- Порядок параметров можно изменять. Для этого нажмите и удерживайте параметр, перемещая его в нужное место. Изменение также отобразится в форме запуска действия.
Из колонки
В параметр скрипта будет передаваться значение из таблицы, выбранное в списке.
Из переменной
Указывается системная переменная или переменная дашборда (статический или динамический список). Для данного способа переменную необходимо вывести в виджет Параметр. В скрипт передается значение по умолчанию или выбранное в Параметре. При запуске действия выбрать значение невозможно.
Из модели данных
Позволяет использовать в качестве списка значений для параметра список таблиц из модели данных или список колонок. Выбор происходит в модальном окне запуска действия в режиме просмотра.
Список таблиц — это основной параметр, а Список колонок — зависимый. Чтобы использовать в способе ввода Список колонок, сначала необходимо настроить параметр, для которого будет использоваться Список таблиц.
После этого при настройке Списка колонок понадобится задать значение для Связанного параметра, в котором выбирается таблица для отображения колонок. В раскрывающемся списке значений отображаются только те параметры, для которых используется Список таблиц.
В режиме просмотра поле параметра, для которого используется Список колонок, становится активным после выбора таблицы в основном параметре.
Если ожидаемое поле в скрипте — массив, то при использовании способа ввода Из модели данных для параметра со списком таблиц доступен выбор только одной таблицы. При этом для параметра со списком колонок можно выбрать несколько значений.
Если в основном параметре изменить способ ввода, выбрать вариант Список колонок или удалить параметр, то в зависимый параметр перестает быть сконфигурированным.
Задать формулой
С помощью формулы можно настроить динамически изменяемый параметр. При использовании переключателя Учитывать фильтры к значениям в списке применяются фильтры, установленные в режиме просмотра. Также параметр можно скрыть.
Задать агрегацией
С помощью формулы можно передавать результат агрегации в ожидаемое поле скрипта. Результат агрегации должен совпадать с типом ожидаемого поля. В режиме просмотра при выполнении действия поле с этим способом ввода заполняется значением из формулы поля. При выполнении скрипта значение функции передается в ожидаемое поле скрипта. Если ожидаемое поле — массив, то функция должна возвращать массив.
При использовании Фильтра по строкам значение рассчитывается с учетом выбранных строк.
Ввести вручную
При запуске действия данные вводятся вручную в поле Значение по умолчанию. Также в настройках параметра можно:
- Указать описание
- Включить фильтр по строкам
- Настроить пользовательскую валидацию
- Скрыть параметр (не будет отображаться в окне запуска действия)
Статический список
Создается статический список, при запуске пользователь выбирает значение из списка в окне запуска скрипта. Создать список можно с помощью YAML. В поле Значение по умолчанию можно ввести или выбрать одно или несколько значений.
Динамический список
Создается динамический список, при запуске пользователь выбирает значение из списка в окне запуска скрипта. В дополнение к списку можно настроить:
- Отображаемый список
- Значение по умолчанию
- Фильтр по строкам
- Предустановленные фильтры (кнопка + Фильтр)
- Переключатели:
- Скрыть параметр — параметр не будет отображаться в окне запуска действия
- Ввод любых значений — в режиме просмотра в параметр можно вводить и отправлять одно значение, которого нет в динамическом списке. Если ожидаемое поле в скрипте — массив, то переключатель скрыт
- Валидация — доступно, если активен переключатель Ввод любых значений
- Учитывать фильтры — в параметр передаются данные с учетом фильтров, назначенных в режиме просмотра
Запуск действия
После настройки действия над таблицей появляется кнопка. Она становится активной в режиме просмотра.
Когда все необходимые параметры заданы, опубликуйте дашборд.
Чтобы запустить действие, нажмите на кнопку. Если выбран способ ввода Из колонки или Задать формулой, кнопка неактивна до тех пор, пока не выбраны строки. Чтобы выбрать отдельные строки, отметьте их галочкой. Если отметить галочкой заголовок столбца, выберутся все строки.
Выделение строк сохраняется для каждой страницы отдельно. Если применить фильтрацию или сортировку на колонки таблицы, выделение строк сбрасывается.
Если вы нажали кнопку запуска скрипта по ошибке, запустите другой скрипт во время отображения анимации загрузки запуска. В этом случае окно запуска первого скрипта не открывается.
Откроется окно запуска скрипта. Заполните обязательные поля и другие, если необходимо. Чтобы запустить скрипт, нажмите Выполнить или Enter. Для отмены нажмите иконку крестика в правом верхнем углу окна.
Если поле не обязательно для заполнения, но значение для него уже выбрано, его можно сбросить, нажав на иконку крестика. Иконка появляется в правой стороне поля при наведении на него курсора мыши.
- Если в блоке Ручной запуск изменились ожидаемые поля, то в настройках действия с этим скриптом в виджете название ожидаемого поля изменится, но настройки способа ввода останутся прежними.
- Действие применяется только к первой 1 000 выбранных строк.
- Запуск скрипта доступен пользователям с доступом на чтение и/или редактирование пространства и дашборда.
Действие невозможно запустить, когда:
- Используемый скрипт удален
- В используемом скрипте блок-триггер Ручной запуск заменен на другой
- Из модели данных удалена используемая таблица
- Используется пустое значение колонки из другой связанной таблицы. Необходимо изменить ее свойство на Nullable
Когда скрипт запускается, в правом нижнем углу отображается сообщение Действие «Название действия» запущено. Если скрипт успешно завершает работу, в правом нижнем углу появляется сообщение Действие выполнено. Если скрипт не был выполнен успешно, отображается сообщение об ошибке. В зависимости от причины возникновения ошибки вы можете перейти в журнал выполнений, перезапустить скрипт или закрыть окно.
Примеры запуска скриптов из дашборда
Чтобы выполнить какое-либо действие, необходимо создать скрипт.
Добавить строку
Чтобы добавить строку в таблицу:
- Создайте новый скрипт в дашборде.
- Добавьте блок Ручной запуск. В блок добавьте ожидаемые поля, укажите необходимые типы данных и нажмите Продолжить. Используйте названия колонок таблиц из модели данных. Протестируйте блок.
- Добавьте блок Добавить строки. В блоке выберите необходимую таблицу, а в колонках — указанные в первом блоке ожидаемые поля. Для удобства используйте визуальный маппинг. Протестируйте блок.
- Опубликуйте скрипт.
- Откройте дашборд с необходимой таблицей. Добавьте действие во вкладке Действия и укажите для него название. В параметрах каждого поля укажите необходимый способ ввода и колонку. Чтобы результат выполнения отобразился после выполнения скрипта, установите для параметра Обновить после выполнения скрипта значение Этот виджет.
- Опубликуйте дашборд. В верху таблицы нажмите Добавить строку. Укажите необходимые параметры и нажмите Выполнить.
- Строка добавлена.
Удалить строки
Чтобы удалить строки из таблицы:
- Создайте новый скрипт в дашборде.
- Добавьте блок Ручной запуск. В блок добавьте ожидаемое поле, укажите необходимый тип данных и нажмите Продолжить. Используйте название колонки таблицы из модели данных. Протестируйте блок.
- Добавьте блок SQL-запрос с запросом на удаление строки. Протестируйте блок.
Пример SQL-запроса для удаления строки:
DELETE FROM case_table WHERE incident_id = ${a1.Номер проблемы}; - Опубликуйте скрипт.
- Откройте дашборд с необходимой таблицей. Добавьте действие во вкладке Действия и укажите для него название. В параметрах поля укажите способ ввода Из колонки. Выберите ту же колонку, что и указана в SQL-запросе скрипта. Чтобы результат выполнения отобразился после выполнения скрипта, установите для параметра Обновить после выполнения скрипта значение Этот виджет.
- Опубликуйте дашборд. Выберите строки, которые хотите удалить и нажмите Удалить строки над таблицей. Нажмите Выполнить.
- Строки удалены.
Изменить приоритет
Чтобы изменить приоритет:
- Создайте новый скрипт в дашборде.
- Добавьте блок Ручной запуск. В блок добавьте ожидаемые поля, укажите необходимые типы данных и нажмите Продолжить. Протестируйте блок.
- Добавьте блок Обновить строки. В блоке укажите необходимую таблицу, колонку-ключ и значение ключа, а в колонках — приоритет. Для удобства можно использовать визуальный маппинг. Протестируйте блок.
- Опубликуйте скрипт.
- Откройте дашборд с необходимой таблицей. Добавьте действие во вкладке Действия и укажите для него название. В параметрах каждого поля укажите необходимый способ ввода и колонку. Чтобы результат выполнения отобразился после выполнения скрипта, установите для параметра Обновить после выполнения скрипта значение Этот виджет.
- Опубликуйте дашборд. Выберите строки, для которых хотите изменить приоритет. В верху таблицы нажмите Изменить приоритет. Введите или выберите необходимое значение и нажмите Выполнить.
- У выбранных задач изменился приоритет.
Пользовательская валидация
С помощью пользовательской валидации можно задавать собственные условия, которым должны соответствовать значения в полях ввода при запуске скрипта. Например, можно задать условие, при котором в поле должно быть определенное количество символов или настроить зависимость значения одного параметра от другого и т. д. Рассмотрим, как работает валидация, на примере, когда действительными значениями считаются только целые числа.
- В образ добавлена таблица с колонками Товар, Оригинальная цена и Комментарий. Настроим для таблицы действие, при котором сможем добавлять новые строки.
- Создадим в пространстве новый скрипт (в этом примере он называется Новая строка). В качестве первого блока выберем Ручной запуск. Добавим ожидаемые поля Товар, Цена единицы и Комментарий. Протестируем блок.
- Добавим в скрипт блок Добавить строки. Выберем таблицу с необходимыми данными и укажем для колонок ожидаемые поля.
- Опубликуем скрипт и вернемся в образ. Выберем таблицу и добавим новое действие. Укажем созданный ранее скрипт.
- Перейдем к настройке параметров. Для всех параметров необходимо выбрать способ ввода Ввести вручную.
- Для параметра Цена единицы укажем в поле Валидация формулу:
В этой формуле используется синтаксис ClickHouse. Если в поле Цена единицы будут указаны любые значения, кроме цифр от 0 до 9, то под полем появится сообщение об ошибке Значение должно быть целым числом.
if(NOT match($$"Цена единицы", '[0-9]'), 'Значение должно быть целым числом', null) - Нажмем Опубликовать и протестируем работу скрипта. Нажмем на кнопку Новая строка над таблицей. В появившемся модальном окне заполним поля данными. Если указать в поле Цена единицы некорректное значение, то появляется сообщение об ошибке. Кнопка Выполнить останется недоступной до тех пор, пока данные в полях не будут исправлены.
Настройки скрипта и действия в YAML
Для настройки требуется блок actionButtons. В таблицах ниже представлены ключи, которые используются в блоке.
| Ключ | Тип | Определение |
|---|---|---|
| name | string | Название кнопки |
| onClick | — | Действие по клику |
| hint | string | Подсказка для кнопки |
Действия по клику (блок onClick)
В блоке onClick используются ключи из таблицы ниже.
| Ключ | Тип | Определение |
|---|---|---|
| type | enum | Тип действия по клику. Доступен только тип EXECUTE_SCRIPT |
| name | string | Название действия |
| scriptKey | string | Ключ скрипта |
| parameters | — | Параметры скрипта (необязательный ключ) |
| autoUpdate | enum | Автообновление: - NONE — нет- THIS_WIDGET — этот виджет- ALL_WIDGETS — все виджеты |
| description | string | Описание (необязательный ключ) |
| buttonType | enum | Тип кнопки: - primary — основная- primary-outlined — второстепенная - link — ссылка |
| color | string | Цвет текста кнопки |
| backgroundColor | string | Цвет фона кнопки |
| borderColor | string | Цвет обводки второстепенной кнопки |
| activateCondition | — | Активация кнопки |
Настройки параметров (блок parameters)
В блоке parameters указываются параметры скрипта.
| Ключ | Тип | Определение |
|---|---|---|
| name | string | Название параметра в скрипте |
| displayName | string | Отображаемое название |
| inputMethod | enum | Способ ввода значения переменной |
| isHidden | boolean | Скрыть параметр |
| dbDataType | enum | Тип данных колонки таблицы из Модели данных |
| hideInactiveButton | boolean | Скрывать неактивную кнопку |
Настройки цветов кнопки (блоки backgroundColor, borderColor и color)
При настройке блоков backgroundColor, color или borderColor используйте ключи, описанные в таблице ниже.
| Ключ | Тип | Определение |
|---|---|---|
| mode | enum | Режим окрашивания: - AUTO — авто - BASE — базовый |
| value | string | HEX-код цвета (указывается в двойных кавычках) |
Условие активации кнопки (блок activateCondition)
В блоке activateCondition указываются условия активации кнопки.
| Ключ | Тип | Определение |
|---|---|---|
| mode | enum | Режим активации: - VARIABLE — по переменной - FORMULA — по формуле |
| variableName | string | Только для режима VARIABLEНазвание переменной (указывается в кавычках "") |
| variableValue | string | Только для режима VARIABLEЗначение переменной (указывается в кавычках "") |
| formula | string | Только для режима FORMULAФормула (указывается в кавычках "") |
Способ ввода (ключ inputMethod)
Доступны перечисленные способы ввода значения:
COLUMN— из колонкиVARIABLE— из переменнойDATA_MODEL— из модели данныхFORMULA— задать формулойAGGREGATION— задать агрегациейMANUALLY— ввести вручнуюSTATIC_LIST— статический списокDYNAMIC_LIST— динамический список
Настройки для способа ввода Из колонки (COLUMN):
| Ключ | Тип | Определение |
|---|---|---|
| tableName | string | Название таблицы |
| columnName | string | Название колонки из таблицы, указанной в ключе tableName |
Настройки для способа ввода Из переменной (VARIABLE):
| Ключ | Тип | Определение |
|---|---|---|
| sourceVariable | string | Название переменной |
Настройки для способа ввода Из модели данных (DATA_MODEL):
| Ключ | Тип | Определение |
|---|---|---|
| option | enum | Вариант использования: - TABLE_LIST — список таблиц- COLUMN_LIST — список колонок |
| parent | string | Название основного параметра, в котором используется вариант TABLE_LIST. Только для варианта COLUMN_LIST |
Настройки для способа ввода Задать формулой (FORMULA):
| Ключ | Тип | Определение |
|---|---|---|
| formula | string | Формула |
| filterByRows | boolean | Расчет формулы с учетом фильтра по выбранным строкам |
Настройки для способа ввода Задать агрегацией (AGGREGATION):
| Ключ | Тип | Определение |
|---|---|---|
| formula | string | Формула с возможностью использовать агрегатные функции |
| filterByRows | boolean | Расчет формулы с учетом фильтра по выбранным строкам |
Настройки для способа ввода Ввести вручную (MANUALLY):
| Ключ | Тип | Определение |
|---|---|---|
| defaultValue | string | Значение по умолчанию |
| filterByRows | boolean | Расчет формулы с учетом фильтра по выбранным строкам |
| validation | string | Валидация |
| description | string | Описание поля |
Настройки для способа ввода Статический список (STATIC_LIST):
| Ключ | Тип | Определение |
|---|---|---|
| options | string | Список значений |
| defaultOptionIndex | number[] | Значение по умолчанию |
Настройки для способа ввода Динамический список (DYNAMIC_LIST):
| Ключ | Тип | Определение |
|---|---|---|
| options | string | Список (задается по формуле) |
| displayOptions | string | Отображаемый список (задается по формуле) |
| insertAnyValues | boolean | Переключатель Ввод любых значений. В режиме просмотра в параметр можно вводить и отправлять одно значение, которого нет в динамическом списке |
| validation | string | Валидация (только используется insertAnyValues) |
| defaultValue | string | Значение по умолчанию. Задается по формуле |
| filterByRows | boolean | Расчет формулы с учетом фильтра по выбранным строкам |
| filters | — | Предустановленные фильтры (необязательный ключ) |
| considerFilters | boolean | Учитывать фильтры из режима просмотра |
Пример использования блока actionButtons
widgets:
- key: table (1)
apiVersion: "17"
type: TABLE
settings:
actionButtons:
- name: Строки
onClick:
- type: EXECUTE_SCRIPT
name: Добавить строки
scriptKey: bf29c4de-8349-4e59-9e1b-f33c40bb1814
parameters:
- name: Товар
inputMethod: COLUMN
columnName: Товар
tableName: product_new
displayName: ""
isHidden: false
dbDataType: String
- name: Цена единицы
inputMethod: COLUMN
columnName: Цена единицы
tableName: product_new
displayName: ""
isHidden: false
dbDataType: Float64
- name: Комментарий
inputMethod: COLUMN
columnName: Комментарий
tableName: product_new
displayName: ""
isHidden: false
dbDataType: String
autoUpdate: THIS_WIDGET
description: ""
activateCondition:
formula: ""
mode: FORMULA
buttonType: primary
color:
mode: AUTO
backgroundColor:
mode: AUTO
Была ли статья полезна?