Установка для поля значения по умолчанию
Glossary Item Box
Общие сведения
В bpm'online реализована возможность задания значений по умолчанию для элементов управления страницы редактирования.
Установить значение по умолчанию можно двумя способами:
1. Задать на уровне колонок бизнес-объектов. В большинстве случаев при создании нового объекта конкретные поля страницы должны заполняться определенными, известными изначально значениями. В таких случаях для колонок объекта, которые соответствуют этим полям, необходимо в дизайнере объектов указать эти значения в качестве значений по умолчанию.
2. Задать в исходном коде страницы редактирования. В некоторых случаях невозможно установить значение по умолчанию с помощью свойств колонки объекта. Например, это могут быть вычисляемые значения, которые рассчитываются по значениям других колонок объекта и т.д.. В таком случае, задать значение по умолчанию можно только программными средствами.
Пример установки для поля значения по умолчанию через свойства колонки объекта.
Описание кейса
При создании новой активности по умолчанию должен быть установлен признак [Отображать в расписании].
Алгоритм реализации кейса
1. Создать в пользовательском пакете замещающий объект [Активность]
Для этого необходимо выбрать пользовательский пакет и на вкладке [Схемы] выполнить пункт меню [Добавить] — [Замещающий объект] (рис. 1, 1).
Рис. 1. — Создание замещающего объекта
Для того, чтобы модуль замещал определенный объект, необходимо в поле [Родительский объект] указать название того базового объекта, который требуется заместить. То есть, для создания замещающего объекта [Активность] его необходимо указать в качестве родительского объекта. После подтверждения выбранного родительского объекта остальные поля свойств заполнятся автоматически (рис. 2).
Рис. 2. — Свойства замещающего объекта [Активность]
2. Установить для колонки [Отображать в расписании] значение по умолчанию
Для этого необходимо выбрать из списка унаследованных колонок объекта колонку [Отображать в расписании] и отредактировать ее свойство [Значение по умолчанию] таким образом, как показано на рисунке 3. Для реализации кейса необходимо выбрать в качестве значения по умолчанию константное значение.
Рис. 3. — Установка значения по умолчанию для колонки [Отображать в расписании]
В общем случае система предлагает такие виды значений по умолчанию:
Название | Описание |
---|---|
Установить константу | Строка, число, значение из справочника, логическое значение. |
Установить из системной настройки | Полный список настроек доступен из конфигурации в разделе [Системные настройки], и он может быть дополнен пользовательской системной настройкой. |
Установить из системной переменной |
Системные переменные bpm'online — это глобальные переменные, хранящие информацию о настройках системы. Однако, в отличие от системных настроек, значения которых могут отличаться для разных пользователей, значения системных переменных являются одинаковыми для всех пользователей. Полный перечень системных переменных реализован на уровне ядра и не может быть изменен пользователем:
|
Не устанавливать значение по умолчанию | Строка, число, значение из справочника, логическое значение. |
После публикации схемы и обновления веб-страницы с очисткой кэша на странице редактирования активности при создании новой активности поле [Отображать в расписании] будет автоматически отмечено (рис. 4).
Рис. 4. Демонстрация установки значения по умолчанию
Пример установки значения по умолчанию в исходном коде страницы редактирования
Описание кейса
При создании нового проекта значение поле [Крайний срок] на странице редактирования проекта по умолчанию должно принимать значение поля [Начало] плюс 10 дней.
Алгоритм реализации кейса
1. В пользовательском пакете создать замещающую страницу редактирования проекта
Необходимо создать замещающий клиентский модуль (рис. 1, 2), в котором в качестве родительского объекта указать схему ProjectPageV2 (рис. 6). Процесс создания замещающей страницы описан в статье "Создание клиентской схемы".
Рис. 5. — Свойства замещающей страницы редактирования
2. Добавить необходимые методы в коллекцию методов схемы модели представления
Для этого в коллекцию methods модели представления нужно добавить метод setDeadline() установки значения для колонки [Крайний срок].
Также необходимо переопределить базовый виртуальный метод onEntityInitialized(). Метод onEntityInitialized() срабатывает после окончания инициализации схемы объекта. Добавление в данный метод вызова метода setDeadline(), обеспечит установку значения для колонки [Крайний срок] в момент открытия страницы редактирования.
Полностью исходный код модуля представлен ниже.
define("ProjectPageV2", [], function() { return { // Название схемы объекта страницы редактирования. entitySchemaName: "Project", methods: { // Переопределение базового метода Terrasoft.BasePageV2.onEntityInitialized, который // срабатывает после окончания инициализации схемы объекта страницы редактирования. onEntityInitialized: function() { // Вызывается родительская реализация метода. this.callParent(arguments); // Вызов метода-обработчика, который рассчитывает значение поля [Крайний срок]. this.setDeadline(); }, // Метод-обработчик, который рассчитывает значение поля [Крайний срок]. setDeadline: function() { // Значение колонки [Крайний срок]. var deadline = this.get("Deadline"); // Установлен ли режим новой записи? var newmode = this.isNewMode(); // Если значение не установлено и режим новой записи. if (!deadline && newmode) { // Получение значения колонки [Начало] var startDate = this.get("StartDate"); // Определение разницы в милисекундах. var differ = 10 * this.Terrasoft.DateRate.MILLISECONDS_IN_DAY; // Установка значения колонки [Крайний срок]. this.set("Deadline", new Date(startDate.getTime() + differ)); } } } }; });
После сохранения схемы и обновления с очисткой кэша веб-страницы системы при создании нового проекта в поле [Крайний срок] будет установлена дата, равная дате в поле [Начало] плюс 10 дней (рис. 6).
Рис. 7. — Демонстрация установки вычисляемого значения по умолчанию