Введение в действия¶
Предупреждение
На данный момент действия доступны только для PostgreSQL и MySQL.

Что такое действия?¶
Действия — это сущности в Glarus BI, которые позволяют создавать пользовательские формы и бизнес-логику.
Действия позволяют писать параметризованный SQL, который записывает изменения обратно в вашу базу данных. Действия можно привязывать к кнопкам на дашбордах, чтобы создавать пользовательские сценарии. Также можно сделать формы, которые генерируют действия, общедоступными и собирать данные через эти формы.
С помощью действий можно:
- отметить клиента на дашборде, как VIP;
- позволить членам команды удалять избыточные данные;
- создать форму обратной связи с клиентами и встроить её на ваш сайт.
Действия нужно добавлять к модели, но выполняются они только над исходными таблицами, на которых основаны эти модели (то есть действия никогда не редактируют определение модели).
Включение действий для базы данных¶
Чтобы действия работали, вам нужно сделать две вещи:
- Включить действия моделей для подключения к базе данных. Чтобы включить действия для подключения к базе данных, администратору нужно нажать на значок шестерёнки в правом верхнем углу и перейти в Управление > Базы данных, затем выбрать подключение к базе данных, через которое вы хотите создать действия и перейти к настройкам подключения. Справа в форме настроек подключения включите опцию Действия моделей. Чтобы действия работали, учётная запись базы данных (которую вы используете для подключения) должна иметь права на запись. На данный момент действия поддерживаются только для баз данных PostgreSQL и MySQL.
- Создать хотя бы одну модель из этой базы данных. Действия связаны с моделями, поэтому перед тем как создавать действия, вам нужно создать (или иметь доступ) хотя бы к одной модели.
Кто может использовать действия¶
- Чтобы создать или редактировать действие, пользователь должен состоять в группе, у которой есть права на редактирование прямых запросов для соответствующей базы данных.
- Чтобы выполнить действие, достаточно иметь доступ на просмотр модели действия или дашборда (или ссылку на общедоступное действие).
Типы действий¶
Есть два типа действий:
Запуск действий¶
Есть несколько способов запуска действий:
- Со страницы сведений о модели — нажатием кнопки Запустить.
- Из общедоступной формы действия.
- Из кнопки на дашборде.
Действия меняют данные в таблицах, а это влияет на модели¶
Важно уточнить: действия, хотя и добавляются к моделям, вносят изменения в исходную таблицу, по которой строится запрос модели. Это значит, что любой, у кого есть доступ к исходной таблице или к запросам, а также другим моделям, основанным на этой таблице, сможет увидеть эффект выполнения действия. Другие инструменты, подключённые к этой базе данных, также получат эти изменения.
В этом смысле модели — это «контейнеры» для действий; модели — это способ организовать действия. Теоретически вы могли бы добавить пользовательское действие к модели, которое выполняет обновление, не связанное с данными этой модели. Например, написать пользовательское действие, которое обновляет таблицу Accounts, и добавить это действие к модели, которая делает запрос к другой таблице (например, Orders). Но, пожалуй, лучше так не делать (если только у вас нет действительно веской причины). Базовые действия, впрочем, доступны только для моделей, которые оборачивают одну исходную таблицу.
Перед тем как использовать действия в промышленной эксплуатации, поэкспериментируйте с ними на тестовых данных (например, в Sample Database, которая поставляется вместе с Glarus BI), чтобы понять, как они работают.
Особенности действий¶
- Если для соответствующей таблицы или модели включено кэширование, вы можете не увидеть эффект действия в Glarus BI до тех пор, пока Glarus BI не обновит данные (хотя вы всегда можете вручную обновить данные).
- Если вы создаёте записи в таблице, у которой нет автоматически генерируемого первичного ключа, вам нужно будет ввести доступный ID (то есть ID, который ещё не используется другой записью).
- Действия нельзя «откатить». Однако вы можете создать и выполнить действие, которое воссоздаст удалённую запись или вернёт изменённую запись к исходным значениям (если вы знаете исходные значения).
- Действия недоступны для общедоступных дашбордов, а также для дашбордов в подписанном встраивании.