Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

1) Компоненты (список должен пополнятся с выходом доработок)


1.Клиентские схемы:

  • OmniChannelPage - родительская страница для всех всех страниц добавления/редактирования канала.

  • OmniChannelCss - Модуль для описания CSS стилей в новых визуальных модулях (таких как ViberChannelPage)

  • ViberChannelPage - страница добавления и редактирования канала Viber.

  • WebSiteChannelPage - страница добавления/редактирования канала WebSite (Widget Beesender).

  • InstagramChannelPage - страница добавления/редактирования канала Instagram.

  • BsOmniChatConfigurationPage - модальное окно для заполнения полей для входа в систему Creatio при первой синхронизации

P.S. У визуальных модулей присутствует свой не визуальный модуль с таким же названием, только на конце используется слово Module. а не Page. Пример: ViberChannelPage и ViberChannelModule

2.Исходный код:

  • BsOmniChatSetupService - веб-сервис, который вызывается из BsOmniChatConfigurationPage и OmniChatSection при синхронизации и работе с системными настройками.

  • BsOmniSynchronizer - класс, в котором реализована логика синхронизации с коннектором Beesender.

  • BsOmniChannelService - веб-сервис, который вызывается в ViberChannelPage при добавлении, обновлении и актуализации канала Omnichannel.

  • BsOmniChannelHandler - класс, в котором реализована вся необходимая логика для работы с каналами.

  • BsOmniMessagingService - веб-сервис, который вызывается коннектором при отправке сообщения от клиента(из мессенджера) в CRM-систему.

  • BsOmniIncomingMessageHandler - класс, в котором реализована логика создания и распределения чата на оператора.

  • BsOmniOutcomeMessageWorker - класс в котором реализована логика отправки сообщения из CRM-системы на коннектор.

  • BsOmniFileUploader - класс для обработки файлов из CRM через файловый сервис Beesender, перед отправкой на коннектор.

  • BsOmniExtensions - файл, в котором собраны все необходимые классы-расширения для имеющихся типов.

  • BsOmniEnums - файл, в котором собраны все необходимые перечисления (enums), необходимые для работы с каналами Omnichannel.

  • BsOmniHelper - файл, в котором собраны все вспомогательные классы, необходимые для работы с каналами Omnichannel (логгер, класс для работы с системными настройками и т.д.)

  • BsOmniAppEventListener - класс для маппинга необходимых интерфейсов от Terrasoft для работы с каналами Omnichannel.

  • BsOmniModels - файл, в котором собраны все необходимые модели данных, необходимые для работы каналов Omnichannel.

  • BsOmniViberIncomingMessage BsOmniIncomingMessageConverter - класс для конвертации пришедшего от коннектора сообщения в формат “MessagingMessage”, необходимый для работы логики чатов на уровне Terrasoft.

Бизнес-процессы:

  • DeletingChannelFromMsgSettingsTable - БП для удаления записи из таблицы “MsgSettings“ BsOmniMsgSettingsHandler - класс для работы с именной таблицей настроек конкретного канала BsOmni{Имя провайдера}MsgSettings.

  • BsOmniMsgSettingsExecutor - набор пользовательских типов данных для работы с BsOmni{Имя провайдера}MsgSettings, состоящий из интерфейса IBsOmniMsgSettingsExecutor и его реализаций под конкретные каналы.

  • BsOmniWebSiteHandler - класс для работы с каналом WebSite (Widget Beesender).

  • BsOmniProfileDataProvider - класс, реализующий интерфейс IProfileDataProvider от Terrasoft и предназначен для отображения данных о клиенте. Используется в BsOmniAppEventListener.

  • BsOmniAttachmentLoadWorker - класс, реализующий интерфейс IAttachmentsLoadWorker от Terrasoft и предназначен для работы с файлами. Используется в BsOmniAppEventListener.

3.Бизнес-процессы:

  • DeletingEntryFromMsgsettingsTable - БП для удаления записи из объекта “BsOmni{Имя провайдера}MsgSettings” при удалении записи из объекта “Сhannel“.

4.Объекты:

  • BsOmniLog - логгер (аналог BeesenderLog)

  • BsOmniClient - пользователь мессенджера, на основе которого создаётся контакт в системе (аналог BeesenderClient)

  • BsOmniViberMsgSettings - именной объект для настроек канала Viber.

  • BsOmniInstagramMsgSettings - именной объект конкретного мессенджера для настроек канала Instagram.

  • BsOmniWebSiteMsgSettings - именной объект для настроек канала WebSite.

  • Channel - канал, который хранит ссылку на объект из таблицы BsOmni{Имя провайдера}MsgSettings. Реализация Terrasoft.

  • ChatQueue - очереди чатов (группа операторов), в которой хранится название самой группы. Реализация Terrasoft.

  • ChatQueueOperator - оператор в конкретной очереди чатов. Реализация Terrasoft.

  • OmniChat - чат. Реализация Terrasoft.

  • ChannelProvider - конкретный провайдер канала (Viber, Telegram и т.д.), в котором должна указываться ссылка на страницу создания и модификации канала (поле “PageUrl“). Реализация Terrasoft.

  • OmnichannelMessageFile - файлы в чате. Реализация Terrasoft.

  • ChatMessages - текстовые сообщения в чате. Реализация Terrasoft.

  • OmnichannelChatStatus - статус чата. Реализация Terrasoft.

  • OperatorRoutingRules - правила распределения чатов на группу операторов. Реализация Terrasoft.

P.S. В дальнейшем список будет расширяться.

2) Инструкция по внедрению нового канала в Omnichannel

...

Для того, чтоб можно было добавлять записи в именную таблицу настроек канала, необходимо создать класс, который будет реализовывать интерфейс IBsOmniMsgSettingsExecutor. Реализацию необходимо исполнять в схеме BsOmniMsgSettingsExecutor. Шаблон названия класса:

BsOmni{Название провайдера канала}SettingsExecutor

...

  1. Dictionary<string, string> ParseChannelDataJson(JObject json) - метод для парсинга json объекта channelData, который приходит из визуального модуля страницы добавления/изменения канала. В данном методе результат парсинга записывается в Map, где ключом является название колонки в объекте, а значением непосредственно само значение атрибута из json.

  2. void SetMsgSettingsColumnsForAdding(Insert insert, Dictionary<string, string> channelData) - метод для добавления необходимых колонок в запрос на добавление записи в объект BsOmni{Имя провайдера}MsgSettings.

  3. void SetMsgSettingsColumnsForUpdating(Update update, Dictionary<string, string> channelData) - метод для добавления необходимых колонок в запрос на обновление записи в объекте BsOmni{Имя провайдера}MsgSettings.

...

P.S. В качестве примера можно взять модуль BsOmniWebSiteSettingsExecutor и делать по аналогии

...