Дополнительные действия
AZykov (обсуждение | вклад) Нет описания правки |
Elena (обсуждение | вклад) Нет описания правки |
||
| (не показано 14 промежуточных версий 1 участника) | |||
| Строка 6: | Строка 6: | ||
В рамках данной статьи, мы пошагово создадим "заготовку" будущей системы. При создании сущностей мы не будем вдаваться в подробности. Каждый из шагов, в дальнейшем, будет разобран детально в соответствующих разделах курса. | В рамках данной статьи, мы пошагово создадим "заготовку" будущей системы. При создании сущностей мы не будем вдаваться в подробности. Каждый из шагов, в дальнейшем, будет разобран детально в соответствующих разделах курса. | ||
Такой быстрый старт, с одной стороны, позволит быстро получить промежуточный результат, с которым можно работать и реализовывать собственные задачи, а с другой стороны, совершит "обзорную экскурсию" по функциональности приложения Builder. | Такой быстрый старт, с одной стороны, позволит быстро получить промежуточный результат, с которым можно работать и реализовывать собственные задачи, а с другой стороны, совершит "обзорную экскурсию" по функциональности приложения Builder.<blockquote>Подробное описание составляющих пакета можно найти во [[Основные понятия и концепции|введении курса]].</blockquote> | ||
== Создание базовых объектов == | == Создание базовых объектов == | ||
| Строка 16: | Строка 16: | ||
2. Открыть приложение Builder | 2. Открыть приложение Builder | ||
[[Файл: | |||
[[Файл:Быстрый_старт._Приложение_Builder.png|безрамки|1079x1079пкс]] | |||
3. Создать пакет tickets | 3. Создать пакет tickets | ||
Поле dependencies оставляем пустым, в поле ''name'' указываем "tickets". | Поле dependencies оставляем пустым, в поле ''name'' указываем "tickets". | ||
[[Файл: | |||
[[Файл:Быстрый_старт._Созданный_пакет.png|безрамки|1079x1079пкс]] | |||
4. Создать в пакете tickets класс Ticket (Tickets, Заявка, Заявки) с одним строковым (base/String) полем phone (Телефон). | 4. Создать в пакете tickets класс Ticket (Tickets, Заявка, Заявки) с одним строковым (base/String) полем phone (Телефон). | ||
Параметры класса и поля необходимо заполнить в соответствии со скриншотами. | Параметры класса и поля необходимо заполнить в соответствии со скриншотами. | ||
[[Файл: | |||
[[Файл:Быстрый_старт._Класс_tickets._Общие_параметры.png|безрамки|1079x1079пкс]] | |||
5. Активировать пакет | 5. Активировать пакет | ||
[[Файл: | |||
[[Файл:Быстрый_старт._Активация_пакета.png|безрамки|1079x1079пкс]] | |||
Контроль успеха: HTTP/GET-запрос вида http://[era_fqdn]/rest/v1/model/tickets/Tickets возвращает 200 ОК [] (вместо 404 до активации пакета) | Контроль успеха: HTTP/GET-запрос вида http://[era_fqdn]/rest/v1/model/tickets/Tickets возвращает 200 ОК [] (вместо 404 до активации пакета) | ||
[[Файл:Быстрый старт. Пример успешной активации пакета.png|мини|436x436пкс]] | [[Файл:Быстрый старт. Пример успешной активации пакета.png|мини|436x436пкс]] | ||
| Строка 38: | Строка 44: | ||
Разделы Appearance и Misc изменять не требуется. | Разделы Appearance и Misc изменять не требуется. | ||
[[Файл: | |||
[[Файл:Быстрый_старт._Создание_приложения.png|безрамки|1079x1079пкс]] | |||
| Строка 44: | Строка 52: | ||
7. Переактивировать (deactivate, activate) пакет для применения изменений. | 7. Переактивировать (deactivate, activate) пакет для применения изменений. | ||
Контроль успеха: теперь пользователям, обладающим ролью tickets_user доступно приложение Менеджер заявок. | |||
Контроль успеха: в корневом приложении появилось новое приложение, в котором можно работать с заявками. Для наглядности и удобства, необходимо добавить тестовые данные. | |||
[[Файл:Быстрый_старт._Созданное_приложение.png|безрамки|1071x1071пкс]] | |||
8. Создать роль user (fullName: tickets_user), назначить эту роль приложению (в дополнение к добавленной ранее роли admin), переактивировать пакет. | |||
[[Файл:Быстрый_старт._Создание_роли.png|безрамки|1079x1079пкс]] | |||
Контроль успеха: теперь пользователям, обладающим ролью tickets_user доступно приложение Менеджер заявок. Для удобства и наглядности, необходимо обновить тестовые данные.<blockquote>Создать нового пользователя можно в приложении "Настройки", в разделе Пользователи и группы.</blockquote>[[Файл:Быстрый_старт._Создание_пользователя.png|безрамки|1079x1079пкс]] | |||
== Доработка и создание дополнительных объектов == | == Доработка и создание дополнительных объектов == | ||
9. Создать перечисление TicketState, состоящее из трех элементов: opened (Открыта, orange), inprogress (В работе, green), closed (Закрыта, darkgray) | 9. Создать перечисление TicketState, состоящее из трех элементов: opened (Открыта, orange), inprogress (В работе, green), closed (Закрыта, darkgray) | ||
[[Файл:Быстрый_старт._Создание_перечисления.png|безрамки|1057x1057пкс]] | |||
10. Добавить в класс Ticket поле state (Состояние, tickets/TicketState) | 10. Добавить в класс Ticket поле state (Состояние, tickets/TicketState) | ||
[[Файл:Быстрый_старт._Поле_state.png|безрамки|1076x1076пкс]] | |||
11. Применить (apply) изменения пакета | 11. Применить (apply) изменения пакета | ||
Контроль успеха: в таблице и карточке заявки появилось поле Состояние | Контроль успеха: в таблице и карточке заявки появилось поле Состояние. Для удобства и наглядности, необходимо обновить тестовые данные. | ||
[[Файл:Быстрый_старт._Поле_state_в_списке.png|безрамки|1077x1077пкс]] | |||
12. Создать класс ResponsibleUser (parent: base/NamedEntity, lookupLink: false) | 12. Создать класс ResponsibleUser (parent: base/NamedEntity, lookupLink: false) | ||
[[Файл:Быстрый_старт._Класс_ResponsibleUser.png|безрамки|1043x1043пкс]] | |||
13. Добавить в класс Ticket поле responsibleUser (caption: Ответственный, dataType: tickets/ResponsibleUser) | 13. Добавить в класс Ticket поле responsibleUser (caption: Ответственный, dataType: tickets/ResponsibleUser) | ||
14. Добавить в | [[Файл:Быстрый_старт._Поле_"Ответственный".png|безрамки|1079x1079пкс]] | ||
14. Добавить в toolbox приложения manager элемент управления tickets/ResponsibleUsers | |||
[[Файл:Быстрый_старт._Добавление_справочника_в_toolbox.png|безрамки|1079x1079пкс]] | |||
15. Применить изменения пакета | 15. Применить изменения пакета | ||
Контроль успеха: в приложении появился новый инструмент Ответственные, а в таблице и карточке инструмента Заявки появилось поле Ответственный. | Контроль успеха: в приложении появился новый инструмент ''Ответственные'', а в таблице и карточке инструмента Заявки появилось поле Ответственный. Для удобства и наглядности, необходимо обновить тестовые данные. | ||
[[Файл:Быстрый_старт._Поле_ответственный.png|безрамки|1081x1081пкс]] | |||
16. Добавить в класс Ticket поле dateTime { dataType: base/DateTime, required: true, defaultValue: GlobalUtils.nowDateTime() } | 16. Добавить в класс Ticket поле dateTime { dataType: base/DateTime, required: true, defaultValue: GlobalUtils.nowDateTime() } | ||
[[Файл:Быстрый_старт._Дата_и_значение_по-умолчанию.png|безрамки|1078x1078пкс]] | |||
17. Задать сортировку для класса Ticket: dataOptions: | |||
{defaultOrder: [{ dateTime: desc }] } | |||
[[Файл:Быстрый_старт._Параметры_сортировки.png|безрамки|1081x1081пкс]] | |||
16. Изменить тип хранилища класса Ticket: { storageMode: history, partitionPropertyName: dateTime } | 16. Изменить тип хранилища класса Ticket: { storageMode: history, partitionPropertyName: dateTime } | ||
Режим хранения History используется для хранения данных объекта в реляционной базе данных. | |||
[[Файл:Быстрый_старт._Тип_хранилища.png|безрамки|1073x1073пкс]] | |||
17. Применить изменения пакета | 17. Применить изменения пакета | ||
Контроль успеха: в таблице «Заявки» появился фильтр с выбором периода | Контроль успеха: в таблице «Заявки» появился фильтр с выбором периода. Для удобства и наглядности, необходимо обновить тестовые данные. | ||
[[Файл:Быстрый_старт._Доступный_фильтр.png|безрамки|1080x1080пкс]] | |||
18. Разрешить экспорт таблицы для класса Ticket: UI: tableControlOptions.allowExport: true | 18. Разрешить экспорт таблицы для класса Ticket: UI: tableControlOptions.allowExport: true | ||
| Строка 83: | Строка 126: | ||
Контроль успеха: в таблице «Заявки» появилась кнопка «Экспорт» для выгрузки содержимого таблицы в Excel и CSV | Контроль успеха: в таблице «Заявки» появилась кнопка «Экспорт» для выгрузки содержимого таблицы в Excel и CSV | ||
[[Файл:Быстрый_старт._Экспорт_таблицы.png|безрамки|1078x1078пкс]] | |||
== Использование приложения в контакт-центре == | == Использование приложения в контакт-центре == | ||
<blockquote>Следующие шаги являются опциональными в рамках данного курса, однако позволяют получить опыт встраивания разрабатываемых приложений в процесс обработки звонков. | <blockquote>Следующие шаги являются опциональными в рамках данного курса, однако позволяют получить опыт встраивания разрабатываемых приложений в процесс обработки звонков. Необходимо выполнить, если в вашей инсталляции платформы присутствует функционал контакт-центра. | ||
Детальные курсы по функционалу [[:Категория:Курс IP АТС|IP АТС]] и [[:Категория:Курс контакт-центр|контакт-центра]] можно найти по ссылкам. | |||
Функционалу IVR-сценариев, посвещена [[Сценарии IVR|отдельная статья]].</blockquote>20. Создать в приложении Администратор КЦ очередь с кодом tickets, добавить в нее оператора и указать url /ui/tickets/Ticket?mode=add&values={"Телефон":"[Телефон]"}. | |||
[[Файл:Быстрый_старт._Создание_очереди.png|безрамки|1084x1084пкс]] | |||
21. Создать в приложении Настройки сценарий IVR с переключением на очередь (компонент Внешнее управление, acdCode: tickets, callContext.Телефон: remotenum()) | |||
[[Файл:Быстрый_старт._Создание_IVR-сценария.png|безрамки|1081x1081пкс]] | |||
Контроль успеха: при звонке на сценарий звонок попадает в очередь и распределяется на свободных операторов очереди в статусе Готов. В зависимости от открытого приложения (Оператор КЦ или Пользователь КЦ) карточка будет открываться автоматически либо вручную (при нажатии на кнопку на главной панели инструментов), при этом поле Телефон будет заполняться автоматически. | Контроль успеха: при звонке на сценарий звонок попадает в очередь и распределяется на свободных операторов очереди в статусе Готов. В зависимости от открытого приложения (Оператор КЦ или Пользователь КЦ) карточка будет открываться автоматически либо вручную (при нажатии на кнопку на главной панели инструментов), при этом поле Телефон будет заполняться автоматически. | ||
Типовые варианты настройки внешних и внутренних карточек описаны во встроенной минидокументации в приложении Администратор контакт-центра: | Типовые варианты настройки внешних и внутренних карточек описаны во встроенной минидокументации в приложении Администратор контакт-центра: | ||
[[Файл:Быстрый_старт._Справка_КЦ.png|безрамки|1083x1083пкс]] | |||
Следующая статья курса: [[Хранение данных. Классы]] | |||
Предыдущая статья курса: [[Задание 0. Подготовка стенда и постановка задачи]] | |||
__ОБЯЗАТЕЛЬНОЕ_ОГЛАВЛЕНИЕ__ | __ОБЯЗАТЕЛЬНОЕ_ОГЛАВЛЕНИЕ__ | ||
[[Категория:Курс Разработка приложений]] | |||
Текущая версия от 12:38, 17 марта 2025
Предыдущая статья курса: Задание 0. Подготовка стенда и постановка задачи
Введение
В рамках данной статьи, мы пошагово создадим "заготовку" будущей системы. При создании сущностей мы не будем вдаваться в подробности. Каждый из шагов, в дальнейшем, будет разобран детально в соответствующих разделах курса.
Такой быстрый старт, с одной стороны, позволит быстро получить промежуточный результат, с которым можно работать и реализовывать собственные задачи, а с другой стороны, совершит "обзорную экскурсию" по функциональности приложения Builder.
Подробное описание составляющих пакета можно найти во введении курса.
Создание базовых объектов
Рассмотрим пошаговый процесс создания простейшей информационной системы для учета заявок и ее интеграции с контакт-центром (автоматическое открытие карточки заявки при входящем звонке).
1. Развернуть продуктовый слой.
Контроль успеха: не возникло ошибок (красных сообщений в консоли), через минуту в корневом приложении домена появился ряд приложений колл-центра и приложение Builder
2. Открыть приложение Builder
3. Создать пакет tickets
Поле dependencies оставляем пустым, в поле name указываем "tickets".
4. Создать в пакете tickets класс Ticket (Tickets, Заявка, Заявки) с одним строковым (base/String) полем phone (Телефон).
Параметры класса и поля необходимо заполнить в соответствии со скриншотами.
5. Активировать пакет
Контроль успеха: HTTP/GET-запрос вида http://[era_fqdn]/rest/v1/model/tickets/Tickets возвращает 200 ОК [] (вместо 404 до активации пакета)

6. Создать приложение manager (Менеджер заявок), разрешить приложение для роли admin (в поле Roles, раздела Behaviour). На вкладке toolbox добавить элемент управления элемента управления tickets/Tickets (он был сгенерирован автоматически при создании класса).
Разделы Appearance и Misc изменять не требуется.
7. Переактивировать (deactivate, activate) пакет для применения изменений.
Контроль успеха: в корневом приложении появилось новое приложение, в котором можно работать с заявками. Для наглядности и удобства, необходимо добавить тестовые данные.
8. Создать роль user (fullName: tickets_user), назначить эту роль приложению (в дополнение к добавленной ранее роли admin), переактивировать пакет.
Контроль успеха: теперь пользователям, обладающим ролью tickets_user доступно приложение Менеджер заявок. Для удобства и наглядности, необходимо обновить тестовые данные.
Создать нового пользователя можно в приложении "Настройки", в разделе Пользователи и группы.
Доработка и создание дополнительных объектов
9. Создать перечисление TicketState, состоящее из трех элементов: opened (Открыта, orange), inprogress (В работе, green), closed (Закрыта, darkgray)
10. Добавить в класс Ticket поле state (Состояние, tickets/TicketState)
11. Применить (apply) изменения пакета
Контроль успеха: в таблице и карточке заявки появилось поле Состояние. Для удобства и наглядности, необходимо обновить тестовые данные.
12. Создать класс ResponsibleUser (parent: base/NamedEntity, lookupLink: false)
13. Добавить в класс Ticket поле responsibleUser (caption: Ответственный, dataType: tickets/ResponsibleUser)
14. Добавить в toolbox приложения manager элемент управления tickets/ResponsibleUsers
15. Применить изменения пакета
Контроль успеха: в приложении появился новый инструмент Ответственные, а в таблице и карточке инструмента Заявки появилось поле Ответственный. Для удобства и наглядности, необходимо обновить тестовые данные.
16. Добавить в класс Ticket поле dateTime { dataType: base/DateTime, required: true, defaultValue: GlobalUtils.nowDateTime() }
17. Задать сортировку для класса Ticket: dataOptions:
{defaultOrder: [{ dateTime: desc }] }
16. Изменить тип хранилища класса Ticket: { storageMode: history, partitionPropertyName: dateTime }
Режим хранения History используется для хранения данных объекта в реляционной базе данных.
17. Применить изменения пакета
Контроль успеха: в таблице «Заявки» появился фильтр с выбором периода. Для удобства и наглядности, необходимо обновить тестовые данные.
18. Разрешить экспорт таблицы для класса Ticket: UI: tableControlOptions.allowExport: true
19. Применить изменения пакета
Контроль успеха: в таблице «Заявки» появилась кнопка «Экспорт» для выгрузки содержимого таблицы в Excel и CSV
Использование приложения в контакт-центре
Следующие шаги являются опциональными в рамках данного курса, однако позволяют получить опыт встраивания разрабатываемых приложений в процесс обработки звонков. Необходимо выполнить, если в вашей инсталляции платформы присутствует функционал контакт-центра.
Детальные курсы по функционалу IP АТС и контакт-центра можно найти по ссылкам.
Функционалу IVR-сценариев, посвещена отдельная статья.
20. Создать в приложении Администратор КЦ очередь с кодом tickets, добавить в нее оператора и указать url /ui/tickets/Ticket?mode=add&values={"Телефон":"[Телефон]"}.
21. Создать в приложении Настройки сценарий IVR с переключением на очередь (компонент Внешнее управление, acdCode: tickets, callContext.Телефон: remotenum())
Контроль успеха: при звонке на сценарий звонок попадает в очередь и распределяется на свободных операторов очереди в статусе Готов. В зависимости от открытого приложения (Оператор КЦ или Пользователь КЦ) карточка будет открываться автоматически либо вручную (при нажатии на кнопку на главной панели инструментов), при этом поле Телефон будет заполняться автоматически.
Типовые варианты настройки внешних и внутренних карточек описаны во встроенной минидокументации в приложении Администратор контакт-центра:
Следующая статья курса: Хранение данных. Классы
Предыдущая статья курса: Задание 0. Подготовка стенда и постановка задачи