Дополнительные действия
AZykov (обсуждение | вклад) |
AZykov (обсуждение | вклад) Нет описания правки |
||
| Строка 406: | Строка 406: | ||
!required | !required | ||
!Комментарий | !Комментарий | ||
|- | |- | ||
|user | |user | ||
Версия от 07:08, 14 февраля 2025
Предыдущая статья курса: Хранение данных. Классы. Поля и действия
Предыдущее задание: Задание 0. Подготовка стенда и постановка задачи
Описание задания
В рамках данного задания мы создадим базовую структуру классов для учебного проекта.
Для выполнения задания необходимо создать пакет и сконфигурировать в нём следующие классы:
- Контрагенты
- Контакты
- Обращения
- Комментарии к обращениям
- Звонки по обращениям
- Объекты обслуживания
- История изменения статусов
- История ответственных
В качестве заготовки для выполнения этого задания можно использовать пакет, реализованных в рамках быстрого старта. В этом случае, необходимо модифицировать часть уже созданных классов.
Параметры классов и их свойств описаны в следующих таблицах. Классы рекомендуется создавать в том порядке, в котором они описаны в данном задании, так как одни классы могут быть нужны для создания других.
Контрагенты
| Параметр класса | Значение параметра | Комментарий |
|---|---|---|
| name | Client | |
| multiName | Clients | |
| caption | Контрагент | |
| multiCaption | Контрагенты | |
| storageMode | category |
| Имя свойства | Заголовок свойства | Тип данных | required | Комментарий |
|---|---|---|---|---|
| name | Название | base/String | True | |
| type | Тип | [созданный Enum] | False | Создать перечисление (Enum) ClientType с тремя значениями - Поставщик, Покупатель, Партнер |
| owner | Ответственный | root/iam/RootUser | root/iam/RootUser - базовый класс пользователей платформы Era |
Контакты
| Параметр класса | Значение параметра | Комментарий |
|---|---|---|
| name | Contact | |
| multiName | Contacts | |
| caption | Контакт | |
| multiCaption | Контакты | |
| storageMode | category |
| Имя свойства | Заголовок свойства | Тип данных | required | Комментарий |
|---|---|---|---|---|
| firstName | Имя | base/String | true | |
| lastName | Фамилия | base/String | true | |
| middleName | Отчество | base/String | true | |
| fullName | ФИО | base/String | На вкладке UI установить признак readOnly = true | |
| jobName | Должность | base/String | ||
| client | Контрагент | [ссылка на созданный выше класс Client] |
Объекты обслуживания
| Параметр класса | Значение параметра | Комментарий |
|---|---|---|
| name | ServiceObject | |
| multiName | ServiceObjects | |
| caption | Объект обслуживания | |
| multiCaption | Объекты обслуживания | |
| storageMode | category |
| Имя свойства | Заголовок свойства | Тип данных | required | Комментарий |
|---|---|---|---|---|
| name | Название | base/String | True | |
| client | Контрагент | [ссылка на созданный выше класс Client] | True | |
| owner | Ответственный | root/iam/RootUser | root/iam/RootUser - базовый класс пользователей платформы Era |
Обращения
| Параметр класса | Значение параметра | Комментарий |
|---|---|---|
| name | Ticket | |
| multiName | Tickets | |
| caption | Обращение | |
| multiCaption | Обращения | |
| storageMode | history | Создать класс необходимо с storageMode=category, после активации пакета, необходимо изменить режим на history и заполнить partitionPropertyName |
| partitionPropertyName | dateTime | |
| integrityMode | sync_fast_notify |
| Имя свойства | Заголовок свойства | Тип данных | required | Комментарий |
|---|---|---|---|---|
| dateTime | Дата создания | base/DateTime | True | defaultValue: GlobalUtils.nowDateTime() |
| contact | Контакт | [ссылка на созданный выше класс Contact] | True | |
| client | Контрагент | [ссылка на созданный выше класс Client] | ||
| serviceObject | Объект обслуживания | [ссылка на созданный выше класс ServiceObject] | ||
| owner | Ответственный | root/iam/RootUser | ||
| customerOwner | Пользователь клиента | root/iam/RootUser | Будет использоваться для огранизации доступа клиентов к собственным обращениям | |
| state | Статус | [созданной перечисление TicketState] | True | Если не был пройден Быстрый старт, то необходимо создать новое перечисление (Enum) - TicketState с тремя значениями (Открыто, В работе, Закрыто) |
| subject | Тема | base/String | True | |
| description | Описание | base/String |
Комментарии к обращениям
| Параметр класса | Значение параметра | Комментарий |
|---|---|---|
| name | TicketComment | |
| multiName | TicketComments | |
| caption | Комментарий к обращению | |
| multiCaption | Комментарии к обращению | |
| storageMode | history | Создать класс необходимо с storageMode=category, после активации пакета, необходимо изменить режим на history и заполнить partitionPropertyName |
| partitionPropertyName | dateTime | |
| integrityMode | sync_fast_notify |
| Имя свойства | Заголовок свойства | Тип данных | required | Комментарий |
|---|---|---|---|---|
| author | Автор | root/iam/RootUser | True | |
| ticket | Обращение | [ссылка на созданный выше класс Ticket] | True | |
| Text | Текст | base/String | True | |
| dateTime | Дата создания | base/DateTime | True | defaultValue: GlobalUtils.nowDateTime() |
Звонки
| Параметр класса | Значение параметра | Комментарий |
|---|---|---|
| name | Call | |
| multiName | Calls | |
| caption | Звонок | |
| multiCaption | Звонки | |
| storageMode | history | Создать класс необходимо с storageMode=category, после активации пакета, необходимо изменить режим на history и заполнить partitionPropertyName |
| partitionPropertyName | dateTime | |
| integrityMode | sync_fast_notify |
| Имя свойства | Заголовок свойства | Тип данных | required | Комментарий |
|---|---|---|---|---|
| user | Пользователь | root/iam/RootUser | ||
| contact | Контакт | [ссылка на созданный выше класс Contact] | ||
| client | Контрагент | [ссылка на созданный выше класс Client] | ||
| ticket | Обращение | [ссылка на созданный выше класс Ticket] | ||
| dateTime | Дата звонка | base/DateTime | True | defaultValue: GlobalUtils.nowDateTime() |
История изменения статусов
| Параметр класса | Значение параметра | Комментарий |
|---|---|---|
| name | TicketStateChange | |
| multiName | TicketStateChanges | |
| caption | Изменение статуса обращения | |
| multiCaption | Изменения статуса обращения | |
| storageMode | history | Создать класс необходимо с storageMode=category, после активации пакета, необходимо изменить режим на history и заполнить partitionPropertyName |
| partitionPropertyName | dateTime | |
| integrityMode | sync_fast_notify |
| Имя свойства | Заголовок свойства | Тип данных | required | Комментарий |
|---|---|---|---|---|
| ticket | Обращение | [ссылка на созданный выше класс Ticket] | True | |
| oldState | Предыдущий статус | [ссылка на enum TicketState] | True | |
| newState | Новый статус | [ссылка на enum TicketState] | True | |
| dateTime | Дата создания | base/DateTime | True | defaultValue: GlobalUtils.nowDateTime() |
История изменения ответственных
| Параметр класса | Значение параметра | Комментарий |
|---|---|---|
| name | TicketOwnerChange | |
| multiName | TicketOwnerChanges | |
| caption | Изменение ответственного по обращению | |
| multiCaption | Изменения ответственного по обращению | |
| storageMode | history | Создать класс необходимо с storageMode=category, после активации пакета, необходимо изменить режим на history и заполнить partitionPropertyName |
| partitionPropertyName | dateTime | |
| integrityMode | sync_fast_notify |
| Имя свойства | Заголовок свойства | Тип данных | required | Комментарий |
|---|---|---|---|---|
| ticket | Обращение | [ссылка на созданный выше класс Ticket] | True | |
| oldOwner | Предыдущий ответственный | root/iam/RootUser | True | |
| newOwner | Новый ответственный | root/iam/RootUser | True | |
| dateTime | Дата создания | base/DateTime | True | defaultValue: GlobalUtils.nowDateTime() |
Применение изменений

После добавления всех контактов, необходимо применить изменения в пакете.
Для этого в приложении Builder, в разделе Packages необходимо выделить ваш пакет и нажать кнопку Apply в верхней части окна.
После применения изменений, необходимо изменить storageMode для тех классов, где он должен быть history, а также заполнить значение поля partitionPropertyName.
После данных манипуляций, необходимо повторно применить изменения в пакете.
Следующая статья курса: Пользовательский доступ к классам. Приложения
Предыдущая статья курса: Хранение данных. Классы. Поля и действия
Следующее задание: Задание 2. Настройка приложения