Дополнительные действия
AZykov (обсуждение | вклад) Новая страница: «В рамках данного задания мы создадим базовую структуру классов для учебного проекта. Для выполнения задания необходимо создать пакет и сконфигурировать в нём следующие классы: * Контрагенты * Контакт...» |
AZykov (обсуждение | вклад) |
||
(не показано 14 промежуточных версий этого же участника) | |||
Строка 1: | Строка 1: | ||
Предыдущая статья курса: [[Хранение данных. Классы. Поля и действия]] | |||
Предыдущее задание: [[Задание 0. Подготовка стенда и постановка задачи]] | |||
= Описание задания = | |||
В рамках данного задания мы создадим базовую структуру классов для [[Задание 0. Подготовка стенда и постановка задачи|учебного проекта]]. | В рамках данного задания мы создадим базовую структуру классов для [[Задание 0. Подготовка стенда и постановка задачи|учебного проекта]]. | ||
Строка 12: | Строка 17: | ||
* История ответственных | * История ответственных | ||
В качестве заготовки для выполнения этого задания можно использовать пакет, реализованных в рамках [[Быстрый старт|быстрого старта]]. | В качестве заготовки для выполнения этого задания можно использовать пакет, реализованных в рамках [[Быстрый старт|быстрого старта]]. В этом случае, необходимо модифицировать часть уже созданных классов. | ||
Параметры классов и их свойств описаны в следующих таблицах. Классы рекомендуется создавать в том порядке, в котором они описаны в данном задании, так как одни классы могут быть нужны для создания других. | |||
Контрагенты | = Контрагенты = | ||
{| class="wikitable" | {| class="wikitable" | ||
|+Класс Контрагент | |+Класс Контрагент | ||
Строка 21: | Строка 28: | ||
!Комментарий | !Комментарий | ||
|- | |- | ||
|name | |||
|Client | |||
| | |||
|- | |||
|multiName | |||
|Clients | |||
| | |||
|- | |||
|caption | |||
|Контрагент | |||
| | |||
|- | |||
|multiCaption | |||
|Контрагенты | |||
| | |||
|- | |||
|storageMode | |||
|category | |||
| | |||
|} | |||
{| class="wikitable" | |||
|+Свойства класса Контрагент | |||
!Имя свойства | |||
!Заголовок свойства | |||
!Тип данных | |||
!required | |||
!Комментарий | |||
|- | |||
|name | |||
|Название | |||
|base/String | |||
|True | |||
| | |||
|- | |||
|type | |||
|Тип | |||
|[созданный Enum] | |||
|False | |||
|Создать перечисление (Enum) ClientType с тремя значениями - Поставщик, Покупатель, Партнер | |||
|- | |||
|owner | |||
|Ответственный | |||
|root/iam/RootUser | |||
| | |||
|root/iam/RootUser - базовый класс пользователей платформы Era | |||
|} | |||
= Контакты = | |||
{| class="wikitable" | |||
|+Класс Контакт | |||
!Параметр класса | |||
!Значение параметра | |||
!Комментарий | |||
|- | |||
|name | |||
|Contact | |||
| | |||
|- | |||
|multiName | |||
|Contacts | |||
| | |||
|- | |||
|caption | |||
|Контакт | |||
| | |||
|- | |||
|multiCaption | |||
|Контакты | |||
| | |||
|- | |||
|storageMode | |||
|category | |||
| | |||
|} | |||
{| class="wikitable" | |||
|+Свойства класса Контакт | |||
!Имя свойства | |||
!Заголовок свойства | |||
!Тип данных | |||
!required | |||
!Комментарий | |||
|- | |||
|firstName | |||
|Имя | |||
|base/String | |||
|true | |||
| | |||
|- | |||
|lastName | |||
|Фамилия | |||
|base/String | |||
|true | |||
| | |||
|- | |||
|middleName | |||
|Отчество | |||
|base/String | |||
|true | |||
| | |||
|- | |||
|fullName | |||
|ФИО | |||
|base/String | |||
| | |||
|На вкладке UI установить признак readOnly = true | |||
|- | |||
|jobName | |||
|Должность | |||
|base/String | |||
| | |||
| | |||
|- | |||
|client | |||
|Контрагент | |||
|[ссылка на созданный выше класс Client] | |||
| | |||
| | |||
|} | |||
= Объекты обслуживания = | |||
{| class="wikitable" | |||
|+Класс Объект обслуживания | |||
!Параметр класса | |||
!Значение параметра | |||
!Комментарий | |||
|- | |||
|name | |||
|ServiceObject | |||
| | |||
|- | |||
|multiName | |||
|ServiceObjects | |||
| | |||
|- | |||
|caption | |||
|Объект обслуживания | |||
| | |||
|- | |||
|multiCaption | |||
|Объекты обслуживания | |||
| | |||
|- | |||
|storageMode | |||
|category | |||
| | |||
|} | |||
{| class="wikitable" | |||
|+Свойства класса Объект обслуживания | |||
!Имя свойства | |||
!Заголовок свойства | |||
!Тип данных | |||
!required | |||
!Комментарий | |||
|- | |||
|name | |||
|Название | |||
|base/String | |||
|True | |||
| | |||
|- | |||
|client | |||
|Контрагент | |||
|[ссылка на созданный выше класс Client] | |||
|True | |||
| | |||
|- | |||
|owner | |||
|Ответственный | |||
|root/iam/RootUser | |||
| | |||
|root/iam/RootUser - базовый класс пользователей платформы Era | |||
|} | |||
= Обращения = | |||
{| class="wikitable" | |||
|+Класс Обращение | |||
!Параметр класса | |||
!Значение параметра | |||
!Комментарий | |||
|- | |||
|name | |||
|Ticket | |||
| | |||
|- | |||
|multiName | |||
|Tickets | |||
| | |||
|- | |||
|caption | |||
|Обращение | |||
| | |||
|- | |||
|multiCaption | |||
|Обращения | |||
| | |||
|- | |||
|storageMode | |||
|history | |||
| rowspan="2" |Создать класс необходимо с storageMode=category, после активации пакета, необходимо изменить режим на history и заполнить partitionPropertyName | |||
|- | |||
|partitionPropertyName | |||
|dateTime | |||
|- | |||
|integrityMode | |||
|sync_fast_notify | |||
| | |||
|} | |||
{| class="wikitable" | |||
|+Свойства класса Обращение | |||
!Имя свойства | |||
!Заголовок свойства | |||
!Тип данных | |||
!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 | |||
| | |||
| | |||
|} | |||
= Комментарии к обращениям = | |||
{| class="wikitable" | |||
|+Класс Комментарий к обращению | |||
!Параметр класса | |||
!Значение параметра | |||
!Комментарий | |||
|- | |||
|name | |||
|TicketComment | |||
| | | | ||
|- | |||
|multiName | |||
|TicketComments | |||
| | | | ||
|- | |||
|caption | |||
|Комментарий к обращению | |||
| | | | ||
|- | |- | ||
|multiCaption | |||
|Комментарии к обращению | |||
| | | | ||
|- | |||
|storageMode | |||
|history | |||
| rowspan="2" |Создать класс необходимо с storageMode=category, после активации пакета, необходимо изменить режим на history и заполнить partitionPropertyName | |||
|- | |||
|partitionPropertyName | |||
|dateTime | |||
|- | |||
|integrityMode | |||
|sync_fast_notify | |||
| | | | ||
|} | |||
{| class="wikitable" | |||
|+Свойства класса Комментарий к обращению | |||
!Имя свойства | |||
!Заголовок свойства | |||
!Тип данных | |||
!required | |||
!Комментарий | |||
|- | |||
|author | |||
|Автор | |||
|root/iam/RootUser | |||
|True | |||
| | | | ||
|- | |- | ||
|ticket | |||
|Обращение | |||
|[ссылка на созданный выше класс Ticket] | |||
|True | |||
| | | | ||
|- | |||
|Text | |||
|Текст | |||
|base/String | |||
|True | |||
| | |||
|- | |||
|dateTime | |||
|Дата создания | |||
|base/DateTime | |||
|True | |||
|defaultValue: GlobalUtils.nowDateTime() | |||
|} | |||
= Звонки = | |||
{| class="wikitable" | |||
|+Класс Звонок | |||
!Параметр класса | |||
!Значение параметра | |||
!Комментарий | |||
|- | |||
|name | |||
|Call | |||
| | | | ||
|- | |||
|multiName | |||
|Calls | |||
| | | | ||
|- | |- | ||
|caption | |||
|Звонок | |||
| | | | ||
|- | |||
|multiCaption | |||
|Звонки | |||
| | | | ||
|- | |||
|storageMode | |||
|history | |||
| rowspan="2" |Создать класс необходимо с storageMode=category, после активации пакета, необходимо изменить режим на history и заполнить partitionPropertyName | |||
|- | |||
|partitionPropertyName | |||
|dateTime | |||
|- | |||
|integrityMode | |||
|sync_fast_notify | |||
| | | | ||
|} | |} | ||
{| class="wikitable" | {| class="wikitable" | ||
|+Свойства класса Контрагент | |+Свойства класса Звонок | ||
!Имя свойства | |||
!Заголовок свойства | |||
!Тип данных | |||
!required | |||
!Комментарий | |||
|- | |||
|recordInfo | |||
|Данные о записи | |||
|callcenter/ccs/RecordInfo | |||
| | |||
|Класс RecordInfo хранит в себе служебные данные для прослушивания записей разговоров | |||
|- | |||
|user | |||
|Пользователь | |||
|root/iam/RootUser | |||
| | |||
| | |||
|- | |||
|contact | |||
|Контакт | |||
|[ссылка на созданный выше класс Contact] | |||
| | |||
| | |||
|- | |||
|client | |||
|Контрагент | |||
|[ссылка на созданный выше класс Client] | |||
| | |||
| | |||
|- | |||
|ticket | |||
|Обращение | |||
|[ссылка на созданный выше класс Ticket] | |||
| | |||
| | |||
|- | |||
|dateTime | |||
|Дата звонка | |||
|base/DateTime | |||
|True | |||
|defaultValue: GlobalUtils.nowDateTime() | |||
|} | |||
= История изменения статусов = | |||
{| class="wikitable" | |||
|+Класс Изменение статуса обращения | |||
!Параметр класса | |||
!Значение параметра | |||
!Комментарий | |||
|- | |||
|name | |||
|TicketStateChange | |||
| | |||
|- | |||
|multiName | |||
|TicketStateChanges | |||
| | |||
|- | |||
|caption | |||
|Изменение статуса обращения | |||
| | |||
|- | |||
|multiCaption | |||
|Изменения статуса обращения | |||
| | |||
|- | |||
|storageMode | |||
|history | |||
| rowspan="2" |Создать класс необходимо с storageMode=category, после активации пакета, необходимо изменить режим на history и заполнить partitionPropertyName | |||
|- | |||
|partitionPropertyName | |||
|dateTime | |||
|- | |||
|integrityMode | |||
|sync_fast_notify | |||
| | |||
|} | |||
{| class="wikitable" | |||
|+Свойства класса Изменение статуса обращения | |||
!Имя свойства | !Имя свойства | ||
!Заголовок свойства | |||
!Тип данных | !Тип данных | ||
!required | |||
!Комментарий | !Комментарий | ||
|- | |- | ||
|ticket | |||
|Обращение | |||
|[ссылка на созданный выше класс Ticket] | |||
|True | |||
| | |||
|- | |||
|oldState | |||
|Предыдущий статус | |||
|[ссылка на enum TicketState] | |||
|True | |||
| | | | ||
|- | |||
|newState | |||
|Новый статус | |||
|[ссылка на enum TicketState] | |||
|True | |||
| | |||
|- | |||
|dateTime | |||
|Дата создания | |||
|base/DateTime | |||
|True | |||
|defaultValue: GlobalUtils.nowDateTime() | |||
|} | |||
= История изменения ответственных = | |||
{| class="wikitable" | |||
|+Класс Изменение ответственного по обращению | |||
!Параметр класса | |||
!Значение параметра | |||
!Комментарий | |||
|- | |||
|name | |||
|TicketOwnerChange | |||
| | | | ||
|- | |||
|multiName | |||
|TicketOwnerChanges | |||
| | | | ||
|- | |- | ||
|caption | |||
|Изменение ответственного по обращению | |||
| | | | ||
|- | |||
|multiCaption | |||
|Изменения ответственного по обращению | |||
| | | | ||
|- | |||
|storageMode | |||
|history | |||
| rowspan="2" |Создать класс необходимо с storageMode=category, после активации пакета, необходимо изменить режим на history и заполнить partitionPropertyName | |||
|- | |||
|partitionPropertyName | |||
|dateTime | |||
|- | |||
|integrityMode | |||
|sync_fast_notify | |||
| | | | ||
|} | |||
{| class="wikitable" | |||
|+Свойства класса Изменение ответственного по обращению | |||
!Имя свойства | |||
!Заголовок свойства | |||
!Тип данных | |||
!required | |||
!Комментарий | |||
|- | |- | ||
|ticket | |||
|Обращение | |||
|[ссылка на созданный выше класс Ticket] | |||
|True | |||
| | | | ||
|- | |||
|oldOwner | |||
|Предыдущий ответственный | |||
|root/iam/RootUser | |||
|True | |||
| | | | ||
|- | |||
|newOwner | |||
|Новый ответственный | |||
|root/iam/RootUser | |||
|True | |||
| | | | ||
|- | |||
|dateTime | |||
|Дата создания | |||
|base/DateTime | |||
|True | |||
|defaultValue: GlobalUtils.nowDateTime() | |||
|} | |} | ||
= Применение изменений = | |||
[[Файл:Пакет. Применение изменений.png|мини|Пакет. Применение изменений]] | |||
После добавления всех контактов, необходимо применить изменения в пакете. | |||
Для этого в приложении Builder, в разделе Packages необходимо выделить ваш пакет и нажать кнопку Apply в верхней части окна. | |||
После применения изменений, необходимо изменить storageMode для тех классов, где он должен быть history, а также заполнить значение поля partitionPropertyName. | |||
После данных манипуляций, необходимо повторно применить изменения в пакете. | |||
Следующая статья курса: [[Пользовательский доступ к классам. Приложения]] | |||
Предыдущая статья курса: [[Хранение данных. Классы. Поля и действия]] | |||
Следующее задание: [[Задание 2. Настройка приложения]] | |||
[[Категория:Курс "Разработка приложений"]] |
Текущая версия от 14:56, 20 января 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 | Комментарий |
---|---|---|---|---|
recordInfo | Данные о записи | callcenter/ccs/RecordInfo | Класс RecordInfo хранит в себе служебные данные для прослушивания записей разговоров | |
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. Настройка приложения