Перейти к содержанию

Смарт-выражения и смарт-фильтры

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

ℹ️ Смарт-фильтр — это смарт-выражение, которое ограничивает выборку. Оно строится таким образом, чтобы на выходе получалось логическое значение истина (true, 1), ложь (false, 0), или массив элементов

В настройках категории на странице Смарты вы можете посмотреть все настроенные в категории смарт-выражения и смарт-фильтры, а в разделе Общие смарты — глобальные смарт-выражения и смарт-фильтры.

Доступен в смарт-поиске

Для смарт-фильтров доступна опция Доступен в смарт-поиске: если она активна, то данный фильтр может быть использован в пользовательском интерфейсе в режиме smart-поиска (отбора), который включается в табличном представлении категории.

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

Как и обычные смарт-фильтры, фильтры для отбора должны возвращать значение true/false.

ℹ️ Недопустимо использование сортировки значений с помощью команды ORDER BY в скрипте отбора

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

Список фильтров, которые доступны в смарт-поиске:

Создание автоматизации без привязки к смарт-правилу

Вы можете создать смарт-выражение без привязки к смарт-событию и пакету действий по кнопке Создать. В открывшемся окне введите название выражения и выберите режим его редактирования.

Параметр Описание
Название Название смарт-выражения или смарт-фильтра
Режим редактирования Выбор режима редактирование: SMART или TSQL
Публичный Опция доступна только для смарт-фильтров. Видимость отбора в пользовательском интерфейсе. Если опция включена, отбор будет отображаться в списке доступных для всех пользователей. Если настройка отключена, то смарт-отбор будет доступен в интерфейсе только его владельцу. По умолчанию активна.
Описание Описание работы и назначения смарт-выражения или смарт-фильтра. Количество доступных для ввода символов — 300. После создания описание будет доступна для просмотра и редактирования во вкладке Описание редактора SMART- или TSQL-выражения
Отдаваемый результат Определяет тип данных, который должно возвращать выражение или фильтр.

ℹ️ Проверка на уникальность наименования выражения работает в рамках одной категории ℹ️ Обратите внимание: в интерфейсе отсутствует возможность конвертации из режима TSQL в SMART В их числе доступны: объекты (Entity.User, Entity.Task, Entity.File и др.), коллекции объектов (Collection\<Entity.User>, Collection\<Entity.Task> и др.), примитивные типы (Число, Строка, Дата и время, Логический (true/false)), специальные перечисления (Тип комментария, Связь с задачей, Таймзона, Метод HTTP-запроса и др.). При создании смарт-фильтра, когда используемое выражение обязано возвращать логический тип данных (boolean), система автоматически и всегда устанавливает отображаемый результат как "Логический (true/false)". Поле для выбора другого типа результата в этом случае становится недоступным. После создания информация об отдаваемом результате будет доступна для просмотра и редактирования во вкладке Описание редактора SMART- или TSQL-выражения. Отдаваемый результат "Логическое значние" недоступно для редактирования.

Блок "Описание" При тестировании выражений тип возвращаемого значения должен строго соответствовать выбранному в настройках. В случае несоответствия система отобразит ошибку: "Неправильный тип отдаваемого результата".

Ошибка неправильного типа отдаваемого результата После нажатия на кнопку Продолжить откроется интерфейс редактирования автоматизации в выбранном режиме.

Создание автоматизации с привязкой к смарт-правилу

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

Для создания и редактирования смарт-выражений открывается специальный интерфейс в отдельной вкладке браузера.

Правая часть редактора может работать в двух режимах: конструктора смарт-выражений или запросов TSQL. Из режима SMART доступна конвертация в режим TSQL по кнопке в панели инструментов. Обратная конвертация из TSQL в SMART не предусмотрена.

ℹ️ В SQL-режиме смарт-выражение может содержать отдельный PGSQL-вариант для PostgreSQL. Это используется для миграции и сопровождения одной и той же автоматизации на разных СУБД. При отсутствии PGSQL-варианта система использует TSQL-вариант. Подробнее — в редакторе смарт-выражения.

ℹ️ Возможность работать с SQL напрямую из интерфейса системы по умолчанию отключена. Чтобы кнопка Конвертировать в режим TSQL была доступна в интерфейсе администратора, в файле web.config (appsettings.json) должна быть отключена опция disableSQLShell. См. Руководство по техподдержке.

ℹ️ При переводе смарта в TSQL возможны ошибки, в этом случае необходимо ручное исправление кода

Работа со смарт-выражениями

Работа с TSQL-выражениями

Тестирование smart выражений

Вы можете массово протестировать все настроенные в категории выражения и все настроенные тестовые сценарии на наличие ошибок. Для этого над списком выражений нажмите кнопку Тест и выберите нужный вариант. Выбор одного из пунктов инициирует соответствующее тестирование.

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

Описание smart-выражений и фильтров в прежнем интерфейсе администрирования