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