Дополнительные действия
AZykov (обсуждение | вклад) Нет описания правки |
AZykov (обсуждение | вклад) |
||
(не показано 13 промежуточных версий этого же участника) | |||
Строка 1: | Строка 1: | ||
Предыдущая статья курса: [[Хранение данных. Классы. Поля и действия]] | |||
Предыдущее задание: [[Задание 0. Подготовка стенда и постановка задачи]] | |||
= Описание задания = | |||
В рамках данного задания мы создадим базовую структуру классов для [[Задание 0. Подготовка стенда и постановка задачи|учебного проекта]]. | В рамках данного задания мы создадим базовую структуру классов для [[Задание 0. Подготовка стенда и постановка задачи|учебного проекта]]. | ||
Строка 5: | Строка 10: | ||
* Контрагенты | * Контрагенты | ||
* Контакты | * Контакты | ||
* | * Обращения | ||
* Комментарии к обращениям | * Комментарии к обращениям | ||
* Звонки по обращениям | * Звонки по обращениям | ||
Строка 14: | Строка 19: | ||
В качестве заготовки для выполнения этого задания можно использовать пакет, реализованных в рамках [[Быстрый старт|быстрого старта]]. В этом случае, необходимо модифицировать часть уже созданных классов. | В качестве заготовки для выполнения этого задания можно использовать пакет, реализованных в рамках [[Быстрый старт|быстрого старта]]. В этом случае, необходимо модифицировать часть уже созданных классов. | ||
Параметры классов и их свойств описаны в следующих таблицах. | Параметры классов и их свойств описаны в следующих таблицах. Классы рекомендуется создавать в том порядке, в котором они описаны в данном задании, так как одни классы могут быть нужны для создания других. | ||
Контрагенты | = Контрагенты = | ||
{| class="wikitable" | {| class="wikitable" | ||
|+Класс Контрагент | |+Класс Контрагент | ||
Строка 121: | Строка 74: | ||
|root/iam/RootUser - базовый класс пользователей платформы Era | |root/iam/RootUser - базовый класс пользователей платформы Era | ||
|} | |} | ||
Контакты | |||
= Контакты = | |||
{| class="wikitable" | {| class="wikitable" | ||
|+Класс Контакт | |+Класс Контакт | ||
Строка 192: | Строка 146: | ||
| | | | ||
|} | |} | ||
Объекты обслуживания | |||
= Объекты обслуживания = | |||
{| class="wikitable" | {| class="wikitable" | ||
|+Класс Объект обслуживания | |+Класс Объект обслуживания | ||
Строка 245: | Строка 200: | ||
|root/iam/RootUser - базовый класс пользователей платформы Era | |root/iam/RootUser - базовый класс пользователей платформы Era | ||
|} | |} | ||
Обращения | |||
= Обращения = | |||
{| class="wikitable" | {| class="wikitable" | ||
|+Класс Обращение | |+Класс Обращение | ||
Строка 270: | Строка 226: | ||
|storageMode | |storageMode | ||
|history | |history | ||
| | | rowspan="2" |Создать класс необходимо с storageMode=category, после активации пакета, необходимо изменить режим на history и заполнить partitionPropertyName | ||
|- | |||
|partitionPropertyName | |||
|dateTime | |||
|- | |- | ||
|integrityMode | |integrityMode | ||
|sync_fast_notify | |sync_fast_notify | ||
| | | | ||
|} | |} | ||
Строка 291: | Строка 246: | ||
|Дата создания | |Дата создания | ||
|base/DateTime | |base/DateTime | ||
| | |True | ||
|defaultValue: GlobalUtils.nowDateTime() | |defaultValue: GlobalUtils.nowDateTime() | ||
|- | |- | ||
Строка 317: | Строка 272: | ||
| | | | ||
| | | | ||
|- | |||
|customerOwner | |||
|Пользователь клиента | |||
|root/iam/RootUser | |||
| | |||
|Будет использоваться для огранизации доступа клиентов к собственным обращениям | |||
|- | |- | ||
|state | |state | ||
Строка 336: | Строка 297: | ||
| | | | ||
|} | |} | ||
Комментарии к обращениям | |||
= Комментарии к обращениям = | |||
{| class="wikitable" | {| class="wikitable" | ||
|+Класс Комментарий к обращению | |+Класс Комментарий к обращению | ||
Строка 361: | Строка 323: | ||
|storageMode | |storageMode | ||
|history | |history | ||
| | | rowspan="2" |Создать класс необходимо с storageMode=category, после активации пакета, необходимо изменить режим на history и заполнить partitionPropertyName | ||
|- | |||
|partitionPropertyName | |||
|dateTime | |||
|- | |- | ||
|integrityMode | |integrityMode | ||
|sync_fast_notify | |sync_fast_notify | ||
| | | | ||
|} | |} | ||
Строка 400: | Строка 361: | ||
|Дата создания | |Дата создания | ||
|base/DateTime | |base/DateTime | ||
| | |True | ||
|defaultValue: GlobalUtils.nowDateTime() | |defaultValue: GlobalUtils.nowDateTime() | ||
|} | |} | ||
Звонки | |||
= Звонки = | |||
{| class="wikitable" | {| class="wikitable" | ||
|+Класс Звонок | |+Класс Звонок | ||
Строка 428: | Строка 390: | ||
|storageMode | |storageMode | ||
|history | |history | ||
| | | rowspan="2" |Создать класс необходимо с storageMode=category, после активации пакета, необходимо изменить режим на history и заполнить partitionPropertyName | ||
|- | |||
|partitionPropertyName | |||
|dateTime | |||
|- | |- | ||
|integrityMode | |integrityMode | ||
|sync_fast_notify | |sync_fast_notify | ||
| | | | ||
|} | |} | ||
Строка 475: | Строка 436: | ||
| | | | ||
| | | | ||
|- | |||
|dateTime | |||
|Дата звонка | |||
|base/DateTime | |||
|True | |||
|defaultValue: GlobalUtils.nowDateTime() | |||
|} | |} | ||
История изменения статусов | |||
= История изменения статусов = | |||
{| class="wikitable" | {| class="wikitable" | ||
|+Класс Изменение статуса обращения | |||
!Параметр класса | !Параметр класса | ||
!Значение параметра | !Значение параметра | ||
Строка 500: | Строка 469: | ||
|storageMode | |storageMode | ||
|history | |history | ||
| | | rowspan="2" |Создать класс необходимо с storageMode=category, после активации пакета, необходимо изменить режим на history и заполнить partitionPropertyName | ||
|- | |||
|partitionPropertyName | |||
|dateTime | |||
|- | |- | ||
|integrityMode | |integrityMode | ||
|sync_fast_notify | |sync_fast_notify | ||
| | | | ||
|} | |} | ||
{| class="wikitable" | {| class="wikitable" | ||
|+Свойства класса Изменение статуса обращения | |||
!Имя свойства | !Имя свойства | ||
!Заголовок свойства | !Заголовок свойства | ||
Строка 538: | Строка 507: | ||
|Дата создания | |Дата создания | ||
|base/DateTime | |base/DateTime | ||
| | |True | ||
|defaultValue: GlobalUtils.nowDateTime() | |defaultValue: GlobalUtils.nowDateTime() | ||
|} | |} | ||
История изменения ответственных | |||
= История изменения ответственных = | |||
{| class="wikitable" | {| class="wikitable" | ||
|+Класс Изменение ответственного по обращению | |||
!Параметр класса | !Параметр класса | ||
!Значение параметра | !Значение параметра | ||
Строка 565: | Строка 536: | ||
|storageMode | |storageMode | ||
|history | |history | ||
| | | rowspan="2" |Создать класс необходимо с storageMode=category, после активации пакета, необходимо изменить режим на history и заполнить partitionPropertyName | ||
|- | |||
|partitionPropertyName | |||
|dateTime | |||
|- | |- | ||
|integrityMode | |integrityMode | ||
|sync_fast_notify | |sync_fast_notify | ||
| | | | ||
|} | |} | ||
{| class="wikitable" | {| class="wikitable" | ||
|+Свойства класса Изменение ответственного по обращению | |||
!Имя свойства | !Имя свойства | ||
!Заголовок свойства | !Заголовок свойства | ||
Строка 603: | Строка 574: | ||
|Дата создания | |Дата создания | ||
|base/DateTime | |base/DateTime | ||
| | |True | ||
|defaultValue: GlobalUtils.nowDateTime() | |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. Настройка приложения