Автозаполнение
В зависимости от ваших бизнес-процессов и потребностей, вы можете создать правила для автоматического заполнения полей типа Reference в записях таблиц любых приложений. Система предоставляет возможность составить выборку возможных значений для автозаполнения и выбрать логику автозаполнения:
- Пользовательский тип автозаполнения позволит вам создать скрипт, чтобы выбрать определенное значение среди записей, удовлетворяющих условиям всех выборок, или указать одну конкретную запись, которая будет использована как значение для автозаполнения;
- При типе автозаполнения Балансировка нагрузки система будет автоматически выбирать среди значений, удовлетворяющих условиям всех выборок, ту запись, которая используется как значение реже других в записях таблицы для автозаполнения;
- При типе автозаполнения Поочередно записи, удовлетворяющие условиям всех выборок, будут использоваться поочередно, одна за другой, как значение.
Требуемые роли:
- Создание, изменение, удаление – crm_admin, admin.
- Чтение – любой пользователь агентского интерфейса.
Создание правила автозаполнения
Автозаполнение происходит только при создании новой записи. Никакие другие события не вызовут автоматическое заполнение полей записи по правилу.
Чтобы создать правило автозаполнения, выполните следующие шаги:
-
Перейдите в CRM → Параметры → Правила автозаполнения.
-
Нажмите Создать и заполните поля.
-
Нажмите Сохранить или Сохранить и выйти, чтобы применить изменения. В таблице Бизнес-правила (sys_business_rule) будет создана запись, содержащая и выполняющая логику правила автозаполнения.
Заполнение полей созданного бизнес-правила
-
Наименование созданного бизнес-правила заполняется по шаблону: {Наименование правила автозаполнения} Autocomplete Business Rule.
-
Часть полей созданного бизнес-правила заполняется значениями из правила автозаполнения. Таблица ниже показывает, как заполненные поля бизнес-правила соотносятся с полями правила автозаполнения.
Поле в таблице Правила автозаполнения Поле в таблице Бизнес-правила Описание Описание Наследуемое Наследуемое Активно Активно Таблица для автозаполнения Таблица Условия автозаполнения Условия фильтра -
Часть полей созданного бизнес-правила заполняется автоматически предопределенными значениями, одинаково для всех подобных правил:
Поле Значение Когда Перед Порядок 999 Создание записи Да Расширенные настройки Да
-
Поля формы Правила автозаполнения
| Поле | Обязательно | Описание |
|---|---|---|
| Наименование | Да | Укажите название правила автозаполнения. |
| Описание | Нет | Добавьте описание правила автозаполнения. |
| Активно | Нет | Установите флажок, чтобы активировать правило автозаполнения. Когда правило активно, автозаполнение выполняется согласно его настройкам. Если вы деактивируете правило автозаполнения, созданное бизнес-правило также деактивируется. |
| Наследуемое | Нет | Установите флажок, чтобы автоматически созданное Бизнес-правило работало и для дочерних таблиц указанной Таблицы для автозаполнения. |
| Использовать скрипт для значения автозаполнения | Нет | Поле отображается, если значение поля Тип автозаполнения – Пользовательский. Установите флажок, чтобы с помощью скрипта создать логику выбора значения для автозаполнения из записей, во вторичную выборку. |
| Использовать скрипт для уточнения выборки | Нет | Поле отображается, если значение поля Тип автозаполнения – Пользовательский и выбран флажок Использовать скрипт для значения автозаполнения. Установите флажок, чтобы создать скрипт для сужения вторичной выборки после применения заданного для нее условия. |
| Бизнес-правило | Нет | Поле заполняется автоматически после сохранения записи и ссылается на автоматически созданное бизнес-правило, которое реализует логику автозаполнения. Вы можете управлять этим бизнес-правилом в соответствующей секции навигатора: Настройка системы → Бизнес-правила. |
| Таблица для первичной выборки | Да | Укажите таблицу с полем, ссылающимся на таблицу возможных значений для автозаполнения. При изменении значения текущего поля Поле для вторичной выборки будет очищено. |
| Условия первичной выборки | Нет | С помощью конструктора условий укажите условие для записей Таблицы первичной выборки. Например, если Таблица для первичной выборки – Пользователи групп, в текущем поле вы можете указать конкретную группу, пользователи которой могут быть использованы как значение автозаполнения. Поле Значение для автозаполнения будет очищено при изменении значения текущего поля. |
| Поле для вторичной выборки | Да | Укажите поле типа Reference Таблицы первичной выборки или ее родительской таблицы, которое ссылается на таблицу значений для автозаполнения. Например, если Таблица для первичной выборки – Пользователи групп, в текущем поле вы можете выбрать колонку Пользователь, чтобы использовать записи профилей сотрудников, включенных в указанные группы, как возможные значения для автозаполнения. При изменении значения текущего поля Значение для автозаполнения и Поле для автозаполнения будут очищены. |
| Условия вторичной выборки | Нет | Используйте конструктор условий, чтобы сузить вторичную выборку возможных значений. Например, если для первичной выборки указана таблица Пользователи групп, а в поле для вторичной выборки указана колонка Пользователь, в условии можно указать дополнительный критерий для пользователей выбранной согласно условию первичной выборки группы. Таким критерием может быть активность или принадлежность к определенной компании. Поле Значение для автозаполнения будет очищено при изменении значения текущего поля. |
| Таблица для автозаполнения | Да | Укажите таблицу, в записи которой необходимо подставлять значение, полученное в результате применения первичной и вторичной выборок, настроенных для них условий, и выполнения скриптов, если они настроены. |
| Поле для автозаполнения | Да | Поле отображается после указания Таблицы для автозаполнения. Укажите поле типа Reference Таблицы для автозаполнения, в которое необходимо подставить значение. Поле Значение для автозаполнения будет очищено при изменении значения текущего поля. |
| Условия автозаполнения | Нет | Поле отображается после указания Таблицы для автозаполнения. Используйте конструктор условий, чтобы указать условие для записей Таблицы для автозаполнения, которое должно быть выполнено, чтобы текущее правило было применено к записи. Например, вы можете разрешить автозаполнение только для записей, созданных в определенных статусах. |
| Тип автозаполнения | Да | Выберите тип автозаполнения. Доступные опции:
|
| Скрипт для уточнения выборки | Да/Нет | Поле обязательно и отображается, когда выбран флажок Использовать скрипт для уточнения выборки. Создайте скрипт, который дополнительно сузит список возможных значений для автозаполнения после применения условий первичной и вторичной выборок. |
| Скрипт для значения автозаполнения | Да/Нет | Поле обязательно и отображается, когда выбран флажок Использовать скрипт для значения автозаполнения. Создайте скрипт, который определяет запись, которая должна быть использована как Значение для автозаполнения, среди записей, прошедших вторичную выборку и критерии скрипта для уточнения выборки, если он настроен. |
| Поле со статусом | Да/Нет | Поле отображается и обязательно, если значение поля Тип автозаполнения – Балансировка нагрузки. Выберите поле типа Choice указанной Таблицы для автозаполнения или ее родительской таблицы, содержащее статус записи. При изменении значения текущего поля Игнорируемые статусы будут очищены. |
| Игнорируемые статусы | Нет | Поле отображается, если значение поля Тип автозаполнения – Балансировка нагрузки. Выберите значения статуса, в которых записи не учитываются для расчета нагрузки. |
| Текущая позиция счетчика | Да | Поле обязательно и отображается, если значение поля Тип автозаполнения – Поочередно. Укажите текущую позицию счетчика автозаполнения. Позиция рассчитывается исходя из даты создания записей, включенных во вторичную выборку: запись, созданная позже всех, имеет позицию 0. Каждая предыдущая созданная запись имеет позицию на 1 больше. При первоначальном запуске правила автозаполнения отсчет начинается с номера 1, то есть, второй записи в списке по дате создания. Если вы создадите новую запись, соответствующую условиям всех выборок, позиции предыдущих записей сдвинутся на 1, и одна из записей может быть использована как значение повторно. Подобная ситуация также может произойти, если старая запись станет соответствовать условиям всех выборок: она встроится во вторичную выборку согласно дате создания, сдвигая на 1 позиции более старых записей. |
| Значение автозаполнения | Да/Нет | Поле отображается и обязательно, если выполнены все следующие условия:
|
При каждом срабатывании правила автозаполнения на форме записи, куда было автоматически подставлено значение, отображается всплывающее сообщение.
-
Для каждой колонки каждой таблицы может одновременно быть активно только одно правило автозаполнения. Если вы создадите новое правило для той же колонки, старое правило автоматически деактивируется.
-
Если после применения всех выборок не найдено подходящих значений, автозаполнение не произойдет. Вы увидите соответствующее всплывающее сообщение на форме записи, куда должно было быть подставлено значение.
-
Изменение значений следующих полей на форме правил автозаполнения влияет на созданное бизнес-правило:
- Наименование
- Описание
- Таблица для автозаполнения
- Условия автозаполнения
- Поле для автозаполнения
- Активно
- Наследуемое
Изменение значений других полей не обновит созданное бизнес-правило.
-
В систему заложена логика проверки присутствия сотрудника на рабочем месте, если:
- значение для автозаполнения относится к таблице Пользователь (user) или дочерней таблице;
- для таблицы возможных значений настроен механизм отсутствий;
- согласно таблице Отсутствия (sys_personal_schedule_entry) пользователь, являющийся значением, сегодня не находится на рабочем месте.
При соблюдении всех указанных условий, в зависимости от Типа автозаполнения будет реализована различная логика:
Тип автозаполнения Результат - Балансировка
- Поочередно
- Пользовательский без указания Скрипта для значения автозаполнения
Пользователь, являющийся значением для автозаполнения, пропускается, и вместо него назначается следующий пользователь, входящий в выборку. Пользовательский с указанием Скрипта для значения автозаполнения Проверка на отсутствие проводится перед подачей вторичной выборки в скрипт. Если логика скрипта назначает пользователя, который сегодня отсутствует, автозаполнение не произойдет. Вы увидите соответствующее всплывающее сообщение на форме записи, куда должно было быть подставлено значение.