Для быстрого анализа истории работы с клиентами, продажами, обращениями и т. п. используется вкладка Хронология. Эта вкладка по умолчанию доступна в разделах Контакты, Контрагенты, Лиды, Продажи, Обращения.
Настройка хронологии
Для настройки хронологии в базе данных предусмотрены таблицы:
- [TimelinePageSetting] — для настройки разделов и их плиток.
- [TimelineTileSetting] — для настройки всех преднастроенных и пользовательских плиток хронологии.
- [SysTimelineTileSettingLcz] — для локализации имен плиток.
Колонка | Описание |
---|---|
Id | Идентификатор записи. |
Key | Ключ — название схемы страницы раздела. Например, AccountPageV2, ContactPageV2 и т. д. |
Data | Параметры конфигурации плитки хронологии для раздела в формате JSON. |
Колонка | Описание |
---|---|
Id | Идентификатор записи. |
Name | Заголовок плитки, который будет отображаться в меню фильтра. Должен быть во множественном числе, например "Задачи" ("Tasks"). Локализация осуществляется с помощью таблицы SysTimelineTileSettingLcz. Если данное поле не будет указано, тогда заголовок плитки будет взят из названия схемы сущности или типа. |
Data | Параметры конфигурации плитки хронологии для раздела в формате JSON. |
Image | Иконка плитки, которая будет отображаться в меню фильтра и слева от плитки во вкладке Хронология. |
Колонка | Описание | Обязательность | Пример |
---|---|---|---|
entityConfigKey | Ключ плитки. Должен совпадать с [Id] в таблице [TimelineTileSetting] соответствующей преднастроенной плитки, которую следует отображать для данной сущности. | Да | 706f803d-6a30-4bcd-88e8-36a0e722ea41 |
entitySchemaName | Название схемы объекта. | Да | Activity |
referenceColumnName | Название колонки объекта, по которой будет происходить отбор записей. | Да | Account |
masterRecordColumnName | Название колонки родительской записи, по которой будет происходить отбор записей. | Да | Id |
typeColumnName | Название колонки типа. | Нет | Type |
typeColumnValue | Значение колонки типа. | Указывается только при указании typeColumnName | fbe0acdc-cfc0-df11-b00f-001d60e938c6 |
viewModelClassName | Название класса модели представления преднастроенной плитки. | Нет. Если значение отсутствует, то будет применен базовый класс BaseTimelineItemViewModel | Terrasoft.ActivityTimelineItemViewModel |
viewClassName | Название класса представления преднастроенной плитки. | Нет. Если значение отсутствует, то будет применен базовый класс BaseTimelineItemView | Terrasoft.ActivityTimelineItemView |
orderColumn | Колонка для сортировки. | Да | StartDate |
authorColumnName | Колонка для автора. | Да | Owner |
captionColumnName | Колонка для заголовка. | Да, если не указана колонка messageColumnName | Title |
messageColumnName | Колонка для информационного сообщения. | Да, если не указана колонка captionColumnName | DetailedResult |
caption | Заголовок плитки, который будет отображаться в меню фильтра. Должен быть во множественном числе, например "Задачи" ("Tasks"). Используется для задания заголовка плитки, отличного от указанного в поле [Name] настройки соответствующей плитки в таблице [TimelinePageSetting]. | Нет | My Activity |
columns | Массив настроек дополнительных колонок для плитки. | Нет | |
columnName | Путь к колонке в объекте. | Да | Result |
columnAlias | Псевдоним колонки в модели представления плитки. | Да | ResultMessage |
isSearchEnabled | Указывает на возможность текстового поиска по значению в колонке (только для текстовых колонок). | Нет | true |
Добавление вкладки Хронология в раздел
Для добавления вкладки Хронология на страницу раздела и отображения в нем записей определенных плиток, необходимо:
- Создать новую запись в таблице TimelinePageSetting.
- Заполнить соответствующие колонки. В колонке Key необходимо указать название схемы страницы раздела. Например, если необходимо добавить вкладку в раздел Контрагенты, то значением колонки Key будет "AccountPageV2". Колонка Data содержит конфигурацию плиток хронологии, отображаемых на вкладке в указанном разделе, в формате JSON.
1. Создать SQL-сценарий
- Перейдите в раздел Конфигурация (Configuration) и выберите пользовательский пакет, в который будет добавлен SQL-сценарий.
-
На панели инструментов реестра раздела нажмите Добавить —> SQL-сценарий (Add —> SQL script).
-
Заполните свойства схемы.
- Код (Code) — "usrAddTimelineScript".
- Тип СУБД (DBMS type) — выберите необходимый тип СУБД, например "MSSql".
- Тип установки (Installation type) — выберите "AfterPackage".
-
Добавьте код SQL-сценария.
В коде укажите значения колонок:
-
[Key] — "OrderPageV2".
-
[Data] — JSON-объект с конфигурацией данных плитки.
В примере используется базовая плитка Orders. Для нее в таблице [TimelineTileSettings] базы данных уже существует запись с идентификатором "0ef5bd15-f3d3-4673-8af7-f2e61bc44cf0".
usrTimelineScriptMSSqlPostgreSql -
- На панели инструментов дизайнера нажмите Сохранить (Save).
2. Установить данные SQL-сценария
В контекстном меню созданного SQL-сценария нажмите Установить (Install) для выполнения скрипта в базе данных.
Результат выполнения примера
В результате выполнения примера в разделе Заказы (Orders) отображается вкладка Хронология (Timeline) с базовой плиткой.
1. Создать раздел Книги (Books))
Чтобы создать раздел Книги (Books), установите пакет примера Привязать данные к пакету.
После установки пакета в рабочем месте Продажи (Sales) доступен раздел Книги (Books).
На вкладке Books страницы контрагента появится деталь, которая отображает связанные записи раздела Книги (Books).
2. Создать модуль представления плитки
- Перейдите в раздел Конфигурация (Configuration) и выберите пользовательский пакет, в который будет добавлена схема. Установить зависимость от пакета Timeline.
-
На панели инструментов реестра раздела нажмите Добавить —> Модуль (Add —> Module).
-
Заполните свойства схемы.
- Код (Code) — "UsrBookTimelineItemView".
- Заголовок (Title) — "Представление элемента хронологии UsrBook" ("UsrBook Timeline Item View").
-
Добавьте логику отображения плитки. Для этого реализуйте методы:
- getUsrISBNViewConfig — возвращает конфигурацию дополнительного поля UsrISBN плитки.
- getUsrPriceViewConfig — возвращает конфигурацию дополнительного поля UsrPrice плитки.
- getBodyViewConfig — переопределенный метод, который возвращает общую конфигурацию плитки.
Исходный код схемы модуля представления плитки представлен ниже.
Здесь определяется конфигурация дополнительно отображаемых на плитке полей UsrISBN и UsrPrice. Стандартная конфигурация определена в модуле BaseTimelineItemView.
- На панели инструментов дизайнера нажмите Сохранить (Save).
3. Создать модуль модели представления плитки
- Перейдите в раздел Конфигурация (Configuration) и выберите пользовательский пакет, в который будет добавлена схема. Установить зависимость от пакета Timeline.
-
На панели инструментов реестра раздела нажмите Добавить —> Модуль (Add —> Module).
-
Заполните свойства схемы.
- Код (Code) — "UsrBookTimelineItemViewModel".
- Заголовок (Title) — "Модель представления элемента хронологии UsrBook" ("UsrBook timeline item view model").
- В объявлении класса модуля в качестве зависимостей добавьте модули UsrBookTimelineItemViewModelResources и BaseTimelineItemViewModel.
Исходный код модуля модели представления плитки представлен ниже.
Здесь определяется класс Terrasoft.configuration.UsrBookTimelineItemViewModel. Поскольку этот класс определен, как наследник Terrasoft.BaseTimelineItemViewModel, то это позволяет использовать функциональность базового класса.
- На панели инструментов дизайнера нажмите Сохранить (Save).
4. Настроить отображение плитки
Настройка свойств плиток хронологии выполняется в таблице [TimelineTileSetting] базы данных.
Чтобы настроить отображение плитки:
-
Создайте новую запись в таблице [TimelineTileSetting]. Для этого выполните SQL-запрос.
-
Добавьте значение в колонки [Data] и [Image].
Поскольку данные в колонках [Data] и [Image] хранятся в формате varbinary(max), то редактировать их удобнее всего с помощью специализированных редакторов, например, dbForge Studio Express for SQL Server.
Чтобы добавить значение в колонки [Data] и [Image] с помощью dbForge Studio Express for SQL Server:
- Выберите необходимую таблицу (1).
- Выберите необходимую колонку записи и кликните по кнопке редактирования (2).
- В редакторе данных перейдите в режим текстового отображения данных(3).
- Добавьте необходимые данные (4).
- В редакторе данных нажмите на кнопку применения изменений (5).
- Нажмите на кнопку обновления данных (6).
- В появившемся диалоговом окне согласитесь с применением изменений (7).
Добавьте в колонку Data конфигурационный объект.
Здесь, кроме основных полей, унаследованных от базовой плитки, указывается также массив дополнительных полей, отображение которых сконфигурировано в модуле представления UsrBookTimelineItemView .
Для отображения иконки, соответствующей иконке раздела, добавьте в колонку Image данные в SVG-формате.
5. Изменить привязку плитки
Для раздела Контрагенты (Accounts) в таблице [TimelinePageSetting] уже существует запись с настройкой плиток, связанных с другими разделами. Это запись, которая содержит значение "AccountPageV2" в колонке Key.
Используя приведенную на шаге 4 последовательность, измените массив конфигурационных объектов, добавив в него новую запись.
Значение свойства "entityConfigKey" — идентификатор (колонка [Id]) записи таблицы [TimelineTileSetting], которая создана на шаге 4.
Результат выполнения примера
В результате выполнения примера на вкладке Хронология (Timeline) страницы контрагента отображаются плитки, которые связаны с пользовательским разделом Книги (Books). Эти плитки содержат все поля, приведенные в условиях примера.