Интерфейс редактора представляет собой дерево сущностей, поле для формирования смарт-выражения, меню встроенных функций и операторов и блок для тестирования выражения.
Интерфейс редактирования смарт-выражения
Чтобы добавить в смарт-выражение функцию или оператор, выберите его мышью в меню и затем заполните атрибуты. Чтобы вставить в строку параметр или объект из дерева сущностей, щелкните по нему мышью. Если вы предварительно выделите атрибут в строке, то введенный параметр заменит этот атрибут:
Редактирование параметра функции
Чтобы удалить функцию из смарт-выражения, щелкните левой кнопкой мыши по названию и выберите Удалить в появившемся контекстном меню:
Удаление функции
Дерево сущностей
В левой части окна редактирования смарт-выражения расположено дерево сущностей: в нем представлены параметры и объекты "Первой Формы", которые можно использовать в смарт-выражениях, а также набор предопределенных конструкций для работы с этими объектами.
Дерево сущностей в окне редактирования смарт-выражений
В дереве сущностей представлены:
•системные объекты, единичные или коллекции (коллекции представляют собой наборы однотипных объектов). Например, задачи, подписи, пользователи, группы, орг.единицы;
•основные (системные) и дополнительные параметры задач, а также параметры других объектов. Например, ID задачи, текст задачи, ID подписи, название подписи;
•свойства контекста. Их набор и значения определяются тем, откуда вызывается smart-выражение. Например, при вызове из задачи свойства контекста содержат параметры этой конкретной задачи, а при обработке некоторых событий — параметры события;
•переменные (результаты предыдущих смарт-действий в рамках одного пакета);
•раздел "Прочее" предоставляет доступ ко всем объектам и параметрам системы (включая те, которые описаны в трех первых пунктах) вне контекста, то есть независимо от того, откуда вызывается smart-выражение.
Иконки дерева сущностей
Иконка |
Описание |
---|---|
Папка |
|
Ключ, или уникальный идентификатор (например, ID задачи). Этот параметр позволяет однозначно идентифицировать конкретный объект в общем множестве подобных объектов |
|
Параметр, который возвращается в единственном числе (например, срок задачи) |
|
Единичный объект, который имеет набор собственных параметров (например, заказчик задачи или родительская задача) |
|
Коллекция — множество однотипных объектов (например, исполнители задачи или дочерние задачи); каждый из объектов может иметь свой набор параметров |
|
Конструкция для работы с коллекциями |
Параметры
Единичные параметры соответствуют основным (системным) или дополнительным параметрам задач. Единичные параметры могут иметь следующие типы:
Тип |
Обозначение |
Пояснения |
Пример |
---|---|---|---|
Целое число |
Int32 |
Номер задачи, ID заказчика, ID статуса, Приоритет |
|
Десятичная дробь |
Decimal |
Процент выполнения |
|
Строка |
String |
Текст задачи, Дерево проектов |
|
Логическое значение |
Boolean |
Возможны значения True, true, False, false; |
Ожидает подписи, Закрыта, Срок заблокирован |
Дата\время |
DateTime |
Дата создания, Срок, Дата завершения |
При выборе параметра в дереве сущностей он добавляется в смарт-выражение:
Обращение к параметру
В зависимости от типа параметра, к нему можно применять соответствующие операторы и функции.
Единичные объекты
Единичные объекты могут иметь только одно значение. Например, Заказчик, Ответственный исполнитель, Родительская задача. Также единичные объекты соответствуют дополнительным параметрам следующих типов: Lookup, Список выбора задач в категории, Файл, Дерево.
Такие объекты имеют набор собственных параметров. Например, объект Заказчик имеет параметры ID пользователя, Ник, Полное имя и т.д. Чтобы получить доступ к параметрам объекта, надо раскрыть список параметров, нажав на знак "+" рядом с именем объекта:
Параметры единичного объекта
В smart-выражение можно добавить как сам единичный объект, так и любой из его параметров (параметры добавляются к имени объекта через точку):
Обращение в параметрам единичного объекта
Для ДП Lookup и "Список выбора задач из категории" к списку параметров добавляется строка "Выбрать значения для сравнения":
Параметры для сравнения
Если кликнуть по этой строке мышью, откроется окно выбора значений — аналогичное тому, что открывается в пользовательском интерфейсе. В нем доступны для выбора задачи из категории, на которую настроен соответствующий ДП.
Коллекции (множественные объекты)
Если какой-то параметр задачи может одновременно хранить несколько значений, то ему в дереве сущностей соответствует множественный объект , или коллекция. Например, Исполнители, Дочерние задачи, Запрошенные подписи. Также коллекции соответствуют дополнительным параметрам следующих типов: Выбор пользователей, Таблица, Выбор нескольких задач из категории.
Каждый экземпляр коллекции имеет набор собственных параметров. Для работы с коллекциями используются специальные конструкции; чтобы получить доступ к этим конструкциям, необходимо раскрыть стрелку рядом с именем коллекции:
Конструкции, которые используются для работы с коллекциями
Если в других категориях имеются ДП типа Lookup, "Список выбора задач в категории" или "Выбор нескольких задач в категории", которые настроены на выбор из данной категории, то для каждого такого ДП в дерево сущностей добавляется коллекция, с помощью которой можно отобрать задачи, которые ссылаются на данную задачу.
Для работы с коллекциями используются специальные конструкции , которые позволяют отбирать из множества один или несколько объектов по определенным правилам или подсчитывать количество таких объектов. Для каждой коллекции доступен стандартный набор из 10 конструкций:
Конструкции для работы с коллекциями
Первые 4 конструкции из этого набора раскрываются и содержат вложенные конструкции вернуть сам элемент и вернуть свойство элемента:
Вложенные конструкции
При выборе конструкции в смарт-выражение добавляется соответствующая строка. Конструкция вернуть сам элемент возвращает объект — структуру, содержащую все параметры объекта:
Выражение, возвращающее сам объект
Конструкция вернуть свойство элемента возвращает соответствующие свойства (параметры) объекта:
Выражение, возвращающее свойство элемента
Конструкции, название которых заканчивается словами такой что, таких что и т.п., предусматривают ввод дополнительных условий отбора. При выборе таких конструкций открывается вложенное окно для ввода условия, а в дереве сущностей отображается контекст объекта, а не задачи в целом. Обратиться к параметрам исходной задачи можно, раскрыв папку вверху дерева.
Параметры исходной категории
Набор объектов и параметров в дереве сущностей определяется тем, откуда вызывается редактор smart-выражений и, соответственно, тем, для каких объектов создается выражение (то есть контекстом).
Когда редактор вызывается из категории, то дерево сущностей содержит параметры исходной категории:
Дерево сущностей с параметрами категории, из которой вызывается смарт-выражение
Параметры события
При вызове из окна привязки пакета действий к событию (для некоторых событий) в дереве сущностей содержатся параметры события. Для разных событий параметры могут различаться. Например, для перехода по маршруту — пользователь, нажавший на кнопку и т.п.
Если смарт-выражение вызывается в пакете документов, привязанном к такому событию, в дереве сущностей будет отображаться папка Параметры события. Раскрыв папку, вы увидите список параметров и сможете обратиться к нужному свойству. Аналогично можно обращаться к значениям переменных, передаваемых между смарт-действиями в рамках одного смарт-пакета.
Параметры событий
При редактировании условий отбора из коллекции в дереве сущностей отображаются параметры этого объекта с возможностью обратиться к параметрам исходной задачи.
При переходе к редактированию смарт-выражений из раздела "Почта" (меню "Система" — "Почта", кнопка Smart) в дереве сущностей отображаются параметры электронного письма, а внизу дерева — параметры почтового клиента (ящик, папки и пр.).
Некоторые смарт-действия возвращают значения, которые могут быть использованы в следующих смарт-действиях в рамках одного смарт-пакета. Эти значения доступны в блоке "Переменные".
Раздел "Прочее"
В разделе "Прочее" доступны все объекты системы "Первая Форма" вне контекста задачи и события. Например, с помощью раздела "Прочее" можно из одной задачи получить значение ДП в другой задаче. Объект "Текущий пользователь" позволяет получить данные о пользователе — например, чтобы вывести его имя, проверить его принадлежность к группам и орг. единицам и т.п. Работа с остальными объектами из раздела "Прочее" осуществляется так же, как и с остальными коллекциями:
Выражение, возвращающее свойство элемента
Если раскрыть раздел Другие задачи из категорий, то откроется дерево категорий. Если раскрыть раздел Задачи из сводных разделов, то откроется список настроенных в системе сводных разделов.
При редактировании Общих смартов, то есть вне какого-либо контекста, обратиться к объектам и их параметрам можно только с помощью раздела "Прочее".
Объекты базы данных
Часть элементов в дереве сущностей указаны на английском языке — большинство из них соответствуют объектам базы данных.
К примеру: ExtParam — ДП, Task — задача, SelectedTask — ссылка на выбранную в ДП задачу.
Пример объектов БД в дереве сущностей
Поля, которые чаще всего используются в запросах
Сохранение смарт-выражения
Для использования созданного смарт-выражения или смарт-фильтра его надо сохранить в системе, нажав кнопку Сохранить.
При внесении изменений в код слева от кнопки Сохранить появляется текст "Отредактировано" до сохранения изменений.
Индикатор наличия несохраненных изменений
Для копирования всего смарт-выражения или его части можно использовать стандартный способ копирования через буфер обмена (клавиши Ctrl+C чтобы скопировать и Ctrl+V чтобы вставить).
При создании смарт-выражения надо следить за тем, чтобы возвращаемый результат имел нужный тип. Например, если формируется смарт-выражения для записи в поле "Дата", результат этого выражения должен иметь тип "Дата". Если формируется смарт-выражение для записи в поле, соответствующее единичному объекту, то результатом не может быть список. Если список формируется непосредственно в смарт-выражении, то он должен иметь формат {ААА, ВВВ, ССС}. |
---|
Использование фигурных скобок
В смарт-выражениях могут использоваться как единичные объекты, так и коллекции и списки. Бывают случаи, когда смарт-выражение должно обязательно возвращать коллекцию, даже если она включает в себя только один элемент. Чтобы единичный объект или список таких объектов воспринимался как коллекция, он заключается в фигурные скобки.
Пример использования фигурных скобок
Действия с выражением
По кнопке с изображением многоточия открывается список доступных действий со смарт-выражением.
Действия с выражением
Действие |
Описание |
||
---|---|---|---|
Настройки |
Название |
Смена названия смарт-выражения Окно настроек |
|
Доступен в смарт поиске |
Смарт-фильтры поддерживают опцию Доступен в смарт поиске, позволяющую добавить фильтр в число отборов. Чтобы пользователи могли быстро отбирать в категориях задачи по нескольким сложным условиям, удобно использовать готовые, заранее настроенные смарт-фильтры. В отличие от обычной фильтрации по столбцу, отбор с помощью смарт-фильтров позволяет реализовывать сложные условия, в том числе проверять задачи из других категорий. Отборы в пользовательском интерфейсе Как и обычные смарт-фильтры, фильтры для отбора должны возвращать значение true/false.
В настройках Смарт все настроенные отборы находятся во вкладке Доступен в смарт поиске. |
||
Дублировать |
При выборе пункта откроется окно редактирования копии текущего смарт-выражения. Для создания дубля название выражения должно быть непустой строкой не более 500 символов. |
||
Конвертировать в режим TSQL |
Конвертация автоматизации из режима SMART в TSQL. При нажатии на пункт откроется модальное окно с подтверждением. После подтверждения действия режим редактирования изменится на TSQL. Если в режиме SMART был написан код, то он конвертируется в язык TSQL. Конвертация сохраняется автоматически. Предварительно необходимо выполнить тестирование автоматизации, чтобы код конвертировался в TSQL. Иначе, после конвертирования, редактор кода будет пустым.
|
Тестирование смарт-выражения
Созданное выражение или фильтр можно протестировать на существующих задачах в блоке Тестирование.
Во вкладке Быстрое тестирование вы можете быстро проверить созданное выражение, для этого введите контекстные параметры и нажмите кнопку Тест.
Быстрое тестирование
Во вкладке Сценарии тестирования вы можете создать создать свой сценарий или выбрать из добавленных ранее кейсов.
При выборе значения из выпадающего списка в поле Сценарий настроенные для данного выражения контекстные параметры заполняются автоматически. По кнопке действий вы можете отредактировать название сценария или удалить его.
Создать новый сценарий можно по кнопке — в открывшемся окне введите название нового сценария, после его создания заполните параметры и нажмите на кнопку Создать сценарий.
Для выполнения сценария нажмите на кнопку Тест.
Для отмены выбора сценария с очисткой контекстных параметров в поле "Сценарий" нажмите на крестик.
Сценарии тестирования
Результат тестирования
Результат выполнения смарт-выражения отображается в специальном блоке в нижней части экрана. Блок содержит две вкладки: TSQL-скрипт и сообщение с результатом. Если смарт-выражение является фильтром, в окне результатов будет отображаться "Смарт фильтр вернул значение: true/false". Если смарт-выражение не является фильтром, в окне результатов будет отображаться таблица возвращаемых запросом данных. По кнопке результат можно скопировать в буфер обмена. Вы можете закрыть вкладку нажатием на крестик слева от ее названия или скрыть блок целиком по кнопке Очистить результаты в блоке Тестирование.
Сообщение с результатом тестирования
При тестировании автоматизации в блоке результата отображается время выполнения запроса в миллисекундах. Индикаторы рядом с временем классифицируют скорость выполнения:
•Зеленый индикатор сигнализирует о нормальном значении времени выполнения: до 50 миллисекунд.
•Желтый индикатор указывает на среднее значение: от 50 до 200 миллисекунд.
•Красный индикатор сигнализирует о большом значении времени выполнения: от 200 миллисекунд и более.
Время выполнения запроса
В случае timeout отображается текст "Время ожидания ответа истекло".
Логирование смартов
Для оценки сложности smart-выражений и smart-фильтров и нагрузки, которую они создают на сервер приложения, используется логирование смартов:
Если в интерфейсе администратора в Общих настройках приложения (пункт меню "Система" — "Общие настройки приложения") заданы параметры "Логировать время выполнения smart запросов" и др, то в журнале (пункт меню "Журналы" — "Лог выполнения автоматизации") будут создаваться записи, фиксирующие время выполнения smart-выражений и smart-фильтров.
История версий
История версий позволяет администраторам отслеживать изменения в коде и восстанавливать предыдущие версии по необходимости. История доступна по кнопке Просмотр версий в панели инструментов редактора.
Кнопка "Просмотр версий"
Версии создаются при каждом сохранении изменений. Если код еще не редактировался, на экране будет написано "Нет истории версий".
Нет истории версий
Если в код ранее были внесены изменения, то при переходе в историю открывается список версий с указанием пользователя и времени изменения.
Просмотр версии
Если вы решили восстановить выбранную неактуальную версию, нажмите на кнопку Восстановить версию. Эта кнопка станет доступной, когда вы выберете версию, отличную от текущей.
После того как вы закончили просмотр и восстановление версий, вы можете закрыть интерфейс истории версий, вернувшись к редактированию скрипта по кнопке Выйти из просмотра.
Полезные ссылки