Microsoft Dynamics CRM — Обзор
Управление взаимоотношениями с клиентами (CRM) — это система управления взаимодействиями компании с текущими и будущими клиентами. Часто это связано с использованием технологий для организации, автоматизации и синхронизации продаж, маркетинга, обслуживания клиентов и технической поддержки. CRM может помочь сократить расходы и повысить прибыльность, организуя и автоматизируя бизнес-процессы, которые способствуют удовлетворенности и лояльности клиентов.
Microsoft Dynamics CRM
Microsoft Dynamics CRM — это пакет программного обеспечения для управления взаимоотношениями с клиентами, разработанный Microsoft и направленный на улучшение взаимоотношений с клиентами для любой организации. Изначально продукт ориентирован в основном на секторы продаж, маркетинга и обслуживания клиентов, хотя Microsoft продвигает Dynamics CRM в качестве платформы XRM и поощряет партнеров использовать свою проприетарную (на основе .NET) инфраструктуру для ее настройки. В последние годы она также выросла как платформа аналитики, основанная на CRM.
Решение CRM можно использовать для повышения эффективности продаж и эффективности маркетинга для организации, управления всей цепочкой поддержки клиентов, а также для предоставления социальной информации, бизнес-аналитики и множества других готовых функций и функций. Как продукт, Microsoft Dynamics CRM также предлагает полную мобильную поддержку для использования приложений CRM на мобильных телефонах и планшетах.
На момент написания данного руководства последняя версия CRM — CRM 2016. Однако в этом руководстве мы будем использовать версию CRM 2015 Online, поскольку она является последней стабильной версией, а также часто используемой во многих организациях. Тем не менее, даже если вы используете какие-либо другие версии CRM, все концепции в этом учебнике все равно остаются в силе.
Предложения продуктов
Microsoft Dynamics CRM предлагается в двух категориях —
CRM Online
CRM Online — это облачное предложение Microsoft Dynamics CRM, в котором все серверные процессы (такие как серверы приложений, установки, развертывания, базы данных, лицензирование и т. Д.) Управляются на серверах Microsoft. CRM Online — это предложение на основе подписки, которое предпочтительнее для организаций, которые могут не захотеть управлять всеми техническими аспектами, связанными с внедрением CRM. Вы можете начать настройку системы за несколько дней (не недель, месяцев или лет) и получить доступ к ней через Интернет через браузер.
CRM On-Premise
CRM on-premise — это более специализированное и надежное предложение Microsoft Dynamics CRM, где приложение CRM и базы данных будут развернуты на ваших серверах. Это предложение позволяет вам контролировать все ваши базы данных, настройки, развертывания, резервные копии, лицензирование и другие настройки сети и оборудования. Как правило, организации, которые хотят использовать настраиваемое решение CRM, предпочитают локальное развертывание, поскольку оно предлагает лучшие возможности интеграции и настройки.
С функциональной точки зрения оба предложения предлагают схожие функции; тем не менее, они значительно отличаются с точки зрения реализации. Различия сведены в следующую таблицу.
CRM Online | CRM On-Premise |
---|---|
Это облачное решение, предоставленное Microsoft, в котором все серверы и базы данных управляются Microsoft. | Это локальное решение, предоставленное Microsoft, в котором серверы и базы данных управляются заказчиком. |
Вы можете начать работу с онлайн-предложением в течение нескольких дней. Вы платите за пользователей и использовали пространство на ходу. | Настройка локального предложения требует технических навыков, а также достаточного времени для настройки экземпляра CRM и его запуска. |
Он поддерживает относительно меньше настроек и расширений. | Он поддерживает относительно больше настроек и расширений. |
CRM Online не дает возможности выполнять резервное копирование и восстановление данных вручную, поскольку база данных размещается на серверах Microsoft. Тем не менее, Microsoft выполняет ежедневное резервное копирование базы данных. | CRM на месте дает полную возможность управлять вашей базой данных. |
CRM Online имеет различные планы, основанные на ограничениях хранения данных, таких как 5 ГБ, 20 ГБ и т. Д. | CRM on-premise не имеет таких ограничений на размер хранилища, так как данные существуют на ваших собственных серверах. |
CRM Online предоставляет встроенные возможности таких функций, как понимание, социальное прослушивание, аналитика и т. Д. | CRM on-premise имеет дополнительные расходы на эти функции. |
CRM Online поддерживает автоматическое обновление до будущей версии. | Локальные обновления CRM должны быть установлены администратором. |
Доступ к CRM
Доступ к Microsoft Dynamics CRM можно получить с помощью любого из следующих параметров:
- браузер
- Мобильные телефоны и планшеты
- прогноз
Конкуренты продукции
Microsoft Dynamics CRM, несомненно, является одним из лучших продуктов в области CRM. Однако ниже приведены другие продукты, которые конкурируют с Microsoft Dynamics CRM.
- Salesforce.com
- оракул
- SAP
- Sage CRM
- Сахар CRM
- NetSuite
Версии продукта
Microsoft Dynamics CRM выросла за эти годы, начиная с версии 1.0 в 2003 году. Последняя версия (на момент написания этой статьи) — 2015 год. Ниже приводится хронологический список версий выпуска:
- Microsoft CRM 1.0
- Microsoft CRM 1.2
- Microsoft Dynamics CRM 3.0
- Microsoft Dynamics CRM 4.0
- Microsoft Dynamics CRM 2011
- Microsoft Dynamics CRM 2013
- Microsoft Dynamics CRM 2015
- Microsoft Dynamics CRM 2016
Microsoft Dynamics CRM — среда
Давайте начнем с настройки нашей среды CRM. Мы будем использовать онлайн-версию CRM 2015, поскольку онлайн-версия предоставляет бесплатный месячный пробный доступ. Таким образом, вам не нужно приобретать лицензию для изучения CRM.
Примечание. Поскольку Microsoft Dynamics CRM является растущим продуктом, возможно, что к моменту его изучения у вас будет более новая версия продукта. В этом случае приложение может выглядеть не так, как на скриншотах этого руководства. Тем не менее, основные концепции продукта остаются прежними. Внешний вид и навигация продукта могут измениться, однако в большинстве случаев вы сможете легко перемещаться и находить необходимые параметры.
Настройка учетной записи Microsoft Dynamics CRM Online
Шаг 1 — Перейдите по следующему URL —
https://www.microsoft.com/en-us/dynamics365/home
Если в будущем вы не увидите опции пробной версии по этой ссылке, просто попробуйте поискать «Бесплатная пробная версия Microsoft Dynamics CRM» в Google.
Шаг 2 — Нажмите кнопку Попробовать бесплатно. Это запустит трехэтапный процесс регистрации, как показано на следующем снимке экрана. На шаге 1 трехступенчатой регистрации заполните обязательные данные, такие как имя, адрес электронной почты и язык.
Шаг 3 — Нажмите кнопку Попробовать бесплатно. Это запустит трехэтапный процесс регистрации, как показано на следующем снимке экрана. На шаге 1 трехступенчатой регистрации заполните обязательные данные, такие как имя, адрес электронной почты и язык.
Шаг 4. На шаге 3 трехэтапной регистрации Microsoft проверит указанный вами номер мобильного телефона. Для этого вы можете указать свой номер мобильного телефона и нажать «СМС». Затем он отправит OTP на ваш мобильный телефон, используя который вы сможете продолжить настройку.
Шаг 5 — Ваш идентификатор пользователя Office 365 будет создан. Вы можете сохранить эту информацию ID пользователя для последующего доступа.
После настройки учетной записи она откроет вашу панель CRM, которая будет выглядеть примерно так:
Просто еще раз подчеркну, что скриншоты выше могут измениться в будущих версиях, однако настройка среды будет довольно простым процессом.
Загрузка CRM SDK
Пакет разработки программного обеспечения (SDK) Microsoft Dynamics CRM содержит важные примеры кода, включая код на стороне сервера, код на стороне клиента, расширения, плагины, веб-службы, рабочие процессы, модель безопасности и т. Д. По сути, SDK содержит все ресурсы для разработки, которые вам понадобятся начать работу с CRM. Планируете ли вы создать новый проект плагина или проект веб-служб для CRM, SDK предоставляет базовую архитектуру и примеры, начиная от простого до продвинутого уровня, чтобы помочь вам начать работу. Теперь мы рассмотрим шаги для загрузки и установки SDK.
Шаг 1. Каждая версия Microsoft Dynamics CRM поставляется с собственной версией SDK. Лучший способ получить правильную версию SDK — это поиск в Google соответствующей версии CRM. Например, если ваша версия CRM 2015 года, попробуйте выполнить поиск «Microsoft Dynamics CRM 2015 SDK».
Шаг 2 — После загрузки запустите программу установки exe. Нажмите Продолжить.
Шаг 3 — Он попросит вас выбрать место, куда следует извлечь SDK. Выберите любое подходящее место, где вы хотите сохранить эталонный SDK.
Шаг 4 — Откройте папку, в которую вы извлекли. Вы можете получить доступ ко всему содержимому SDK отсюда.
Заключение
В этой главе мы настроили нашу среду, создав учетную запись CRM Online. Затем мы загрузили CRM SDK, который будет использоваться в последующих главах этого руководства. Обязательно запишите учетные данные, с помощью которых вы настроили учетную запись, так как они понадобятся вам при следующем входе в систему.
Функциональные модули
Вся Microsoft Dynamics CRM разработана на основе следующих функциональных модулей.
- Продажи
- маркетинг
- Управление Сервисом
Эти функциональные модули часто называют рабочими зонами .
Понимание функциональных модулей CRM
Все приложение CRM разделено функционально для разных типов пользователей и групп. Следовательно, если организация использует CRM для управления своими процессами, пользователи из отдела продаж будут использовать функции, входящие в модуль продаж, в то время как пользователи из группы маркетинга будут использовать функции, входящие в модуль маркетинга.
Все эти три функциональных модуля объединяются, чтобы управлять всем жизненным циклом приобретения нового клиента (маркетинг), продажи им услуг (продажи) и обслуживания существующих клиентов (управление службами).
Чтобы лучше понять этот поток, рассмотрим банк, который продает кредитные карты своим клиентам. Типичный жизненный цикл продажи кредитной карты клиенту будет следующим. На каждом этапе этого жизненного цикла вы увидите, как модули Sales, Marketing и Service выполняют свою роль.
Продажи и маркетинг — руководитель офиса колл-центра банка получает данные потенциальных клиентов; часто называют Leads в CRM. Эти лиды фиксируются в системе CRM с помощью маркетинговых кампаний, продаж, рефералов и т. Д.
Продажи — руководитель колл-центра связывается с этими потенциальными клиентами либо по телефону, электронной почте и т. Д. Если клиент заинтересован в предложении кредитной карты, запись о потенциальной возможности будет преобразована в запись о возможностях (выигранная потенциальная возможность).
Услуга — Как только клиент становится частью системы, компания будет помогать ему / ей с платежами, выставлением счетов, возвратом средств и т. Д. Когда у клиента возникают какие-либо вопросы или проблемы, они звонят в колл-центр и сообщают о происшествиях. Исполнительный орган примет решение по делу, чтобы предоставить клиенту качественный сервис. Эти задачи относятся к управлению сервисами CRM.
Навигация по рабочим областям CRM
Шаг 1 — Откройте домашнюю страницу CRM.
Шаг 2. По умолчанию вы увидите рабочую область «Продажи» в выбранном виде.
Шаг 3 — Чтобы изменить рабочую область, выберите параметр Показать рабочие области. Вы увидите варианты выбора продаж, обслуживания и маркетинга.
Шаг 4 — Нажмите Продажа. Это покажет вам все объекты, относящиеся к продажам, такие как учетные записи, контакты, потенциальные клиенты, возможности, конкуренты и т. Д. Каждая из этих организаций классифицируется по бизнес-процессу, таким как «Моя работа», «Клиенты», «Продажи», «Обеспечение» и т. Д.
Шаг 5. Аналогично, если вы щелкнете по рабочей области Маркетинг, вы увидите все объекты, связанные с бизнес-функциями Маркетинга.
Модуль продаж
Модуль продаж CRM предназначен для управления жизненным циклом нового клиента. Модуль продаж состоит из следующих подмодулей —
Ведет — представляет человека или организацию, которая может стать потенциальным клиентом компании в будущем. Это первый шаг к привлечению потенциального клиента в систему.
Возможности — Представляет потенциальную продажу клиенту. Как только Лид проявляет интерес к предложению, он превращается в Возможность. Возможность будет либо выиграна, либо потеряна.
Счета — представляет компанию, с которой организация имеет отношения. Как только возможность выигрывает, она конвертируется в учетную запись или контакты.
Контакты — представляет человека или любого человека, с которым организация имеет отношения. В основном эти контакты являются клиентами организаций (например, все клиенты кредитных карт банка). Как только возможность выигрывает, она конвертируется в учетную запись или контакты.
Конкуренты — управляет всеми конкурентами рынка организации.
Продукты — Управляет всеми продуктами, предлагаемыми организацией своим клиентам (например, все планы кредитных карт).
Котировки — официальное предложение для продуктов или услуг, предлагаемых по определенным ценам, отправляемое потенциальному клиенту (например, ежегодная оценка определенного плана кредитной карты, отправляемого клиенту).
Заказы — предложение, которое получает заказчик, превращается в заказ (например, из всех планов, которые предлагает вам организация, вы можете перейти на 6-месячную подписку).
Счета- фактуры. Счет-фактура создает счет-фактуру.
Маркетинговый модуль
Маркетинговый модуль CRM предназначен для управления всем процессом маркетинга организации для существующих и потенциальных клиентов. Маркетинговый модуль состоит из следующих подмодулей:
Маркетинговые списки. Предоставляет возможность группировать ваши контакты, учетные записи и потенциальных клиентов и взаимодействовать с ними, отправляя рекламные электронные письма, сведения о событиях, информационные бюллетени и другие обновления, относящиеся к целевым клиентам. Вы можете определить критерии для создания своих маркетинговых списков (например, контакты в возрасте от 25 до 35 лет).
Кампании. Кампании предназначены для измерения эффективности и достижения определенного результата, такого как внедрение нового продукта или увеличение доли рынка, и могут включать различные каналы связи, такие как электронная почта, реклама в газетах, реклама на YouTube и т. Д.
Быстрые Кампании — Быстрая Кампания похожа на Кампанию, однако она может быть связана только с одним видом деятельности.
Все вышеперечисленные маркетинговые модули работают в тесной координации с модулем продаж.
Модуль управления сервисом
Модуль управления сервисами CRM предназначен для фокусирования, управления и отслеживания операций по обслуживанию клиентов в организации, таких как поддержка сервисов, основанных на инцидентах, поддержка клиентов с помощью планирования услуг и т. Д.
Модуль Service Management охватывает следующие подмодули —
-
Случаи (Инциденты) — Поддерживает любые запросы, проблемы или жалобы клиентов, которые отслеживаются через инциденты / случаи. Дело следует за различными этапами процесса разрешения проблемы, а затем, наконец, решается и закрывается.
-
База знаний — поддерживает главный репозиторий для всех общих вопросов и ответов, которые часто задает клиент.
-
Контракты — контракты работают с делами с указанием всех активных контрактов, которые имеет клиент.
-
Ресурсы / группы ресурсов — Представляет людей, инструменты, помещения или части оборудования, которые используются для предоставления услуги. Эти ресурсы могут быть использованы для решения конкретной проблемы клиента.
-
Услуги — Представляет все услуги, которые организация предлагает клиентам.
-
Сервисный календарь — используется для планирования времени работы и расписаний пользователей, которые работают в организации.
Случаи (Инциденты) — Поддерживает любые запросы, проблемы или жалобы клиентов, которые отслеживаются через инциденты / случаи. Дело следует за различными этапами процесса разрешения проблемы, а затем, наконец, решается и закрывается.
База знаний — поддерживает главный репозиторий для всех общих вопросов и ответов, которые часто задает клиент.
Контракты — контракты работают с делами с указанием всех активных контрактов, которые имеет клиент.
Ресурсы / группы ресурсов — Представляет людей, инструменты, помещения или части оборудования, которые используются для предоставления услуги. Эти ресурсы могут быть использованы для решения конкретной проблемы клиента.
Услуги — Представляет все услуги, которые организация предлагает клиентам.
Сервисный календарь — используется для планирования времени работы и расписаний пользователей, которые работают в организации.
Управление деятельностью
Все модули, описанные выше, используют модуль управления действиями CRM. Активность представляет собой любой вид взаимодействия с клиентом, такой как телефонный звонок, электронная почта, письмо и т. Д. Эти действия могут быть связаны с любой из ранее описанных сущностей, таких как учетная запись, контакт, лидерство, дело и т. Д. По умолчанию CRM обеспечивает следующие виды деятельности «из коробки» —
- Телефонный звонок
- Эл. адрес
- задача
- Деловое свидание, встреча
- Повторяющаяся встреча
- Письмо
- факс
- Ответ кампании
- Кампания
- Сервисная деятельность
- Пользовательские Действия
Заключение
В этой главе мы узнали о трех основных модулях CRM — продажах, маркетинге и управлении услугами. Мы поняли, как организованы рабочие области в CRM и как работает весь жизненный цикл организации CRM. Мы также рассмотрели модуль управления деятельностью CRM, который позволяет создавать операции взаимодействия с клиентами по телефону, электронной почте, факсу и другим видам.
Объекты и записи
Теперь, когда у нас есть функциональный обзор всех модулей CRM, давайте узнаем и поймем сущности и формы в CRM.
Что такое сущность?
Сущность используется для моделирования и управления бизнес-данными в CRM. Контакты, Случаи, Учетные записи, Лиды, Возможности, Действия и т. Д. — все это объекты, которые содержат записи данных. Концептуально сущность CRM эквивалентна таблице базы данных. Например, сущность «Контакты» будет содержать записи «Контакты», сущность «Случаи» будет содержать записи «Случаи» и т. Д.
Вы можете иметь как готовые сущности (которые поставляются по умолчанию с CRM), так и настраиваемые сущности (которые можно создавать с настройкой). Например, предположим, что вы сохраняете данные книг, которые читали ваши клиенты. Для этого вы будете хранить данные о клиентах, используя готовую сущность «Контакты», но где вы будете хранить данные о книгах? У вас нет объекта, который может хранить данные для книг. В таких сценариях вы создадите новый пользовательский объект с именем «Книги» и свяжете его с существующим объектом «Контакты».
В этом руководстве давайте рассмотрим пример хранения работодателей и работников в CRM. Принимая этот пример во внимание, из коробки CRM предоставляет контактную сущность, в которой вы в идеале можете хранить всех своих сотрудников. Он также предоставляет учетную запись, в которой вы можете хранить всех своих работодателей. Но ради изучения сущностей мы создадим новую пользовательскую сущность под названием « Работодатель» (а не будем использовать существующую сущность «Учетная запись»).
Создание новой сущности
Шаг 1 — Нажмите верхнюю кнопку ленты, а затем опцию « Настройки» . Нажмите « Настройки» в разделе «Настройки» (см. Следующий снимок экрана).
Шаг 2 — Теперь нажмите «Настроить систему».
Это откроет окно Решение по умолчанию. Вы узнаете больше о CRM-решениях в следующих главах, но сейчас вы будете использовать CRM-решение по умолчанию.
Шаг 3 — Разверните опцию Entities на левой панели.
Шаг 4 — Теперь нажмите New → Entity.
Шаг 5 — В форме сущности введите отображаемое имя в качестве работодателя и PluralName в качестве работодателя. В разделе «Области, в которых отображается этот объект», выберите «Продажи, сервис и маркетинг». При выборе этих параметров будет отображаться вновь созданный объект на вкладках «Продажи», «Сервис» и «Маркетинг» CRM.
Шаг 6 — Нажмите на значок Сохранить и закрыть. Это создаст новую сущность в базе данных CRM за кулисами.
Шаг 7 — В родительском окне Решение по умолчанию вы увидите только что созданную сущность Работодателя.
Шаг 8 — Нажмите «Опубликовать все настройки» на верхней панели ленты. Это опубликует (или подтвердит) все изменения, которые мы сделали до сих пор. Вы можете закрыть это окно, нажав Сохранить и закрыть.
Создание записей
CRM — это управление ценными данными в вашей системе. В этом разделе мы узнаем, как создавать, открывать, читать и удалять записи в CRM. Мы продолжим работу с работодателем, который мы создали в предыдущей главе.
Шаг 1 — Перейдите к сетке записей сущности Работодатель через Показать рабочие области → Продажи → Расширения → Работодатели.
Шаг 2 — Нажмите значок «Новый».
Откроется новая форма работодателя по умолчанию. Вы можете видеть, что в этой форме по умолчанию есть только одно редактируемое поле Имя. Введите Employer 1 в поле Имя. Нажмите Сохранить и закрыть.
Шаг 3 — В представлении « Активные работодатели» вы можете увидеть только что созданную запись работодателя.
Доступ к записям
Чтобы получить доступ к уже созданным записям в CRM, перейдите на страницу этой сущности. В нашем случае перейдите к Показать рабочие области → Продажи → Расширения → Работодатели. Вы увидите список записей, присутствующих там в сетке. Нажмите на любую запись работодателя, чтобы получить к ней доступ.
Обновление записей
После того, как у вас есть открытая запись, вы можете просто редактировать любые детали в форме. По умолчанию CRM 2015 поставляется с опцией автосохранения, которая сохраняет любые изменения, внесенные в форму, через 30 секунд после изменения. Кроме того, вы можете нажать Ctrl + S.
Если вы хотите отключить функцию автосохранения, выберите «Настройки» → «Администрирование» → «Системные настройки» → «Включить автосохранение для всех форм» и выберите «Нет».
Удаление записей
Шаг 1 — Выберите одну или несколько записей, которые вы хотите удалить, и нажмите кнопку Удалить .
Шаг 2 — Подтвердите удаление записей, нажав Удалить .
Заключение
Как видно из приведенного выше примера, форма работодателя по умолчанию имеет только одно поле. Однако в реальных сценариях у вас будет много настраиваемых полей в форме. Например, если вы посмотрите на примерную запись контакта (которая является готовой сущностью CRM), в ней будет много полей для хранения контактной информации, такой как полное имя, электронная почта, телефон, адрес, случаи и т. Д.
В следующих главах вы узнаете, как редактировать эту форму по умолчанию и добавлять в нее различные типы полей.
Microsoft Dynamics CRM — поля
Прежде чем вы узнаете, как добавлять настраиваемые поля в формы CRM, давайте посмотрим, какие типы полей данных поддерживаются CRM.
Типы полей
В готовом виде CRM предоставляет 11 типов полей данных, которые можно размещать в формах —
- Одна строка текста
- Набор опций (выпадающий)
- Два варианта (переключатель)
- Образ
- Целое число
- Число с плавающей точкой
- Десятичное число
- валюта
- Несколько строк текста
- Дата и время
- Уважать
В следующей таблице перечислены каждый с кратким описанием.
Sr.No | Тип поля и описание |
---|---|
1 |
Одна строка текста В этом поле хранится до 4000 символов текста. Вы также можете указать один из следующих форматов: электронная почта, текст, текстовая область, URL, символ тикера и телефон. Вы можете установить максимальную длину и режим IME для каждого из них. |
2 |
Набор опций (выпадающий) В этом поле хранится набор параметров, каждый из которых имеет числовое значение и метку. Другими словами, это раскрывающееся поле в CRM. Вы также можете определить наборы глобальных опций, которые можно использовать в нескольких формах. |
3 |
Два варианта (переключатель) Это поле предоставляет пользователю два варианта выбора (0 или 1). Другими словами, это поле переключателя. |
4 |
Образ Когда у объекта есть поле изображения, его можно настроить на отображение изображения для записи в приложении. |
5 |
Целое число В этом поле хранятся целые значения от -2 147 483 648 до 2 147 483 647. Он поддерживает указанные форматы: «Нет», «Продолжительность», «Часовой пояс» и «Язык». Вы также можете установить минимальное и максимальное значения. |
6 |
Число с плавающей точкой В этом поле хранятся числа с плавающей запятой с точностью до 5 десятичных знаков от 0,00 до 1 000 000 000,00. Вы также можете установить минимальное и максимальное значения. |
7 |
Десятичное число В этом поле хранится до 10 десятичных знаков со значениями от -100 000 000 000,00 до 100 000 000 000,00. |
8 |
валюта Это поле используется для хранения любых значений валюты в диапазоне от 922 337 203 685 477,0000 до 922 337 203 685 477,0000. Вы также можете указать Точность как Десятичная Цена, Точность Валюты или любое значение от 0 до 4. |
9 |
Несколько строк текста Это текстовое поле с прокруткой. Вы можете установить максимальное количество символов для этого поля. |
10 |
Дата и время Это поле используется для хранения данных, относящихся к дате, в CRM с двумя поддерживаемыми форматами: только дата и дата и время. Вы также можете указать поведение как Локальный пользователь, Только дата и Независимый от часового пояса. |
11 |
Уважать Вы можете создать поле поиска, используя отношение сущностей, которое уже создано, но еще не используется с другим полем поиска. Если вы создаете поле поиска в форме объекта, связь создается автоматически. Поле поиска создается как поле отношений. |
Одна строка текста
В этом поле хранится до 4000 символов текста. Вы также можете указать один из следующих форматов: электронная почта, текст, текстовая область, URL, символ тикера и телефон. Вы можете установить максимальную длину и режим IME для каждого из них.
Набор опций (выпадающий)
В этом поле хранится набор параметров, каждый из которых имеет числовое значение и метку. Другими словами, это раскрывающееся поле в CRM. Вы также можете определить наборы глобальных опций, которые можно использовать в нескольких формах.
Два варианта (переключатель)
Это поле предоставляет пользователю два варианта выбора (0 или 1). Другими словами, это поле переключателя.
Образ
Когда у объекта есть поле изображения, его можно настроить на отображение изображения для записи в приложении.
Целое число
В этом поле хранятся целые значения от -2 147 483 648 до 2 147 483 647. Он поддерживает указанные форматы: «Нет», «Продолжительность», «Часовой пояс» и «Язык». Вы также можете установить минимальное и максимальное значения.
Число с плавающей точкой
В этом поле хранятся числа с плавающей запятой с точностью до 5 десятичных знаков от 0,00 до 1 000 000 000,00. Вы также можете установить минимальное и максимальное значения.
Десятичное число
В этом поле хранится до 10 десятичных знаков со значениями от -100 000 000 000,00 до 100 000 000 000,00.
валюта
Это поле используется для хранения любых значений валюты в диапазоне от 922 337 203 685 477,0000 до 922 337 203 685 477,0000. Вы также можете указать Точность как Десятичная Цена, Точность Валюты или любое значение от 0 до 4.
Несколько строк текста
Это текстовое поле с прокруткой. Вы можете установить максимальное количество символов для этого поля.
Дата и время
Это поле используется для хранения данных, относящихся к дате, в CRM с двумя поддерживаемыми форматами: только дата и дата и время. Вы также можете указать поведение как Локальный пользователь, Только дата и Независимый от часового пояса.
Уважать
Вы можете создать поле поиска, используя отношение сущностей, которое уже создано, но еще не используется с другим полем поиска. Если вы создаете поле поиска в форме объекта, связь создается автоматически. Поле поиска создается как поле отношений.
Microsoft Dynamics CRM — формы
В двух последних главах вы изучали создание новых объектов, создание новых записей и типов полей, доступных в CRM. В этой главе вы научитесь добавлять новые поля в формы CRM.
Из 11 типов полей данных, рассмотренных в предыдущей главе, вы будете использовать три типа полей у своего работодателя: набор параметров (раскрывающийся список), несколько строк текста и DateTime. Поле Option Set будет использоваться для хранения типа работодателя, Multiple Lines of Text будет использоваться для хранения краткого описания работодателя, а поле DateTime будет использоваться для хранения даты, когда компания была основана. Примечание . У вас уже есть поле «Имя» в форме, которое относится к типу «Одна строка текста».
Добавление полей в форму
Шаг 1 — Нажмите верхнюю кнопку ленты, а затем опцию « Настройки» . Нажмите « Настройки» в разделе «Настройки» (см. Скриншот ниже).
Шаг 2 — Теперь нажмите «Настроить систему».
Это откроет окно DefaultSolution. Вы узнаете больше о CRM-решениях в следующих главах, но сейчас вы будете использовать CRM-решение по умолчанию.
Шаг 3 — Разверните опцию Entities на левой панели.
Шаг 4 — Из развернутых сущностей выберите Работодателя. Это откроет детали объекта в правом окне. Разверните опцию «Работодатель» на левой панели, и вы увидите «Формы», «Представления», «Диаграммы», «Поля» и другие несколько опций.
Шаг 5 — Нажмите Поля. Откроется сетка со всеми полями, которые появились по умолчанию при создании этой сущности.
Шаг 6 — Нажмите кнопку «Новый». В открывшемся новом окне введите следующие данные —
Отображаемое имя — Тип работодателя
Имя — это поле заполняется автоматически в зависимости от выбранного отображаемого имени. Однако, если вы хотите изменить его, вы можете это сделать.
Тип данных — набор параметров. Как только вы выберите тип данных в качестве набора параметров, он покажет вам панель параметров. При нажатии на значок «плюс» (+) создается новый элемент набора параметров с меткой по умолчанию в качестве элемента и значением по умолчанию в качестве 100 000 000. Вы можете изменить метку этого элемента, чтобы добавить четыре параметра, представляющих типы работодателей: Частный, Государственный, Многонациональный и Государственный.
Шаг 7 — Нажмите «Сохранить и закрыть» на верхней ленте. Вы успешно создали поле Тип работодателя.
Шаг 8. Аналогично тому, что вы только что сделали для добавления поля «Тип работодателя», добавьте три других поля, как описано и показано на следующих снимках экрана.
Количество сотрудников — это будет поле «Всего».
Основан на — это будет поле DateTime.
Описание работодателя — это будет поле с несколькими строками текста.
Шаг 9 — Теперь добавьте эти новые поля в форму работодателя. Для этого нажмите Формы на левой навигационной панели под сущностью Работодателя. Это покажет вам две формы с именем Информация. По умолчанию CRM создает две формы — Main и Mobile-Express. Нажмите на главную форму.
Шаг 10 — Вы можете увидеть недавно добавленные поля на панели Field Explorer справа.
Шаг 11 — Перетащите эти поля на вкладку Общие.
Шаг 12 — Нажмите Сохранить, а затем нажмите Опубликовать.
Шаг 13 — Теперь вы можете создавать записи работодателя с полями обновлений. Перейдите к CRM Home → Продажи → Работодатели → Новый. Новая форма, которая откроется на этот раз, будет содержать все новые поля, которые вы добавили в этой главе. Вы можете заполнить некоторые детали и нажать Сохранить и закрыть.
Заключение
В этой главе мы узнали о работе с формами CRM и о том, как настраивать их, помещая в них различные типы полей. Мы также научились добавлять столько полей, сколько мы хотим, в любую форму и упорядочивать их, используя различные вкладки и разделы в соответствии с требованиями бизнеса.
Microsoft Dynamics CRM — Поиск
Microsoft Dynamics CRM — это огромный продукт, который значительно развился за эти годы. Продукт поставляется с множеством встроенных функций, встроенных в систему. Вам не нужно писать код для использования этих функций. Одна из важных встроенных функций — это возможность поиска в CRM, поскольку она поддерживает расширенные возможности запросов и фильтрации.
Быстрый поиск
По умолчанию представление сетки каждого объекта в CRM поддерживает функцию быстрого поиска с использованием панели поиска в правом верхнем углу. Ниже приведен скриншот быстрого поиска в контактной сущности.
Вы можете попробовать ввести строку поиска, например, «Роберт», и она вернет все подходящие записи.
Вы можете поставить перед ключевым словом поиска звездочку (*), чтобы выполнить поиск по шаблону.
Примечание. При использовании версии Microsoft Dynamics CRM для веб-клиента быстрый поиск всегда выполняет поиск всех активных записей независимо от выбранного представления.
Вы можете настроить Быстрый поиск (например, настроить любой другой вид), чтобы изменить критерии фильтра, настроить сортировку, добавить столбцы представления, добавить столбцы поиска и изменить другие свойства.
Расширенный поиск
Расширенный поиск позволяет искать записи любой сущности в CRM. Это одна из самых мощных и полезных функций, которая поставляется с CRM. Значок расширенного поиска отображается на верхней ленточной панели Microsoft Dynamics CRM независимо от того, на каком экране вы находитесь.
Нажмите значок расширенного поиска, чтобы открыть окно расширенного поиска. Это окно позволит вам выбрать объект, для которого вы хотите искать записи, применить критерии фильтрации и группировки и сохранить ваши представления расширенного поиска в качестве личных представлений.
Давайте возьмем пример. Предположим, вы хотите найти все контакты с FirstName, содержащие Роберта и разведенных. Для этого —
Шаг 1 — Выберите Контакты из выпадающего списка. Этот раскрывающийся список будет содержать все объекты, присутствующие в вашей системе.
Шаг 2 — Введите критерии поиска, как показано на следующем снимке экрана. Вы можете добавить столько параметров поискового запроса, сколько захотите. Вы даже можете группировать такие критерии, используя параметры группы. Например, если вы хотите выполнить поиск по всем контактам с именем Роберт или Марк, вы можете добавить два критерия поиска и сгруппировать их с помощью GroupOR.
Шаг 3 — Нажмите кнопку «Результаты». Он покажет соответствующие записи в новой вкладке.
Шаг 4 — Вы также можете редактировать столбцы, которые вы хотели бы видеть в результатах поиска, нажав Редактировать столбцы. Например, наша текущая сетка содержит только два столбца — ФИО и Бизнес-телефон. Однако, если вы хотите добавить в эту сетку дополнительный столбец Email ID, вы можете сделать это, используя эту опцию.
Сохранение пользовательского вида
На этом этапе, если вы хотите сохранить этот критерий поиска вместе с фильтрами и отредактированными столбцами, вы можете сделать это, нажав кнопку Сохранить. После сохранения вы можете использовать это сохраненное представление, когда находитесь на этой странице сущности.
Например, учтите, что в качестве руководителя клиента вы обслуживаете два типа клиентов: обычный и премиум. Следовательно, вы можете создать расширенный фильтр с этими соответствующими категориями и сохранить их как «Обычные контакты, назначенные мне», и «Премиум контакты, назначенные мне». Затем вы можете быстро получить доступ к этим представлениям непосредственно со страницы объекта «Контакт», не выполняя быстрый поиск или расширенный поиск при каждом использовании системы.
Microsoft Dynamics CRM — веб-ресурсы
Веб-ресурсы в CRM — это виртуальные веб-файлы, которые хранятся в базе данных CRM и используются для реализации функций веб-страниц в CRM. Эти файлы могут быть HTML, JScript, Silverlight или любых других поддерживаемых типов.
CRM, будучи продуктом, поставляется с обширным набором функций и функциональных возможностей. Однако в большинстве случаев вам придется расширять эти существующие функции в соответствии с вашими требованиями. Расширение этих функций обычно происходит двумя способами:
-
Расширение на стороне клиента — использование веб-ресурсов и сценариев форм.
-
Расширение на стороне сервера — плагины, рабочие процессы и веб-службы (эту часть мы изучим в следующих главах).
Расширение на стороне клиента — использование веб-ресурсов и сценариев форм.
Расширение на стороне сервера — плагины, рабочие процессы и веб-службы (эту часть мы изучим в следующих главах).
Использование веб-ресурсов
Как уже упоминалось выше, расширение CRM на стороне клиента — это то, где веб-ресурсы входят в картину. Чтобы понять это ясно, рассмотрим следующие варианты использования —
-
У вас есть форма CRM, содержащая определенные поля. CRM предоставляет готовые функции для базовых проверок, таких как обязательные поля, длины полей и т. Д. Однако что если вы хотите провести более сложную проверку, например проверку правильности введенного номера телефона, или проверка правильности введенного адреса или правильности введенного SSN?
-
CRM предоставляет готовые настройки пользовательского интерфейса, такие как создание разделов и вкладок в форме, изменение порядка полей и т. Д. Однако, что если клиент захочет создать пользовательскую страницу, которая отображает всю информацию о клиенте, полученную от других пользователей? ERP система?
-
CRM поставляется со стандартной ленточной панелью, которая содержит все кнопки и опции. Что делать, если вы хотите добавить собственную кнопку ленты?
-
Учтите, что у вас уже есть система ERP. Что если вы хотите открыть несколько экранов CRM из этой ERP-системы?
-
Вы всегда можете вызвать любые внешние веб-сервисы в своем коде плагина на стороне сервера. Однако что делать, если вы хотите вызывать какие-либо внешние веб-службы, пока вы все еще находитесь на стороне клиента?
У вас есть форма CRM, содержащая определенные поля. CRM предоставляет готовые функции для базовых проверок, таких как обязательные поля, длины полей и т. Д. Однако что если вы хотите провести более сложную проверку, например проверку правильности введенного номера телефона, или проверка правильности введенного адреса или правильности введенного SSN?
CRM предоставляет готовые настройки пользовательского интерфейса, такие как создание разделов и вкладок в форме, изменение порядка полей и т. Д. Однако, что если клиент захочет создать пользовательскую страницу, которая отображает всю информацию о клиенте, полученную от других пользователей? ERP система?
CRM поставляется со стандартной ленточной панелью, которая содержит все кнопки и опции. Что делать, если вы хотите добавить собственную кнопку ленты?
Учтите, что у вас уже есть система ERP. Что если вы хотите открыть несколько экранов CRM из этой ERP-системы?
Вы всегда можете вызвать любые внешние веб-сервисы в своем коде плагина на стороне сервера. Однако что делать, если вы хотите вызывать какие-либо внешние веб-службы, пока вы все еще находитесь на стороне клиента?
Ответом на все эти «Что, если» является веб-ресурсы. Каждый веб-ресурс может быть доступен через его уникальный URL-адрес. Вы можете либо загрузить файл веб-ресурса, либо для ресурсов на основе кода (таких как HTML, Jscript и т. Д.), Вы даже можете редактировать их непосредственно в CRM. Поскольку веб-ресурсы хранятся в CRM, их можно легко перенести из одной среды в другую вместе с любыми настройками CRM.
Типы веб-ресурсов
Тип веб-ресурса | Пример приложения в CRM |
---|---|
Веб-страница (HTML) | Вы можете создать любую пользовательскую HTML-страницу, такую как карты, пользовательскую страницу приложения и т. Д., И поместить ее в форму CRM. |
Таблица стилей (CSS) | Любые файлы CSS, которые будут использоваться вместе с файлами HTML. |
Скрипт (JScript) | Любая клиентская логика, такая как проверки, манипулирование значениями полей и т. Д. |
Данные (XML) | Может использоваться для хранения любых статических настроек или данных конфигурации. |
Изображение (PNG, JPG, GIF, ICO) | Любые изображения, используемые в приложении на ленте кнопок, значков, форм и т. Д. |
Silverlight (XAP) | Любое пользовательское приложение Silverlight, встроенное в CRM. |
Таблица стилей (XSL) | Используется для преобразования данных XML. |
Из всех этих типов веб-ресурсов мы будем изучать наиболее важные типы веб-ресурсов — веб-ресурсы HTML и веб-ресурсы JScript в последующих главах.
Доступ к веб-ресурсам для любой сущности
Все веб-ресурсы, хранящиеся в базе данных, доступны в CRM. Ниже приведены соответствующие шаги:
Шаг 1 — Выберите «Настройки» → «Настройки» → «Настройка системы».
Шаг 2 — На левой навигационной панели выберите Веб-ресурсы . В настоящее время вы не сможете просматривать веб-ресурсы, поскольку мы еще ничего не создали.
Мы рассмотрим, как создавать веб-ресурсы в следующих главах.
JScript веб-ресурсы
JScript Web Resources, вероятно, является наиболее важным типом веб-ресурсов, которые вы будете использовать с Microsoft Dynamics CRM.
Приложения JavaScript в CRM
Программирование событий формы
Программирование событий формы используется для обработки поведения на стороне клиента, такого как то, что происходит, когда пользователь открывает форму, изменяет некоторые данные, перемещается по вкладкам и т. Д. Для достижения такого взаимодействия на стороне клиента вы будете писать код JavaScript и добавлять его как JScript веб-ресурс в CRM. Однако код JavaScript, который вы напишете, должен использовать модель Xrm.Page из Dynamic CRM, а не стандартную модель DOM JavaScript. Использование модели Xrm.Page является способом кодирования Microsoft, который гарантирует, что любой код, который вы пишете с использованием этой модели, будет совместим с любыми будущими версиями CRM.
Веб-ресурсы
Помимо использования в программировании событий форм, JavaScript используется в других приложениях CRM, таких как —
-
Открытые формы, представления и диалоги с уникальным URL.
-
Использование OData и SOAP конечных точек для взаимодействия с веб-сервисами.
-
Ссылки на код JavaScript внутри других веб-ресурсов (например, веб-ресурсов HTML).
Открытые формы, представления и диалоги с уникальным URL.
Использование OData и SOAP конечных точек для взаимодействия с веб-сервисами.
Ссылки на код JavaScript внутри других веб-ресурсов (например, веб-ресурсов HTML).
В таких случаях вы должны написать свой код JavaScript (используя модель Xrm.Page) и добавить его в качестве веб-ресурса JScript в CRM, на который затем можно ссылаться в любом месте с уникальным URI.
Настройки ленты
Наконец, одно из других распространенных применений JavaScript — обработка ленточных настроек, таких как —
- Отображение / скрытие кнопок ленты на основе некоторой логики
- Включить / отключить кнопки ленты на основе некоторой логики
- Обработка того, что происходит, когда вы нажимаете определенную кнопку ленты
Для обработки таких сценариев вы напишите свою логику JavaScript (используя модель Xrm.Page), а затем добавите ее в качестве веб-ресурса JScript. Затем на этот веб-ресурс можно ссылаться в XML-файле кнопки ленты, и мы можем указать, какой метод в каком файле JScript вызывать, чтобы проверить, должна ли кнопка ленты отображаться / скрываться или включаться / отключаться или обрабатывать события щелчка.
Объектная модель Xrm.Page
Ниже приведена иерархия объекта Xrm.Page, показывающая доступные пространства имен, объекты и их коллекции. Вы будете использовать эти свойства при написании кода JScript.
Пространства имен
Sr.No | Объект и описание |
---|---|
1 |
контекст Предоставляет методы для получения специфичной для контекста информации, такой как сведения об организации, данные о вошедшем в систему пользователе или параметры, которые были переданы в форму в строке запроса. |
2 |
Данные Предоставляет доступ к данным и методам сущностей для управления данными в форме, а также в управлении потоком бизнес-процессов. |
3 |
UI Содержит методы для получения информации о пользовательском интерфейсе, в дополнение к коллекциям для нескольких подкомпонентов формы. |
контекст
Предоставляет методы для получения специфичной для контекста информации, такой как сведения об организации, данные о вошедшем в систему пользователе или параметры, которые были переданы в форму в строке запроса.
Данные
Предоставляет доступ к данным и методам сущностей для управления данными в форме, а также в управлении потоком бизнес-процессов.
UI
Содержит методы для получения информации о пользовательском интерфейсе, в дополнение к коллекциям для нескольких подкомпонентов формы.
Объекты
Sr.No | Объект и описание |
---|---|
1 |
сущность Предоставляет метод для —
|
2 |
Процесс Методы получения свойств потока бизнес-процессов. |
3 |
навигация Предоставляет доступ к элементам навигации с использованием коллекции элементов. |
4 |
FormSelector Использует коллекцию предметов для доступа к доступным формам для пользователя. Также использует метод навигации, чтобы закрыть и открыть формы. |
5 |
Этапы Каждый процесс имеет набор этапов, доступ к которым можно получить с помощью метода процесса getStages. |
6 |
меры Каждый этап состоит из различных этапов, к которым можно получить доступ, используя метод этапа getSteps. |
сущность
Предоставляет метод для —
Процесс
Методы получения свойств потока бизнес-процессов.
навигация
Предоставляет доступ к элементам навигации с использованием коллекции элементов.
FormSelector
Использует коллекцию предметов для доступа к доступным формам для пользователя. Также использует метод навигации, чтобы закрыть и открыть формы.
Этапы
Каждый процесс имеет набор этапов, доступ к которым можно получить с помощью метода процесса getStages.
меры
Каждый этап состоит из различных этапов, к которым можно получить доступ, используя метод этапа getSteps.
Коллекции
Sr.No | Коллекции и описание |
---|---|
1 |
Атрибуты Предоставляет доступ к атрибутам сущности, доступным в форме. |
2 |
управления ui.controls — предоставляет доступ к каждому элементу управления, присутствующему в форме. attribute.controls — Предоставляет доступ ко всем элементам управления в атрибуте. section.controls — обеспечивает доступ ко всем элементам управления в разделе. |
3 |
Предметы Предоставляет доступ ко всем элементам навигации в форме. |
4 |
Вкладки Предоставляет доступ ко всем вкладкам в форме. |
5 |
Разделы Предоставляет доступ ко всем разделам в форме. |
Атрибуты
Предоставляет доступ к атрибутам сущности, доступным в форме.
управления
ui.controls — предоставляет доступ к каждому элементу управления, присутствующему в форме.
attribute.controls — Предоставляет доступ ко всем элементам управления в атрибуте.
section.controls — обеспечивает доступ ко всем элементам управления в разделе.
Предметы
Предоставляет доступ ко всем элементам навигации в форме.
Вкладки
Предоставляет доступ ко всем вкладкам в форме.
Разделы
Предоставляет доступ ко всем разделам в форме.
Поддерживаемые события в программировании форм
Программирование форм с использованием модели Xrm.Page позволяет обрабатывать следующие события формы:
- в процессе
- OnSave
- по изменению
- TabStateChange
- OnReadyStateComplete
- PreSearch
- События управления потоком бизнес-процессов
Пример программирования формы
В этом примере мы добавим некоторые проверки в контактную форму на основе PreferredMethodofCommunication, который выбирает пользователь. Следовательно, если пользователь выбирает свой предпочтительный метод в качестве электронной почты, то поле электронной почты должно стать обязательным и аналогичным образом для других полей телефона и факса.
Шаг 1 — Создайте файл JavaScript с именем contacts.js и скопируйте следующий код.
function validatePreferredMethodOfCommunication() { //get the value of Preffered Method of Communication code var prefferedContactMethodCode = Xrm.Page.getAttribute('preferredcontactmetho dcode').getValue(); //if Preferred Method = Any, make all fields as non-mandatory //else if Preferred Method = Phone, make Mobile Phone field mandatory //and all other fields as non-mandatory //else if Preferred Method = Fax, make Fax field mandatory //and all other fields as non-mandatory if(prefferedContactMethodCode == 1) { clearAllMandatoryFields(); } if(prefferedContactMethodCode == 2) { clearAllMandatoryFields(); Xrm.Page.getAttribute('emailaddress1').setRequiredLevel('required'); } else if(prefferedContactMethodCode == 3) { clearAllMandatoryFields(); Xrm.Page.getAttribute('mobilephone').setRequiredLevel('required'); } else if(prefferedContactMethodCode == 4) { clearAllMandatoryFields(); Xrm.Page.getAttribute('fax').setRequiredLevel('required'); } } function clearAllMandatoryFields() { //clear all mandatory fields Xrm.Page.getAttribute('emailaddress1').setRequiredLevel('none'); Xrm.Page.getAttribute('mobilephone').setRequiredLevel('none'); Xrm.Page.getAttribute('fax').setRequiredLevel('none'); }
Шаг 2 — Откройте форму объекта «Контакт», перейдя в «Настройки» → «Настройки» → «Настройка системы» → «Объект контакта» → «Формы» → «Основная форма».
Шаг 3 — Нажмите Свойства формы.
Шаг 4 — В окне Свойства формы нажмите Добавить.
Шаг 5 — В следующем окне «Поиск веб-ресурса» нажмите «Новый», так как мы создаем новый веб-ресурс.
Шаг 6 — В окне New Web Resource введите следующие данные —
Имя — new_contacts.js
Отображаемое имя — contacts.js
Тип — JScript
Загрузить файл — Загрузить файл JavaScript, который вы создали с вашего локального компьютера.
Шаг 7 — Нажмите Сохранить, затем Опубликовать. После этого закройте окно, и вы вернетесь в окно поиска веб-ресурсов.
Шаг 8 — Здесь вы можете увидеть веб-ресурс new_contacts.js. Выберите его и нажмите Добавить. Вы успешно добавили новый веб-ресурс и зарегистрировали его в форме.
Шаг 9 — Теперь мы добавим обработчик события при изменении поля Preferred Method of Communication. Этот обработчик события вызовет функцию JavaScript, которую мы только что написали. Выберите следующие параметры в разделе «Обработчик событий».
Контроль — предпочтительный способ общения
Событие — OnChange
Затем нажмите кнопку « Добавить» , как показано на следующем снимке экрана.
Шаг 10 — В следующем окне свойств обработчика мы укажем метод, который будет вызываться при возникновении события изменения.
Выберите Библиотека как new_contacts.js и Функцию как validatePreferredMethodOfCommunication. Нажмите ОК.
Шаг 11. Теперь вы сможете просматривать библиотеку форм (веб-ресурс) и события, зарегистрированные в ней. Нажмите ОК.
Шаг 12 — Нажмите Сохранить, затем Опубликовать.
Шаг 13 — Теперь откройте любую контактную форму и установите предпочтительный способ связи в качестве телефона. Это сделает поле «Мобильный телефон» обязательным. Если вы сейчас попытаетесь сохранить этот контакт, не вводя номер мобильного телефона, он выдаст сообщение об ошибке «Вы должны указать значение для мобильного телефона».
Заключение
В этой главе мы начали с понимания трех важных приложений JavaScript в CRM. Позже мы исследовали модель Xrm.Page и использовали ее для изучения программирования форм вместе с примером.
HTML веб-ресурсы
В этой главе мы узнаем о различных веб-ресурсах в Microsoft Dynamics CRM.
Приложения HTML веб-ресурсов
Веб-ресурс HTML в CRM может содержать любой контент HTML, который можно отобразить в браузере. Рассмотрим следующие сценарии, в которых вы хотели бы использовать веб-ресурсы HTML:
-
У вас есть статическая HTML-страница, которую вы хотите показать на экране CRM.
-
У вас есть пользовательская HTML-страница, которая ожидает некоторые входные параметры и обрабатывается на основе этих входных параметров. Например, предположим, что вы извлекаете информацию из внешнего API или веб-службы и хотите отобразить ее в CRM.
-
Вы хотите отобразить некоторую информацию, отличающуюся от стандартного пользовательского интерфейса CRM.
У вас есть статическая HTML-страница, которую вы хотите показать на экране CRM.
У вас есть пользовательская HTML-страница, которая ожидает некоторые входные параметры и обрабатывается на основе этих входных параметров. Например, предположим, что вы извлекаете информацию из внешнего API или веб-службы и хотите отобразить ее в CRM.
Вы хотите отобразить некоторую информацию, отличающуюся от стандартного пользовательского интерфейса CRM.
У вас есть настраиваемая страница ASPX (вне приложения CRM), которая отображается на основе входных параметров. Поскольку CRM не позволяет вам иметь веб-ресурсы ASPX, вы можете создать веб-ресурс HTML и вызывать внешнюю страницу ASPX с этой страницы HTML.
Пример веб-ресурса HTML
Мы создадим очень простой HTML-веб-ресурс, который будет отображать пользовательский текст «Добро пожаловать в TutorialsPoint». Обратите внимание, что это очень простой пример веб-ресурса HTML. Практически, веб-ресурсы HTML будут более сложными, чем эта.
Шаг 1. Создайте файл HTML с именем sampleHTMLWebResource.html и скопируйте следующий код.
<!DOCTYPE html> <htmllang = "en"xmlns = "http://www.w3.org/1999/xhtml"> <head> <metacharset = "utf-8"/> <title>Welcome to Tutorials Point</title> </head> <body> <h1>Welcome to Tutorials Point. This is an example of HTML Web Resource.</h1> </body> </html>
Шаг 2 — Сначала мы создадим новый веб-ресурс, а затем сделаем ссылку на него в контактной форме. Откройте DefaultSolution и перейдите на вкладку WebResources с левой панели. Нажмите Новый.
Шаг 3 — Откроется окно Новый веб-ресурс. Введите данные, как показано на следующем снимке экрана, и просмотрите файл HTML, который мы создали на шаге 1. Нажмите «Сохранить и опубликовать». Закройте окно.
Шаг 4 — Вы увидите новый веб-ресурс, добавленный в сетку веб-ресурсов.
Шаг 5 — Теперь откройте контактную форму через Настройки → Настройки → Настройка системы → Контакт → Главная форма. Выберите раздел «Контактная информация» и перейдите на вкладку «Вставка» в верхней панели ленты. Нажмите веб-ресурс.
Шаг 6 — Откроется окно Добавить веб-ресурс. Нажмите Поиск веб-ресурсов в этом окне, и откроется окно Записи поиска веб-ресурсов. Найдите веб-ресурс, который вы только что создали (new_sampleHTMLWebResource), выберите его в сетке и нажмите кнопку «Добавить».
Шаг 7 — Вернувшись в Add Web Resource, введите имя и метку, как показано на следующем снимке экрана, и нажмите OK. Закройте окно.
Вы увидите веб-ресурс HTML, добавленный ниже поля адреса.
Шаг 8 — Чтобы проверить это, откройте любую запись контакта, и вы увидите содержимое веб-ресурса HTML, отображаемое там.
Ограничения веб-ресурсов HTML
-
Не существует поддерживаемого способа использования серверного кода в веб-ресурсах HTML.
-
Веб-ресурсы HTML могут принимать только ограниченное количество параметров. Чтобы передать более одного значения в параметре данных, вам нужно будет закодировать параметры, включая логику декодирования на другом конце.
Не существует поддерживаемого способа использования серверного кода в веб-ресурсах HTML.
Веб-ресурсы HTML могут принимать только ограниченное количество параметров. Чтобы передать более одного значения в параметре данных, вам нужно будет закодировать параметры, включая логику декодирования на другом конце.
Рабочие процессы
Рабочие процессы в CRM позволяют автоматизировать простые и сложные бизнес-процессы в CRM. Вы можете создавать рабочие процессы, используя готовые функции CRM, или создавать собственные рабочие процессы с использованием кода .NET для реализации сложных рабочих процессов. Процессы рабочего процесса выполняются в фоновом режиме или в режиме реального времени и могут дополнительно требовать ввода данных пользователем.
Рабочие процессы могут запускаться в зависимости от конкретных условий или даже запускаться пользователями вручную. Внутренне рабочие процессы CRM реализуются с помощью Windows Workflow Foundation. В этой главе мы узнаем о настройке рабочих процессов.
Настройка рабочего процесса состоит из следующих основных частей (по порядку):
- Настройте объект, на котором будет выполняться рабочий процесс
- Настройте, будет ли рабочий процесс работать синхронно или асинхронно
- Настройте сообщение (событие), для которого будет выполняться рабочий процесс
- Настройте область, в которой будет работать рабочий процесс
- Настроить этапы и этапы (действия) рабочего процесса
Синхронный / Асинхронный рабочий процесс
При создании рабочего процесса вы увидите опцию Запустить этот рабочий процесс в фоновом режиме (рекомендуется), который определяет, будет ли рабочий процесс работать в режиме реального времени (синхронно) или в фоновом режиме (асинхронно).
Как правило, рекомендуемый подход заключается в запуске рабочих процессов в фоновом режиме, поскольку они используют системные ресурсы по мере их доступности. Однако вы всегда можете переключиться обратно с рабочего процесса в реальном времени на фоновый рабочий процесс и наоборот.
Сообщения рабочего процесса
Рабочие процессы могут быть зарегистрированы для определенных событий следующим образом:
- Когда запись создана
- Когда статус записи меняется
- Когда запись назначена
- Когда значение поля записи изменяется
- Когда запись удалена
Объем рабочего процесса
Рабочие процессы позволяют вам установить область, в которой будет выполняться рабочий процесс. Ниже приведены поддерживаемые области рабочих процессов.
пользователь | Рабочий процесс будет выполняться только для записей, принадлежащих тому же пользователю, что и пользователь рабочего процесса. |
Бизнес-единица | Рабочий процесс будет работать с записями, принадлежащими пользователям бизнес-единицы, так же, как и пользователи рабочего процесса. |
Родительские детские бизнес-единицы | Рабочий процесс будет работать с записями, принадлежащими пользователям бизнес-единицы, так же как и пользователь рабочего процесса, а также любые дочерние бизнес-единицы. |
организация | Рабочий процесс будет выполняться для записей, принадлежащих любому пользователю в CRM. |
Шаги рабочего процесса
Рабочие процессы в CRM представляют собой комбинацию последовательности шагов, за которыми будет следовать рабочий процесс. Вы даже можете разделить эти шаги на логические этапы. Следующие шаги поддерживаются рабочими процессами CRM —
Условные Шаги |
|
||||||||||||||
Шаги ожидания |
|
||||||||||||||
Действия Шаги |
|
Пример рабочего процесса
В этом примере мы создадим простой рабочий процесс, который будет работать в фоновом режиме, чтобы назначить любую вновь созданную запись контакта конкретному пользователю, а затем отправит приветственное письмо клиенту.
Шаг 1 — Перейдите в Настройки → Процессы.
Шаг 2 — Нажмите Новый.
Шаг 3 — В окне CreateProcess введите следующие данные —
Имя процесса — новый рабочий процесс клиента (это может быть любое имя)
Категория — рабочий процесс
Сущность — контакт (это будет сущность, для которой вы создаете рабочий процесс. В нашем случае это контакт)
Запускать этот рабочий процесс в фоновом режиме (рекомендуется). Установите этот флажок, поскольку мы создаем фоновый асинхронный рабочий процесс. Наконец, нажмите ОК.
Шаг 4 — В окне «Новый процесс» введите следующие данные —
Активировать как — Процесс
Сфера — Пользователь
Начать, когда — Запись создана
Нажмите Добавить шаг → Назначить запись.
Шаг 5 — Вы увидите новый шаг, добавленный в рабочий процесс. На этом шаге мы укажем пользователя, которому должны быть назначены все созданные контакты. Введите имя шага как Назначить запись для команды . Параметр «Назначить» будет установлен по умолчанию как объект, для которого мы создаем рабочий процесс (в нашем случае это «Контакт»). Нажмите значок «Поиск».
Шаг 6 — В окне поиска выберите любого пользователя, которого вы хотите. Вы даже можете выбрать конкретную команду, которой хотите назначить записи. Нажмите Добавить.
Шаг 7 — Добавьте еще один шаг, нажав Добавить шаг → Отправить письмо. На этом этапе мы настроим отправку электронной почты клиенту.
Шаг 8 — Новый шаг будет добавлен. Введите его имя как Отправить письмо клиенту. Нажмите Установить свойства.
Шаг 9 — В следующем окне для настройки электронной почты выполните следующие операции:
From — Нажмите поле From. На правой панели выберите OwningUser и User. Нажмите Добавить → ОК.
To — Нажмите на поле. На правой панели выберите Контакт и Контакт. Нажмите Добавить → ОК.
Тема — введите соответствующую тему.
Body — введите соответствующее содержание тела.
Шаг 10 — Нажмите «Сохранить», а затем «Активировать».
Шаг 11 — Во всплывающем окне «Подтверждение активации процесса» нажмите «Активировать».
Шаг 12 — Перейдите на вкладку Контакты и создайте новый контакт. Как только вы создадите новый контакт, сохранив запись, вы увидите поле «Владелец», установленное для пользователя, которое вы настроили в рабочем процессе. Кроме того, если вы перейдете на вкладку «Действия», то увидите, что для этого контакта создается электронная почта. Это подтверждает, что рабочий процесс успешно выполнен.
Рабочий процесс против плагина
Рабочие процессы и плагины могут использоваться для расширения и автоматизации функций CRM. Во многих сценариях оба подхода могут взаимозаменяемо использоваться вместо друг друга. Например, если у вас есть простое требование отправить электронное письмо своим клиентам, вы можете сделать это через плагин или рабочий процесс.
Итак, как вы выбираете между созданием рабочего процесса против плагина? Следующий список пытается объяснить то же самое —
-
Хотя плагины и рабочие процессы могут использоваться как для синхронной, так и асинхронной логики, плагины обычно предпочтительнее для синхронной логики, а рабочие процессы для асинхронной логики.
-
Как правило, для реализации сложной бизнес-логики плагины предпочтительнее рабочих процессов. Рабочие процессы предпочтительны, когда вы хотите добиться относительно более простых функций (таких как отправка электронных писем, назначение пользователей и т. Д.)
-
Плагины необходимо разрабатывать с помощью кодирования, в то время как рабочие процессы могут настраиваться непосредственно бизнес-пользователями без каких-либо знаний о рабочих процессах.
-
Рабочие процессы могут выполняться по требованию. Следовательно, если есть требования, когда пользователь хочет запустить некоторую логику вручную, рабочие процессы будут лучшим выбором.
-
Из-за влияния на производительность синхронные плагины обеспечивают лучшую производительность (и пропускную способность) по сравнению с рабочими процессами в реальном времени в сценариях, где частота запросов выше.
Хотя плагины и рабочие процессы могут использоваться как для синхронной, так и асинхронной логики, плагины обычно предпочтительнее для синхронной логики, а рабочие процессы для асинхронной логики.
Как правило, для реализации сложной бизнес-логики плагины предпочтительнее рабочих процессов. Рабочие процессы предпочтительны, когда вы хотите добиться относительно более простых функций (таких как отправка электронных писем, назначение пользователей и т. Д.)
Плагины необходимо разрабатывать с помощью кодирования, в то время как рабочие процессы могут настраиваться непосредственно бизнес-пользователями без каких-либо знаний о рабочих процессах.
Рабочие процессы могут выполняться по требованию. Следовательно, если есть требования, когда пользователь хочет запустить некоторую логику вручную, рабочие процессы будут лучшим выбором.
Из-за влияния на производительность синхронные плагины обеспечивают лучшую производительность (и пропускную способность) по сравнению с рабочими процессами в реальном времени в сценариях, где частота запросов выше.
Заключение
Эта глава познакомила нас с одной из очень важных функций CRM — Workflows. Сначала мы поняли рабочие процессы синхронизации / асинхронности, сообщения, область действия, шаги и, наконец, рассмотрели живой пример создания и запуска рабочего процесса. Наконец, мы увидели разницу между рабочим процессом и плагином.
Microsoft Dynamics CRM — плагины
Плагин — это настраиваемая бизнес-логика, которая интегрируется с Microsoft Dynamics CRM для изменения или расширения стандартного поведения платформы. Плагины действуют как обработчики событий и регистрируются для выполнения на определенном событии в CRM. Плагины написаны на C # или VB и могут работать как в синхронном, так и в асинхронном режиме.
Некоторые сценарии, где вы бы написали плагин:
-
Вы хотите выполнить некоторую бизнес-логику, такую как обновление определенных полей записи или обновление связанных записей и т. Д. При создании или обновлении записи CRM.
-
Вы хотите вызывать внешний веб-сервис для определенных событий, таких как сохранение или обновление записи.
-
Вы хотите динамически вычислять значения поля при открытии любой записи.
-
Вы хотите автоматизировать такие процессы, как отправка электронных писем вашим клиентам по определенным событиям в CRM.
Вы хотите выполнить некоторую бизнес-логику, такую как обновление определенных полей записи или обновление связанных записей и т. Д. При создании или обновлении записи CRM.
Вы хотите вызывать внешний веб-сервис для определенных событий, таких как сохранение или обновление записи.
Вы хотите динамически вычислять значения поля при открытии любой записи.
Вы хотите автоматизировать такие процессы, как отправка электронных писем вашим клиентам по определенным событиям в CRM.
Event Framework
Инфраструктура обработки событий в CRM обрабатывает синхронные и асинхронные запросы плагинов, передавая их в конвейер выполнения событий. Всякий раз, когда событие запускает логику плагина, сообщение отправляется в веб-службу организации CRM, где оно может быть прочитано или изменено другими плагинами или любыми основными операциями платформы.
Этапы плагинов
Весь конвейер плагинов разделен на несколько этапов, на которых вы можете зарегистрировать свою собственную бизнес-логику. Указанный этап конвейера указывает, на какой стадии цикла выполнения плагина выполняется ваш код плагина. Из всех указанных этапов конвейера в следующей таблице вы можете зарегистрировать свои пользовательские плагины только до и после событий. Вы не можете зарегистрировать плагины в Platform Core Main Operations.
Событие | Сценический псевдоним | Описание |
---|---|---|
Pre-Event | Предварительная проверка | Этап в конвейере для плагинов, которые должны выполняться перед основной работой системы. Плагины, зарегистрированные на этом этапе, могут выполняться вне транзакции базы данных. |
Pre-Event | Предпусковой | Этап в конвейере для плагинов, которые должны быть выполнены до основной работы системы. Плагины, зарегистрированные на этом этапе, выполняются в транзакции базы данных. |
Операция ядра платформы | MainOperation | Интранзакция, основная операция системы, такая как создание, обновление, удаление и так далее. Никакие пользовательские плагины не могут быть зарегистрированы на этом этапе. Только для внутреннего использования. |
Сообщение событие | Послеоперационный | Этап в конвейере для плагинов, которые должны быть выполнены после основной операции. Плагины, зарегистрированные на этом этапе, выполняются в транзакции базы данных. |
Всякий раз, когда приложение CRM вызывает событие (например, сохранение или обновление записи), происходит следующая последовательность действий:
-
Событие инициирует вызов веб-службы, и выполнение передается через этапы конвейера событий (до события, основные операции платформы, после события).
-
Информация внутренне упаковывается как сообщение OrganizationRequest и, наконец, отправляется во внутренние методы веб-службы CRM и основные операции платформы.
-
Сообщение OrganizationRequest сначала принимается подключаемыми модулями перед событием, которые могут изменить информацию, прежде чем передавать ее в основные операции платформы. После основных операций платформы сообщение упаковывается как OrganizationResponse и передается в плагин после операции. Плагины после операций могут по желанию изменить эту информацию, прежде чем передавать ее в асинхронный плагин.
-
Плагины получают эту информацию в виде объекта контекста, который передается методу Execute, после чего происходит дальнейшая обработка.
-
После завершения всей обработки плагина выполнение передается обратно в приложение, которое вызвало событие.
Событие инициирует вызов веб-службы, и выполнение передается через этапы конвейера событий (до события, основные операции платформы, после события).
Информация внутренне упаковывается как сообщение OrganizationRequest и, наконец, отправляется во внутренние методы веб-службы CRM и основные операции платформы.
Сообщение OrganizationRequest сначала принимается подключаемыми модулями перед событием, которые могут изменить информацию, прежде чем передавать ее в основные операции платформы. После основных операций платформы сообщение упаковывается как OrganizationResponse и передается в плагин после операции. Плагины после операций могут по желанию изменить эту информацию, прежде чем передавать ее в асинхронный плагин.
Плагины получают эту информацию в виде объекта контекста, который передается методу Execute, после чего происходит дальнейшая обработка.
После завершения всей обработки плагина выполнение передается обратно в приложение, которое вызвало событие.
Плагин Сообщения
Сообщения — это события, в которых зарегистрирован плагин (или бизнес-логика). Например, вы можете зарегистрировать плагин в сущности «Создать сообщение контакта». Это будет запускать бизнес-логику всякий раз, когда создается новая запись контакта.
Для пользовательских объектов ниже приведены поддерживаемые сообщения, основанные на том, принадлежит ли объект пользователю или организации.
Название сообщения | Тип собственности |
---|---|
приписывать | Только пользовательские объекты |
Создайте | Пользовательские и организационные объекты |
удалять | Пользовательские и организационные объекты |
Предоставление доступа | Только пользовательские объекты |
ModifyAccess | Только пользовательские объекты |
извлекать | Пользовательские и организационные объекты |
RetrieveMultiple | Пользовательские и организационные объекты |
RetrievePrincipalAccess | Только пользовательские объекты |
RetrieveSharedPrincipalsAndAccess | Только пользовательские объекты |
RevokeAccess | Только пользовательские объекты |
SetState | Пользовательские и организационные объекты |
SetStateDynamicEntity | Пользовательские и организационные объекты |
Обновить | Пользовательские и организационные объекты |
Для стандартных готовых сущностей существует более 100 поддерживаемых сообщений. Некоторые из этих сообщений применимы ко всем объектам, а некоторые относятся к определенным объектам. Вы можете найти полный список поддерживаемых сообщений в файле Excel внутри SDK: поддержка SDK \ Message-entity для plug-ins.xlsx
Написание плагин
В этом разделе мы изучим основы написания плагина. Мы создадим образец подключаемого модуля, который создает задачу Task для последующей работы с клиентом при каждом добавлении нового клиента в систему, то есть при создании новой записи Contactrecord в CRM.
Прежде всего, вам нужно будет включить ссылки на пространство имен Microsoft.Xrm.Sdk . CRM SDK содержит все необходимые сборки SDK. Предполагая, что вы уже загрузили и установили SDK в Главе 2, откройте Visual Studio. Создайте новый проект типа Библиотека классов. Вы можете назвать проект как SamplePlugins и нажать ОК.
Добавьте ссылку на сборку Microsoft.Xrm.Sdk в свой проект. Сборка присутствует в SDK / Bin .
Теперь создайте класс с именем PostCreateContact.cs и расширьте класс из IPlugin . До сих пор ваш код будет выглядеть примерно так:
Вам также нужно будет добавить ссылку на System.Runtime.Serialization. После того, как вы добавили необходимые ссылки, скопируйте следующий код в класс PostCreateContact .
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using Microsoft.Xrm.Sdk; namespace SamplePlugins { public class PostCreateContact:IPlugin { /// A plug-in that creates a follow-up task activity when a new account is created. /// Register this plug-in on the Create message, account entity, /// and asynchronous mode. public void Execute(IServiceProviderserviceProvider) { // Obtain the execution context from the service provider. IPluginExecutionContext context =(IPluginExecutionContext) serviceProvider.GetService(typeof(IPluginExecutionContext)); // The InputParameters collection contains all the data passed in the message request. if(context.InputParameters.Contains("Target")&& context.InputParameters["Target"]isEntity) { // Obtain the target entity from the input parameters. Entity entity = (Entity)context.InputParameters["Target"]; try { // Create a task activity to follow up with the account customer in 7 days Entity followup = new Entity("task"); followup["subject"] = "Send e-mail to the new customer."; followup["description"] = "Follow up with the customer. Check if there are any new issues that need resolution."; followup["scheduledstart"] = DateTime.Now; followup["scheduledend"] = DateTime.Now.AddDays(2); followup["category"] = context.PrimaryEntityName; // Refer to the contact in the task activity. if(context.OutputParameters.Contains("id")) { Guid regardingobjectid = new Guid(context.OutputParameter s["id"].ToString()); string regardingobjectidType = "contact"; followup["regardingobjectid"] = new EntityReference(rega rdingobjectidType,regardingobjectid); } // Obtain the organization service reference. IOrganizationServiceFactory serviceFactory = (IOrganizationSer viceFactory)serviceProvider.GetService (typeof(IOrganizationServiceFactory)); IOrganizationService service = serviceFactory.CreateOrganizationService(context.UserId); // Create the followup activity service.Create(followup); } catch(Exception ex) { throw new InvalidPluginExecutionException(ex.Message); } } } } }
Ниже приведено пошаговое объяснение того, что делает этот код:
Шаг 1 — Реализует метод Execute, принимая в качестве параметра объект IServiceProvider. Поставщик услуг содержит ссылки на многие полезные объекты, которые вы собираетесь использовать в плагине.
Шаг 2 — Получает объект IPluginExecutionContext, используя метод GetService IServiceProvider.
Шаг 3 — Получает объект целевого объекта из коллекции объекта контекста InputParameters. Этот объект класса Entity ссылается на запись объекта Contact, в которой будет зарегистрирован наш плагин.
Шаг 4 — Затем он создает объект объекта «Задача» и устанавливает надлежащий предмет, описание, даты, категорию и относящиеся к объекту. Usingobjectid указывает, для какой записи контакта создается эта запись активности. Вы можете видеть, что код получает идентификатор родительской записи Contact с помощью context.OutputParameters и связывает его с созданной вами записью сущности Task.
Шаг 5 — Создает объект IOrganizationServiceFactory, используя объект IServiceProvider.
Шаг 6 — Создает объект IOrganizationService с использованием объекта IOrganizationServiceFactory.
Шаг 7 — Наконец, используя метод Create этого сервисного объекта. Создает последующее действие, которое сохраняется в CRM.
Подписание сборки плагина
Этот раздел применим только в том случае, если вы регистрируете сборку вашего плагина впервые. Вы должны войти в сборку с ключом, чтобы иметь возможность развернуть плагин. Щелкните правой кнопкой мыши решение и выберите Свойства.
Выберите вкладку «Подпись» слева и установите флажок «Подписать сборку». Затем выберите «Создать» из опции «Выбрать файл ключа строгого имени».
Введите имя файла ключей в качестве sampleplugins (это может быть любое другое имя). Снимите флажок Защитить мой ключевой файл с помощью пароля и нажмите ОК. Нажмите Сохранить.
Наконец, создайте решение. Щелкните правой кнопкой мыши → Build. Построение решения сгенерирует сборку DLL, которую мы будем использовать в следующей главе, чтобы зарегистрировать этот плагин.
Обработка исключений в плагине
Чаще всего ваша логика плагина должна обрабатывать исключения во время выполнения. Для синхронных плагинов вы можете вернуть исключение InvalidPluginExecutionException , которое покажет пользователю диалоговое окно с ошибкой. Диалог ошибок будет содержать пользовательское сообщение об ошибке, которое вы передаете объекту Message объекта исключения.
Если вы посмотрите на наш код, мы добавляем исключение InvalidPluginExecutionException в наш блок catch.
throw new InvalidPluginExecutionException(ex.Message);
Заключение
Плагины, безусловно, имеют решающее значение для любой пользовательской реализации CRM. В этой главе мы сосредоточились на понимании модели инфраструктуры событий, этапах конвейера, сообщениях и написании примера плагина. В следующей главе мы зарегистрируем этот плагин в CRM и увидим, как он работает от сквозного сценария.
Регистрация плагинов
В последней главе мы создали образец плагина для создания последующей задачи Task при создании записи контакта. В этой главе мы увидим, как зарегистрировать этот плагин в CRM, используя инструмент регистрации плагинов. Вы можете найти инструмент в этом месте: SDK / Tools / PluginRegistration / PluginRegistration.exe.
Для удобства процесс регистрации плагина разделен на три раздела —
- Подключение к серверу
- Регистрация сборки
- Регистрация плагина
Подключение к серверу
Шаг 1 — Запустите PluginRegistration.exe из расположения, указанного ранее. Нажмите кнопку Создать новое соединение.
Шаг 2. В окне входа в систему выберите Office 365, поскольку мы используем онлайн-версию CRM. Введите свои учетные данные и нажмите Войти.
Шаг 3 — Инструмент откроется и будет выглядеть как на следующем скриншоте.
Регистрация сборки
Шаг 1 — Перейдите в раздел Регистрация → Зарегистрировать новую сборку.
Шаг 2 — Откроется окно «Регистрация новой сборки». Нажмите значок Navigate и найдите библиотеку подключаемых модулей, созданную в предыдущей главе.
Шаг 3 — После навигации по DLL, нажмите Load Assembly. Это заполнит сборку SamplePlugins и все ее классы плагинов. Вы можете увидеть класс плагина PostCreateContact, выделенный ниже. Если бы у вашей сборки плагинов было 3 класса плагинов, она бы показала там три плагина.
Шаг 4 — Выберите «Режим изоляции» как «Песочница», «Местоположение как база данных» и нажмите «Зарегистрировать выбранные плагины». Он покажет вам сообщение об успехе, если регистрация прошла успешно.
Регистрация плагина
Теперь мы будем регистрировать конкретные шаги, на которых будут вызываться отдельные плагины.
Шаг 1 — Выберите плагин PostCreateContact.
Шаг 2 — Нажмите Регистрация → Зарегистрировать новый шаг.
Шаг 3 — Мы будем регистрировать этот плагин при создании объекта «Контакт», на этапе после операции и в синхронном режиме.
Сообщение — Создать
Основной объект — контакт
Конвейер событий Стадия выполнения — Постоперация
Режим выполнения — синхронный
Оставьте остальные параметры по умолчанию и нажмите «Зарегистрировать новый шаг».
Вы можете увидеть новый шаг, добавленный в плагин.
Теперь перейдем к CRM и проверим, работает ли наш плагин правильно. Обратите внимание, что эти шаги тестирования являются специфическими для нашего примера плагина.
Тестирование плагина
Перейдите на вкладку Контакты и создайте новую запись. После сохранения записи вы можете увидеть новое действие, созданное и связанное с этой записью.
Вы можете нажать на действие, чтобы увидеть детали, которые мы установили в коде.
Это подтверждает, что наш плагин успешно запущен. Точно так же вы можете расширить свои плагины для достижения очень сложных функций.
Microsoft Dynamics CRM — веб-службы
Microsoft Dynamics CRM предоставляет две важные веб-службы, которые используются для доступа к CRM из внешнего приложения и вызова веб-методов для выполнения общих операций с бизнес-данными, таких как создание, удаление, обновление и поиск в CRM.
Рассмотрим следующие сценарии —
-
У вас есть внешнее приложение .NET, которое должно общаться с CRM. Например, вы можете вставить запись контакта в CRM, когда в вашем внешнем приложении зарегистрирован новый клиент.
-
Или, может быть, вы хотите искать записи в CRM и отображать результаты поиска во внешнем приложении.
У вас есть внешнее приложение .NET, которое должно общаться с CRM. Например, вы можете вставить запись контакта в CRM, когда в вашем внешнем приложении зарегистрирован новый клиент.
Или, может быть, вы хотите искать записи в CRM и отображать результаты поиска во внешнем приложении.
В таких сценариях вы можете использовать веб-сервисы, предоставляемые CRM, чтобы использовать их в своем приложении и выполнять операции создания, удаления, обновления и поиска в CRM.
Веб-сервис IDiscoveryService
Этот веб-сервис возвращает список организаций, к которым принадлежит указанный пользователь, и конечную точку URL для каждой организации.
IOrganizationService Web Service
Этот веб-сервис является основным веб-сервисом, используемым для доступа к данным и метаданным в CRM. Служба IOrganizationService использует две важные сборки — Microsoft.Xrm.Sdk.dll и Microsoft.Crm.Sdk.Proxy.dll . Эти сборки можно найти в пакете CRM SDK внутри папки Bin .
Microsoft.Xrm.Sdk.dll
В этой сборке определяются основные методы и типы xRM, в том числе прокси-классы для упрощения подключения к Microsoft Dynamics CRM, методы проверки подлинности и контракты на обслуживание.
Microsoft.Crm.Sdk.Proxy.dll
Эта сборка определяет запросы и ответы для неосновных сообщений, а также перечисления, необходимые для работы с данными организации. Ниже приведены пространства имен, поддерживаемые этими двумя сборками.
Каждая из этих сборок поддерживает определенные сообщения, которые будут использоваться для работы с данными, хранящимися в любом объекте. Полный список поддерживаемых ими сообщений можно найти по следующим ссылкам —
Поддерживаемые сообщения xRM — https://msdn.microsoft.com/en-us/library/gg334698.aspx
Поддерживаемые сообщения CRM — https://msdn.microsoft.com/en-us/library/gg309482.aspx
Методы веб-службы IOrganizationService
Служба IOrganizationService предоставляет восемь методов, которые позволяют выполнять все общие операции с системой и пользовательскими объектами, а также метаданные организации.
Sr.No | Метод и описание |
---|---|
1 |
IOrganizationService.Create Создает запись. |
2 |
IOrganizationService.Update Обновляет существующую запись. |
3 |
IOrganizationService. извлекать Получает запись. |
4 |
IOrganizationService. RetrieveMultiple Получает коллекцию записей. |
5 |
IOrganizationService. удалять Удаляет запись. |
6 |
IOrganizationService. ассоциированный Создает связь между записями. |
7 |
IOrganizationService.Disassociate Удаляет ссылку между записями. |
8 |
IOrganizationService.Execute Используется для обычной обработки записей, а также для специальной обработки, такой как разрешение случаев, обнаружение дубликатов и т. Д. |
IOrganizationService.Create
Создает запись.
IOrganizationService.Update
Обновляет существующую запись.
IOrganizationService. извлекать
Получает запись.
IOrganizationService. RetrieveMultiple
Получает коллекцию записей.
IOrganizationService. удалять
Удаляет запись.
IOrganizationService. ассоциированный
Создает связь между записями.
IOrganizationService.Disassociate
Удаляет ссылку между записями.
IOrganizationService.Execute
Используется для обычной обработки записей, а также для специальной обработки, такой как разрешение случаев, обнаружение дубликатов и т. Д.
Пример веб-сервиса
Чтобы понять, как работают веб-сервисы в CRM, мы рассмотрим пример, предоставленный CRM SDK. В этом примере мы создадим новую запись учетной записи, обновим ее, а затем окончательно удалим ее с помощью веб-службы CRM IOrganizationService .
Шаг 1 — Откройте папку, в которую вы извлекли CRM SDK. Теперь откройте решение QuickStartCS.sln, перейдя по следующему адресу: SDK \ SampleCode \ CS \ QuickStart
Шаг 2 — Мы будем изучать проект QuickStart с упрощенным подключением . Откройте app.config в этом проекте. По умолчанию раздел connectionStrings в этом файле будет прокомментирован.
После этого раскомментируйте первый ключ строки подключения и отредактируйте следующие три детали:
Url — укажите URL вашего экземпляра CRM. В нашем случае, поскольку мы используем онлайн-версию CRM, вам придется упомянуть этот URL.
Имя пользователя — Ваше имя пользователя в CRM Online.
Пароль — Ваш пароль CRM Online.
Шаг 3 — Откройте файл SimplifiedConnection.cs в этом проекте и Runmethod внутри него.
public void Run(StringconnectionString, boolpromptforDelete) { try { // Establish a connection to the organization web service using CrmConnection. Microsoft.Xrm.Client.CrmConnection connection = CrmConnection.Parse(connectionString); // Obtain an organization service proxy. // The using statement assures that the service proxy will be properly disposed. using(_orgService = new OrganizationService(connection)) { //Create any entity records this sample requires. CreateRequiredRecords(); // Obtain information about the logged on user from the web service. Guid userid = ((WhoAmIResponse)_orgService.Execute(new WhoAmIRequest())).UserId; SystemUser systemUser = (SystemUser)_orgService.Retrieve("systemuser",userid, new ColumnSet(newstring[]{"firstname","lastname"})); Console.WriteLine("Logged on user is {0} {1}.", systemUser.FirstName,systemUser.LastName); // Retrieve the version of Microsoft Dynamics CRM. RetrieveVersionRequest versionRequest = new RetrieveVersionRequest(); RetrieveVersionResponse versionResponse = (RetrieveVersionResponse)_orgService.Execute(versionRequest); Console.WriteLine("Microsoft Dynamics CRM version {0}.", versionResponse.Version); // Instantiate an account object. Note the use of option set enumerations defined in OptionSets.cs. // Refer to the Entity Metadata topic in the SDK documentation to determine which attributes must // be set for each entity. Account account = new Account{Name = "Fourth Coffee"}; account.AccountCategoryCode = new OptionSetValue( (int)AccountAccountCateg oryCode.PreferredCustomer); account.CustomerTypeCode = new OptionSetValue( (int)AccountCustomerTypeCod e.Investor); // Create an account record named Fourth Coffee. _accountId = _orgService.Create(account); Console.Write("{0} {1} created, ",account.LogicalName,account.Name); // Retrieve the several attributes from the new account. ColumnSet cols = new ColumnSet( new String[]{"name","address1_postalcode","lastusedincampaign"}); Account retrievedAccount = (Account)_orgService.Retrieve("account", _accountId, cols); Console.Write("retrieved, "); // Update the postal code attribute. retrievedAccount.Address1_PostalCode = "98052"; // The address 2 postal code was set accidentally, so set it to null. retrievedAccount.Address2_PostalCode = null; // Shows use of a Money value. retrievedAccount.Revenue = new Money(5000000); // Shows use of a Boolean value. retrievedAccount.CreditOnHold = false; // Update the account record. _orgService.Update(retrievedAccount); Console.WriteLine("and updated."); // Delete any entity records this sample created. DeleteRequiredRecords(promptforDelete); } } // Catch any service fault exceptions that Microsoft Dynamics CRM throws. catch(FaultException<microsoft.xrm.sdk.organizationservicefault>) { // You can handle an exception here or pass it back to the calling method. throw; } }
Шаг 4 — Этот метод в основном демонстрирует все операции CRUD с использованием веб-сервисов CRM. Код сначала создает экземпляр организации, затем создает учетную запись, обновляет созданную запись и, наконец, удаляет ее. Давайте посмотрим на важные компоненты этого кода. Чтобы увидеть изменения в CRM на ходу, когда этот код выполняется, вы можете пошагово отладить этот код (как мы обсудим ниже) и одновременно увидеть изменения в CRM.
Шаг 4.1. Устанавливает соединение с организацией, используя строку соединения, которую мы изменили на шаге 2 .
Microsoft.Xrm.Client.CrmConnection connection = CrmConnection.Parse(connectionString);
Шаг 4.2 — Получение прокси-экземпляра веб-службы организации CRM.
_orgService = new OrganizationService(connection)
Шаг 4.3 — Создает новый объект сущности Account и устанавливает его Name, AccountCategoryCode и CustomerTypeCode.
Account account = new Account{Name = "Fifth Coffee"}; account.AccountCategoryCode = new OptionSetValue( (int)AccountAccountCategoryCode.P referredCustomer); account.CustomerTypeCode = new OptionSetValue( (int)AccountCustomerTypeCode.Investor);
Шаг 4.4 — Создает новую запись, используя метод Create сервиса организации.
_accountId = _orgService.Create(account);
Если вы перейдете к CRM, вы увидите вновь созданную запись учетной записи.
Шаг 4.5 — После создания учетной записи служба извлекает запись из CRM, используя метод веб-службы «Восстановить».
ColumnSet cols = new ColumnSet(new String[]{ "name","address1_postalcode","lastusedincampaign"}); Account retrievedAccount = (Account)_orgService.Retrieve("account", _accountId, cols);
Шаг 4.6 — Как только у вас будет полученная запись, вы можете установить обновленное значение записи.
retrievedAccount.Address1_PostalCode = "98052"; retrievedAccount.Address2_PostalCode = null; retrievedAccount.Revenue = new Money(5000000); retrievedAccount.CreditOnHold = false;
Шаг 4.7 — После установки обновленного значения записи обновите запись обратно в базу данных CRM, используя метод веб-службы Update.
_orgService.Update(retrievedAccount);
Если вы откроете запись в CRM, вы увидите, что эти значения обновлены там.
Шаг 4.8. Наконец, удалите запись, используя метод веб-сервиса Delete.
_orgService.Delete(Account.EntityLogicalName, _accountId);
Если вы теперь обновите ту же запись в CRM, вы увидите, что запись больше не доступна, так как она уже удалена.
Заключение
В этой главе мы рассмотрели две важные веб-службы, предоставляемые CRM, и рабочий пример того, как эти веб-службы можно использовать из внешнего приложения для выполнения различных операций CRUD.
Microsoft Dynamics CRM — Решения
Решения обеспечивают основу для упаковки, установки и удаления компонентов в соответствии с функциональностью вашего бизнеса. Решения позволяют настройщикам и разработчикам создавать, упаковывать и поддерживать модули программного обеспечения, расширяющие CRM. Любые настройки, расширения или конфигурации, выполненные в CRM, упаковываются, управляются и распространяются с использованием решений. Решения можно экспортировать в виде zip-файла из исходной организации, который затем можно импортировать в целевую организацию.
Для понимания рассмотрим следующие примеры сценариев:
-
Вы, как разработчик или настройщик, расширили или настроили CRM в среде разработки. Теперь вы хотите упаковать свои изменения и перенести их в следующую среду. Для этого вы можете создавать индивидуальные решения и публиковать их в более высоких средах.
-
Вы, как сторонний поставщик CRM, создали модуль CRM, который позволяет управлять данными в объектах Microsoft Dynamics CRM с помощью API-интерфейсов внешних веб-служб. Теперь вы хотите продать этот модуль другим клиентам. Используя решения, вы можете упаковать этот модуль и распространить их среди других клиентов, которые смогут установить это решение и использовать функции, предоставляемые вашим модулем.
Вы, как разработчик или настройщик, расширили или настроили CRM в среде разработки. Теперь вы хотите упаковать свои изменения и перенести их в следующую среду. Для этого вы можете создавать индивидуальные решения и публиковать их в более высоких средах.
Вы, как сторонний поставщик CRM, создали модуль CRM, который позволяет управлять данными в объектах Microsoft Dynamics CRM с помощью API-интерфейсов внешних веб-служб. Теперь вы хотите продать этот модуль другим клиентам. Используя решения, вы можете упаковать этот модуль и распространить их среди других клиентов, которые смогут установить это решение и использовать функции, предоставляемые вашим модулем.
Типы решений
Системное решение по умолчанию
Системное решение содержит готовые компоненты решения, определенные в Microsoft Dynamics CRM, без каких-либо настроек. Многие из компонентов системного решения являются настраиваемыми и могут использоваться в управляемых решениях или неуправляемых настройках.
В этом руководстве мы не создавали никаких решений и настраивали системное решение по умолчанию. Если вы помните, мы пошли в Настройки → Настройки → Настройка системы. Эта опция напрямую настраивает решение по умолчанию.
Управляемое решение
Управляемое решение — это готовое решение, предназначенное для распространения и установки. Управляемые решения могут быть установлены поверх системного решения или других управляемых решений.
Важные моменты —
-
Если вы экспортируете управляемое решение из одной организации и импортируете его в другую, вы не сможете редактировать решение в новой организации.
-
Управляемое решение напрямую не ссылается на системное решение.
-
При удалении управляемого решения удаляются все настройки, связанные с решением.
-
По умолчанию управляемое решение не может быть настроено в целевой организации. Однако, используя концепцию управляемых свойств, вы можете определить, будет ли настраиваться компонент решения, и если да, то какие конкретные части компонента будут настраиваться после экспорта решения в качестве управляемого решения.
Если вы экспортируете управляемое решение из одной организации и импортируете его в другую, вы не сможете редактировать решение в новой организации.
Управляемое решение напрямую не ссылается на системное решение.
При удалении управляемого решения удаляются все настройки, связанные с решением.
По умолчанию управляемое решение не может быть настроено в целевой организации. Однако, используя концепцию управляемых свойств, вы можете определить, будет ли настраиваться компонент решения, и если да, то какие конкретные части компонента будут настраиваться после экспорта решения в качестве управляемого решения.
Неуправляемое решение
Неуправляемое решение — это решение, которое все еще находится в стадии разработки и не предназначено для распространения. Неуправляемое решение содержит все неуправляемые настройки компонентов CRM, включая любые добавленные, измененные, удаленные или удаленные компоненты. По умолчанию любое новое решение является неуправляемым решением. Однако вы можете экспортировать неуправляемое решение как управляемое или неуправляемое решение.
Важные моменты —
-
Если вы экспортируете неуправляемое решение из одной организации и импортируете его в другую, вы можете редактировать решение в новой организации.
-
Неуправляемое решение напрямую ссылается на системное решение. Следовательно, изменения, внесенные в одно неуправляемое решение, будут применены ко всем неуправляемым решениям, которые ссылаются на одни и те же компоненты, включая системное решение.
-
Если вы удаляете компонент решения из неуправляемого решения, этот компонент навсегда удаляется из системы и больше не будет доступен. Если вы просто хотите удалить компонент из определенного неуправляемого решения, используйте удаление вместо удаления.
-
Удаление неуправляемого решения не приводит к удалению связанных настроек. Он просто удаляет решение из системы, но сделанные вами изменения все равно будут там.
Если вы экспортируете неуправляемое решение из одной организации и импортируете его в другую, вы можете редактировать решение в новой организации.
Неуправляемое решение напрямую ссылается на системное решение. Следовательно, изменения, внесенные в одно неуправляемое решение, будут применены ко всем неуправляемым решениям, которые ссылаются на одни и те же компоненты, включая системное решение.
Если вы удаляете компонент решения из неуправляемого решения, этот компонент навсегда удаляется из системы и больше не будет доступен. Если вы просто хотите удалить компонент из определенного неуправляемого решения, используйте удаление вместо удаления.
Удаление неуправляемого решения не приводит к удалению связанных настроек. Он просто удаляет решение из системы, но сделанные вами изменения все равно будут там.
Компоненты решения
Решение может использоваться для упаковки следующих компонентов, которые могут быть настроены с использованием стандартных, неуправляемых или управляемых решений.
Тип компонента | Составная часть |
---|---|
схема | юридические лица |
Атрибуты | |
Отношения | |
Наборы глобальных опций | |
Пользовательский интерфейс | Лента для нанесения |
SiteMap | |
формы | |
Ленты сущностей | |
Веб-ресурсы | |
аналитика | Сводки |
Отчеты | |
Зрительные | |
Процесс / Код | Процессы |
Диалоги | |
Workflows | |
Плагины | |
сборки | |
Шаги обработки | |
Шаблоны | Mail-слияние |
Эл. адрес | |
контракт | |
Статья | |
Безопасность | Роли безопасности |
Профили безопасности на уровне поля |
Создание решения
Шаг 1 — Перейдите в Настройки → Решения. Нажмите Новый.
Шаг 2 — В следующем окне введите следующие данные и нажмите Сохранить и закрыть.
Отображаемое имя — пример решения (это может быть любое имя).
Имя — будет установлено автоматически на основе отображаемого имени. Тем не менее, вы можете изменить это.
Издатель — Издатель по умолчанию. Издатель решения предоставляет общий префикс настройки и префикс значения параметра. Определение издателя решения определяет, каким образом ваши управляемые решения могут обновляться после распространения. Однако для этого примера и для большинства общих случаев вы можете установить его как Default Publisher.
Версия — укажите версию в следующем формате: major.minor.build.revision. Например: 1.0.0.0.
По умолчанию каждое решение добавляется как неуправляемое решение. После добавления решения вы можете добавить компоненты решения, создав их в контексте этого решения или добавив существующие компоненты из других решений. Например, вы можете создавать новые объекты, формы и т. Д. В контексте этого нового решения.
Экспорт решения
После внесения всех изменений, которые вы хотите упаковать как управляемое или неуправляемое решение, вы можете экспортировать свое решение следующим образом.
Шаг 1 — Откройте исходную организацию и перейдите к Настройки → Решения. Выберите решение, которое вы хотите экспортировать, и нажмите кнопку «Экспорт».
Шаг 2. В окне «Опубликовать настройки» нажмите «Опубликовать все настройки» и нажмите «Далее».
Шаг 3 — В следующем окне вы можете выбрать любую системную настройку, такую как автонумерация, настройки календаря и т. Д., Которые будут экспортированы вместе с решением. На данный момент вы можете избежать выбора любой опции и нажать кнопку «Далее».
Шаг 4 — В окне Тип пакета вы можете выбрать, хотите ли вы экспортировать пакет как управляемое или неуправляемое решение. Для этого примера давайте экспортируем его как неуправляемый. После этого нажмите Далее.
Шаг 5 — В следующем окне вы увидите исходную версию CRM, которую вы используете, и можете выбрать целевую версию. Нажмите Экспорт.
Шаг 6 — Как только вы нажмете «Экспорт», решение будет экспортировано в виде zip-файла. Сохраните этот zip-файл в нужном месте вашей системы.
Импорт решения
Теперь мы импортируем zip-файл решения, который мы экспортировали в предыдущем разделе, в новую целевую организацию.
Шаг 1 — Откройте целевую организацию и перейдите к Настройки → Решения. Нажмите Импорт.
Шаг 2 — Просмотрите ZIP-файл, который вы скачали с шага экспорта, и нажмите Next .
Шаг 3 — В следующем окне вы можете просмотреть детали пакета решения, если это необходимо. При нажатии кнопки «Импорт» запускается процесс импорта решения.
Шаг 4 — Как только процесс импорта завершится, он покажет статус успеха или неудачи. Если процесс завершится успешно, нажмите «Опубликовать все настройки». В случае сбоя при импорте решения вы получите подробный журнал ошибок, на котором не удалось выполнить шаг процесса импорта.
Шаг 5 — Мы закончили. Решение будет успешно импортировано в целевую организацию. Нажмите Закрыть.
Решение конфликта
Поскольку у вас может быть несколько разработчиков, работающих над настройкой и расширением CRM, у вас будет несколько управляемых и неуправляемых решений. Экспорт и импорт этих решений может иногда приводить к конфликтным сценариям. Например, предположим, что «Решение A» содержит поле в форме, в то время как «Решение B» удалило поле, а «Решение C» переименовало поле. В этом сценарии, что будет окончательным изменением? В таких противоречивых сценариях CRM использует два подхода.
Объединение — этот подход используется для компонентов пользовательского интерфейса, таких как панель команд, ленты и карты сайта. В соответствии с этим подходом компоненты решения пересчитываются снизу, и неуправляемые настройки организации применяются последними.
Лучшие победы — этот подход используется для всех других сценариев конфликта, кроме компонентов пользовательского интерфейса. Согласно этому подходу последнее изменение (управляемое или неуправляемое) имеет приоритет и применяется.
Заключение
В этой главе мы ввели понятие решений и различные типы решений и их компонентов. Затем мы узнали, как создавать, экспортировать и импортировать решения. Наконец, мы изучили две стратегии разрешения конфликтов, которые имеют место, когда у нас есть несколько управляемых и неуправляемых решений, влияющих на одни и те же компоненты решения.