Редактор TSQL-выражений¶
Если стандартных возможностей смарт не достаточно для создания нужного выражения, можно напрямую использовать возможности TSQL.
Редактор TSQL смартов учитывает контекстные параметры смарт-выражения и позволяет протестировать созданное выражение на существующих задачах.
Вы можете напрямую отредактировать текст запроса. Для этого в окне редактирования переключитесь в режим TSQL.
ℹ️ Возможность обратной конвертации из режима TSQL в SMART отсутствует
ℹ️ Сначала выполните тестирование, чтобы код конвертировался в TSQL. Иначе, после конвертирования, редактор кода будет пустым
ℹ️ Возможность работать с SQL напрямую из интерфейса системы по умолчанию отключена. Чтобы кнопка Конвертировать в режим TSQL была доступна в интерфейсе администратора, в файле web.config (appsettings.json) должна быть отключена опция disableSQLShell. См. Руководство по техподдержке.
При внесении изменений в код слева от кнопки Сохранить появляется текст "Отредактировано" до сохранения изменений.
Действия с выражением¶
По кнопке с изображением многоточия открывается список доступных действий со смарт-выражением.
| Действие | Описание |
|---|---|
| Настройки | Окно настроек TSQL-выражения |
| Название | Смена названия TSQL-выражения |
| Доступен в смарт-поиске | Фильтры поддерживают опцию Доступен в смарт-поиске, позволяющую добавить фильтр в число отборов. Чтобы пользователи могли быстро отбирать в категориях задачи по нескольким сложным условиям, удобно использовать готовые, заранее настроенные TSQL-фильтры. Отбор с помощью фильтров позволяет реализовывать сложные условия, в том числе проверять задачи из других категорий. Как и обычные смарт-фильтры, фильтры для отбора должны возвращать значение true/false. Недопустимо использование сортировки с помощью ORDER BY в скрипте отбора. В настройках Смарт все настроенные отборы находятся во вкладке Доступен в смарт-поиске. |
| Модуль | Выбор модуля, к которому относится TSQL-выражение. Если модуль не выбран, выражение находится в глобальном модуле. При создании смартов в категории они автоматически получают привязку к тому же модулю, что и сама категория. |
| Дублировать | При выборе пункта откроется окно редактирования копии текущего смарт-выражения. Для создания дубля название выражения должно быть непустой строкой не более 500 символов. |
| Удалить | Удаление TSQL-выражения. Запрещено удаление выражения, которое используется в пакете действий. Действие станет доступным после удаления пакета действий или смены выражения в пакете на другое. |
IntelliSense
Функция IntelliSense помогает ускорить процесс написания запросов, предоставляя подсказки, автозаполнение, и дополнительную информацию.
Начните вводить название категории и система предложит вам доступные варианты:
Справа от названия выделенного объекта в списке отображается кнопка информации — нажатие на нее отображает название категории с указанием ее ID.
Используйте стрелки вверх/вниз, чтобы выбрать нужный вариант из списка. Выберите вариант кликом мыши или нажмите Enter, чтобы вставить выбранный вариант в запрос.
Добавление точки после названия категории автоматически раскроет список всех доступных параметров в ней.
Справа от названия дополнительного параметра в списке отображается кнопка информации — нажатие на нее отображает название параметра с указанием его ID. Кнопка информации не отображается для системных параметров.
Используйте стрелки вверх/вниз, чтобы выбрать нужный параметр из списка, для добавления параметра в запрос выберите вариант кликом мыши или нажмите Enter.
Пример написания запроса:
ℹ️ Функция Intellisense учитывает особенности синтаксиса PostgreSQL
История версий¶
История версий позволяет администраторам отслеживать изменения в коде и восстанавливать предыдущие версии по необходимости. История доступна по кнопке Просмотр версий в панели инструментов редактора.
Версии создаются при каждом сохранении изменений. Если код еще не редактировался, на экране будет написано "Нет истории версий".
Если в код ранее были внесены изменения, то при переходе в историю открывается список версий с указанием пользователя и времени изменения.
Если вы решили восстановить выбранную неактуальную версию, нажмите на кнопку Восстановить версию. Эта кнопка станет доступной, когда вы выберете версию, отличную от текущей.
После того как вы закончили просмотр и восстановление версий, вы можете закрыть интерфейс истории версий, вернувшись к редактированию скрипта по кнопке Выйти из просмотра.
Тестирование¶
Созданное выражение или фильтр можно протестировать на существующих задачах.
Быстрое тестирование¶
Во вкладке Быстрое тестирование вы можете быстро проверить созданное выражение, для этого введите контекстные параметры и нажмите кнопку Тест.
Заполнение контекстных параметров не является обязательным условием для осуществления тестирования. В случае, если контекстные параметры требуются для выполнения выражения и вы не ввели их значения, в блоке Сообщение будет выведена надпись: "Тест выполнен без обязательного параметра" с перечислением нужных параметров события.
Сценарии тестирования¶
Во вкладке Сценарии тестирования вы можете создать свой сценарий или выбрать из добавленных ранее кейсов.
При выборе значения из выпадающего списка в поле Сценарий настроенные для данного выражения контекстные параметры заполняются автоматически. По кнопке действий вы можете отредактировать название сценария или удалить его.
Создать новый сценарий можно по кнопке — в открывшемся окне введите название нового сценария, после его создания заполните параметры и нажмите на кнопку Создать сценарий.
Для выполнения сценария нажмите на кнопку Тест.
Для отмены выбора сценария с очисткой контекстных параметров в поле Сценарий нажмите на крестик.
Выполнение фрагмента кода¶
В редакторе поддерживается возможность выполнения выделенного фрагмента кода. Для этого нужно выделить нужную часть выражения и нажать кнопку Тест. При выполнении учитываются значения контекстных параметров.
При выделении части кода в блоке тестирования появляется индикатор "Выполнение фрагмента", который сигнализирует о том, что при тестировании будет выполнен не весь заданный код, а только его часть.
Результат тестирования¶
Результат выполнения смарт-выражения отображается в специальном блоке в нижней части экрана. Блок содержит две вкладки: TSQL-скрипт и сообщение с результатом. Если смарт-выражение является фильтром, в окне результатов будет отображаться "Смарт фильтр вернул значение: true/false". Если смарт-выражение не является фильтром, в окне результатов будет отображаться таблица возвращаемых запросом данных. По кнопке результат можно скопировать в буфер обмена. Вы можете закрыть вкладку нажатием на крестик слева от ее названия или скрыть блок целиком по кнопке Очистить результаты в блоке Тестирование.
При тестировании автоматизации в блоке результата отображается время выполнения запроса в миллисекундах. Индикаторы рядом с временем классифицируют скорость выполнения:
-
Зеленый индикатор сигнализирует о нормальном значении времени выполнения: до 50 миллисекунд.
-
Желтый индикатор указывает на среднее значение: от 50 до 200 миллисекунд.
-
Красный индикатор сигнализирует о большом значении времени выполнения: от 200 миллисекунд и более.
В случае timeout отображается текст "Время ожидания ответа истекло".
Строка подключения (ConnectionString)¶
По умолчанию для выполнения SQL запросов в качестве строки подключения (ConnectionString) используется "TCConnectionString".
В системе есть возможность указать отдельную учетную запись для выполнения TSQL-выражений. В системном файле приложения appsettings.json / web.config для этого предназначен ключ SmartConnectionString. Если значение указано в ключе, то TSQL-выражения будут выполняться под заданной строкой подключения.
Описание редактора TSQL в прежнем интерфейсе администрирования Полезные ссылки