Пользовательские действия

Напишите SQL для обновления записей в ваших базах данных.

Пользовательское действие

Создание пользовательского действия

Для создания действия вы должны находиться в группе с доступом к редактированию собственных запросов

Есть два способа создать пользовательское действие:

  1. Нажмите + Новый > Действие. При сохранении вашего действия вам будет предложено связать это действие с моделью. (ПРИМЕЧАНИЕ: опция Действие появится только в меню + Новый, если вы сначала создадите или получите доступ к модели в GlarusBI.)

  2. Через страницу сведений о модели: из модели нажмите на кнопку информация в верхнем правом углу. В верхнем правом углу боковой панели нажмите Сведения о модели > Действия > Новое действие.

В редакторе действий вы можете написать свой собственный код для создания действия, например, написать действие, которое обновляет только подмножество столбцов в таблице. См. Примеры действий.

Типы полей для переменных действий

Для каждой {% raw %}{{ переменной }}{% endraw %}, которую вы устанавливаете в действии, вам нужно установить тип поля.

Каждый из этих типов полей переменных предоставляет разные варианты. Нажмите на значок шестеренки, чтобы изменить опции.

Если переменная не требуется, вы можете опционально указать значение по умолчанию, которое GlarusBI будет использовать в случаях, когда люди не заполняют поле. В SQL-коде не забудьте заключить любые необязательные переменные и запятые в квадратные скобки, например: {% raw %}[[, column = {{ optional_variable }}]] {% endraw %}.

Вы можете включить текст-заполнитель для всех полей в форме действия.

Текст

  • Текст

  • Длинный текст

  • Выпадающий список

  • Встроенный выбор

Число

  • Число

  • Выпадающий список

  • Встроенный выбор

Дата

  • Дата

  • Дата + Время

Для обоих Выпадающий список и Встроенный выбор можно указать список вариантов, которые будут представлены в форме, с каждым вариантом на отдельной строке.

Выпадающий список

Внешний вид

Вкладка внешний вид в модальном окне редактора действий покажет предварительный просмотр элемента формы переменной. На изображении ниже мы нажали на шестеренку переменной и установили переменную для использования текста > выпадающий список. Раздел внешний вид дает предварительный просмотр того, как будет выглядеть элемент формы:

Внешний вид дает предварительный просмотр элемента формы

Настройки действия

На странице сведений о модели нажмите на меню из трех точек (…) рядом с действием. В редакторе действий нажмите на значок шестеренки, чтобы открыть настройки действия.

Сделать публичным

Создает общедоступную ссылку на форму действия. Любой, у кого есть доступ к этой ссылке, может заполнить форму и выполнить действие. Полезно для создания опросов.

Публичная форма действия

Установите сообщение об успешном выполнении

Здесь вы можете отредактировать сообщение об успешном выполнении, которое GlarusBI будет отображать во всплывающем уведомлении после того, как GlarusBI получит от базы данных подтверждение об успешном выполнении.

Если что-то пойдет не так, GlarusBI отобразит сообщение об ошибке, полученное от базы данных.

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

Пример действия UPDATE

Вы можете написать действие, которое обновит столбец plan для записи в таблице invoices в примере базы данных:

{% raw %}
UPDATE invoices
SET plan = {{ plan }}
   [[, payment = {{ payment }}]]
WHERE
   id = {{ id }}
{% endraw %}

Приведенный выше код создаст форму, которая предложит пользователям ввести обновленные значения для (обязательного) поля plan и, возможно, для поля payment для указанной записи с заданным ID.

Код в скобках [[ ]] делает оператор необязательным: оператор в скобках будет выполняться только если кто-то вставит значение в поле оплаты. Обратите внимание, что запятая, разделяющая операторы, находится внутри скобок.

Пример формы действия

Пример действия INSERT

Операторы вставки довольно просты:

{% raw %}
INSERT INTO invoices (
  account_id
  ,payment
  ,expected_invoice
  ,plan
  ,date_received
)
VALUES (
  {{ account_id }}
  ,{{ payment }}
  ,CAST ({{expected_invoice}} AS boolean)
  ,{{plan}}
  ,({{date_received}}
);
{% endraw %}

Оператор INSERT с необязательными полями

Однако, если вы хотите сделать поле необязательным в операторе INSERT, вам нужно немного изощриться. GlarusBI выполнит необязательный оператор, только если для переменной в этом необязательном операторе предоставлено значение, поэтому здесь используется комментарий SQL, чтобы добавить переменную в необязательный столбец.

{% raw %}
  [[,expected_invoice -- {{ expected_invoice}}]]
{% endraw %}

Полный оператор INSERT с необязательной переменной будет выглядеть так (обратите внимание, что необязательные предложения для переменной {% raw %}{{ expected_invoice }}{% endraw %} находятся как в списке столбцов, так и в списках значений):

{% raw %}
INSERT INTO invoices (
  account_id
  ,payment
  [[,expected_invoice -- {{expected_invoice}}]]
  ,plan
  ,date_received
)
VALUES (
  {{ account_id }}
  ,{{ payment }}
  [[,{{ expected_invoice }}]]
  ,{{ plan }}
  ,({{ date_received }}
);
{% endraw %}

Приведение типов значений полей в действиях

Если при отправке формы возникает ошибка типа, возможно, вам потребуется выполнить приведение типа данных в запросе, чтобы он соответствовал типу данных целевого поля в базе данных. Здесь мы приводим значение к типу boolean:

{% raw %}
UPDATE invoices
SET expected_invoice = CAST({{expected_invoice}} AS boolean)
WHERE id = {{id}};
{% endraw %}

Ссылка на сохраненные вопросы в действиях

Вы также можете ссылаться на сохраненные вопросы в действиях. Здесь мы берем результаты оператора SELECT для сохраненного вопроса (”Потенциальные клиенты”) и вставляем результаты в таблицу people_to_write.

{% raw %}
WITH prospects AS {{#6-potential-customers}}

INSERT INTO
  people_to_write (
  first_name
  ,last_name
  ,email
  )
SELECT
  first_name
  ,last_name
  ,email
FROM prospects;
{% endraw %}

Дополнительное чтение