Смарт-выражения и смарт-фильтры¶
ℹ️ Смарт-выражения представляют собой 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 возможны ошибки, в этом случае необходимо ручное исправление кода
Тестирование smart выражений
Вы можете массово протестировать все настроенные в категории выражения и все настроенные тестовые сценарии на наличие ошибок. Для этого над списком выражений нажмите кнопку Тест и выберите нужный вариант. Выбор одного из пунктов инициирует соответствующее тестирование.
По завершении тестирования появится модальное окно с результатом тестирования смартов, которое содержит информацию о количестве успешно обработанных выражений, возникших ошибках и некорректно настроенных тестовых сценариях. Ниже доступен список ошибок с ссылками на соответствующие смарты. Кликнув по ссылке с номером смарта, вы сможете открыть редактор смарт-выражения для внесения необходимых правок.
Описание smart-выражений и фильтров в прежнем интерфейсе администрирования