Улучшенный портал клиента на Dynamics 365 for Marketing

1401
4 минуты
Ассоциация собственников и управляющих недвижимостью организует обучающие мероприятия для владельцев и управляющих объектами. До недавнего времени регистрация участников и продажи билетов на них были реализованы через многофункциональный портал, разработанный компанией Adxstudio Inc., а обработка заявок и анализ интереса пользователей велся сотрудниками Ассоциации в CRM-системе на базе Microsoft Dynamics 365.

Интерфейс портала Adxstudio

Старая версия портала Adxstudio

Старая версия портала Adxstudio Inc.

В ноябре 2018 года поддержка решений компании Adxstudio Inc., специализировавшейся на разработке веб-порталов, решений для интерактивного взаимодействия и решений по управлению жизненным циклом приложений для Dynamics CRM, прекратилась. Поэтому вместе с командой WaveAccess Ассоциация приняла решение о модернизации своего портала и миграции CRM-системы вместе с накопленными данными на более современную версию Dynamics CRM 365 for Marketing.

Работа над проектом началась с переноса кастомизации на новый экземпляр Dynamics. Одной из проблем, с которой столкнулись разработчики WaveAccess, стало отсутствие форм из прежней версии. Схема нового решения значительно отличалась от старой: ряд сущностей в обновленной версии отсутствовал, у некоторых значительно изменились атрибуты, появились новые отношения между сущностями:

Старый экземпляр:

  • Microsoft Dynamics 365 Version 1612 (8.2.3.247) (DB 8.2.2.2464) online
  • Adxstudio Portals Base 7.0.0086
  • Adxstudio Event Management 7.0.0012
  • Все остальные решения от AdxStudio версии 7.0

Новый экземпляр:

  • Microsoft Dynamics 365 Version 1710 (9.1.0.1864) online
  • Dynamics 365 Portals — Base Portal 9.0.12.11
  • Dynamics 365 for Marketing 1.33.1028.0
  • Event Management for Dynamics 365 1.10.1008.0

Unmanaged solutions в том виде, в котором они существовали в старом экземпляре, перенести было невозможно — слишком много сущностей было завязано на объекты, которых нет в новой схеме (Forms, Views, Entities, Attributes). В итоге новые веб-формы личного кабинета специалисты WaveAccess делали с нуля с аналогичной функциональностью. Такие возможности сервиса как регистрация на событие, отмена регистрации и оплата билетов были написаны на JavaScript. Кастомизацию переносили поэтапно, частично редактируя получившиеся миграционные решения вручную. Для миграции данных была использована универсальная платформа SyncIT и генератор скриптов, разработанные WaveAccess. С миграцией данных никаких проблем не возникло.

В Dynamics for Marketing есть большой раздел, посвященный работе с Events. Этот раздел хорошо проработан и достаточно функционален. Большинство функций подойдет многим организациям прямо из коробки или с минимальными настройками. Но в данном проекте ко всем возможностям Dynamics необходимо было добавить еще и портал.

При установке Dynamics for Marketing все необходимые пакеты (решения) для Dynamics Portal были установлены автоматически. «Из коробки» портал содержит несколько страниц для управления событиями и регистрациями. По сути, эти страницы представляют собой демонстрационное приложение, написанное на фреймворке Angular, и бэкенд в виде плагина.

Функциональность Dynamics Portal

Интерфейс Dynamics Portal

Приложение «из коробки». От его использования в данном проекте решили отказаться

Исходный код приложения Event Management доступен на портале с документацией для Dynamics for Marketing. После оценки API, существующего для управления событиями на портале (Event Management API Reference For Dynamics 365 Marketing), команда WaveAccess приняла решение не идти по пути модификации существующего веб-приложения из-за существенных ограничений в API.

Реализацию функциональности по управлению событиями и регистрации участников было решено сделать стандартными средствами портала. Беглый осмотр страниц для управления событиями на старом портале показал, что большинство страниц Event-портала из состава пакета Adxstudio Event Management 7.0 используют уже готовые aspx-страницы и User Controls.

Интерфейс Event-портала Adxstudio

В новой версии портала тоже есть возможность использовать тип Rewrite для шаблонов страниц, но возможность загрузки самих страниц отсутствует. Также нет возможности загрузить User Control на портал и использовать его потом на форме, хотя сам тип такого поведения доступен при создании Web Form Step.

Интерфейс новой версии портала Dynamics

Исходя из перечисленных ограничений, большинство возможностей старого портала было перенесено непосредственно в содержимое страниц при помощи Liquid и JavaScript. C кодом на Liquid не возникло особых проблем: данная функциональность по-прежнему поддерживается в текущей версии Dynamics Portal. Фрагменты кода, написанные на Liquid, можно использовать в шаблонах форм, сниппетах и непосредственно внутри html-контента страницы. Часть функциональности, которая была реализована в User Controls, пришлось заменить на Workflow.

Итогом проделанной работы стал полнофункциональный портал для управления событиями с возможностью регистрации и оплаты участия, реализованный на более современной версии Dynamics CRM. Все веб-формы личного кабинета (регистрация, отмена регистрации, оплата билета) были успешно мигрированы. Помимо этого, была реализована гибкая система ценообразования для некоторых групп участников в зависимости от их членства в той или иной организации. Также была настроена персонализированная система уведомлений о предстоящих событиях. Все системы портала настраиваются и управляются прямо из Dynamics for Marketing.