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, поскольку это последняя стабильная версия, которая часто используется во многих организациях. Тем не менее, даже если вы используете какие-либо другие версии CRM, все концепции, изложенные в руководстве, останутся верными.

Предложения продуктов

Microsoft Dynamics CRM предлагается в двух категориях:

CRM онлайн

CRM Online - это облачное предложение Microsoft Dynamics CRM, в котором все внутренние процессы (такие как серверы приложений, настройки, развертывания, базы данных, лицензирование и т. Д.) Управляются на серверах Microsoft. CRM Online - это предложение на основе подписки, которое предпочтительнее для организаций, которые могут не захотеть управлять всеми техническими деталями, связанными с внедрением CRM. Вы можете начать настройку своей системы за несколько дней (не недель, месяцев или лет) и получить к ней доступ в Интернете через браузер.

CRM на месте

Локальная CRM - это более настраиваемое и надежное предложение Microsoft Dynamics CRM, в котором приложение и базы данных CRM будут развернуты на ваших серверах. Это предложение позволяет вам контролировать все ваши базы данных, настройки, развертывание, резервное копирование, лицензирование и другие настройки сети и оборудования. Как правило, организации, которые хотят использовать индивидуализированное решение CRM, предпочитают локальное развертывание, поскольку оно предлагает лучшие возможности интеграции и настройки.

С функциональной точки зрения оба предложения предлагают схожие функции; однако они существенно различаются с точки зрения реализации. Различия приведены в следующей таблице.

CRM онлайн CRM на месте
Это облачное решение от Microsoft, в котором все серверы и базы данных находятся под управлением Microsoft. Это локальное решение от Microsoft, в котором серверы и базы данных управляются заказчиком.
Вы можете начать работу с онлайн-предложением в течение нескольких дней. Вы платите за пользователей и за использованное пространство на ходу. Для настройки локального предложения необходимы технические навыки, а также достаточно времени, чтобы настроить экземпляр CRM и запустить его.
Он поддерживает относительно меньше настроек и расширений. Он поддерживает относительно больше настроек и расширений.
CRM Online не дает возможности выполнять резервное копирование и восстановление данных вручную, поскольку база данных размещена на серверах Microsoft. Однако Microsoft выполняет ежедневное резервное копирование базы данных. Локальная CRM дает полную возможность управлять вашей базой данных.
CRM Online предлагает различные тарифные планы в зависимости от ограничений на хранение данных, таких как 5 ГБ, 20 ГБ и т. Д. В локальной системе CRM нет таких ограничений на размер хранилища, поскольку данные существуют на ваших собственных серверах.
CRM Online предоставляет встроенные возможности таких функций, как аналитика, социальное внимание, аналитика и т. Д. Локальная CRM требует дополнительных затрат на эти функции.
CRM Online поддерживает автоматическое обновление до будущей версии. Локальные обновления CRM должны быть установлены администратором.

Доступ к CRM

Доступ к Microsoft Dynamics CRM можно получить с помощью любого из следующих параметров:

  • Browser
  • Мобильные устройства и планшеты
  • Outlook

Конкуренты продукции

Microsoft Dynamics CRM, несомненно, является одним из лучших продуктов в области CRM. Однако ниже перечислены другие продукты, которые конкурируют с Microsoft Dynamics CRM.

  • Salesforce.com
  • Oracle
  • 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

Начнем с настройки нашей CRM-среды. Мы будем использовать онлайн-версию CRM 2015, поскольку онлайн-версия предоставляет один месяц бесплатного пробного доступа. При этом вам не нужно будет приобретать какую-либо лицензию для изучения CRM.

Note- Поскольку Microsoft Dynamics CRM является растущим продуктом, возможно, что к тому времени, когда вы его изучите, у вас будет более новая версия продукта. В этом случае приложение может выглядеть не так, как на скриншотах из этого руководства. Однако основные концепции продукта остались прежними. Внешний вид и навигация продукта могут измениться, однако в большинстве случаев вы сможете легко перемещаться и находить необходимые параметры.

Настройка учетной записи Microsoft Dynamics CRM Online

Step 1 - Перейдите по следующему URL-адресу -

https://www.microsoft.com/en-us/dynamics365/home

Если в будущем вы не увидите варианты пробной версии по этой ссылке, просто попробуйте выполнить поиск «Бесплатная пробная версия Microsoft Dynamics CRM» в Google.

Step 2- Нажмите кнопку Попробовать бесплатно. Это запустит трехэтапный процесс регистрации, как показано на следующем снимке экрана. На шаге 1 трехэтапной регистрации введите обязательные данные, такие как имя, адрес электронной почты и язык.

Step 3- Нажмите кнопку Попробовать бесплатно. Это запустит трехэтапный процесс регистрации, как показано на следующем снимке экрана. На шаге 1 трехэтапной регистрации введите обязательные данные, такие как имя, адрес электронной почты и язык.

Step 4- На шаге 3 трехэтапной регистрации Microsoft проверит номер мобильного телефона, который вы указали. Для этого вы можете указать свой номер мобильного телефона и нажать «Написать мне». Затем он отправит одноразовый пароль на ваш мобильный телефон, с помощью которого вы сможете продолжить настройку.

Step 5- Будет создан ваш идентификатор пользователя Office 365. Вы можете сохранить эту информацию об идентификаторе пользователя для последующего доступа.

После настройки учетной записи откроется ваша панель управления CRM, которая будет выглядеть примерно так.

Чтобы еще раз подчеркнуть, приведенные выше снимки экрана могут измениться в будущей версии, однако настройка среды будет довольно простым процессом.

Скачивание CRM SDK

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

Step 1- Каждая версия Microsoft Dynamics CRM поставляется с собственной версией SDK. Лучший способ получить правильную версию SDK - это выполнить поиск соответствующей версии CRM в Google. Например, если ваша версия CRM - 2015, попробуйте выполнить поиск по запросу «Microsoft Dynamics CRM 2015 SDK».

Step 2- После загрузки запустите программу установки exe. Щелкните Продолжить.

Step 3- Вам будет предложено выбрать место для извлечения SDK. Выберите любое подходящее место, где вы хотите сохранить эталонный SDK.

Step 4- Откройте папку, в которую вы распаковали. Вы можете получить доступ ко всему содержимому SDK отсюда.

Заключение

В этой главе мы настроили нашу среду, создав учетную запись CRM Online. Затем мы загрузили CRM SDK, который будет использоваться в следующих главах этого руководства. Обязательно запишите учетные данные, с которыми вы настроили учетную запись, так как эти учетные данные понадобятся вам при следующем входе в систему.

Весь Microsoft Dynamics CRM разработан на основе следующих функциональных модулей.

  • Sales
  • Marketing
  • Управление услугами

Эти функциональные модули часто называют Work Areas.

Понимание функциональных модулей CRM

Все приложение CRM функционально разделено для разных типов пользователей и команд. Следовательно, если организация использует CRM для управления своими процессами, пользователи из отдела продаж будут использовать функции, входящие в модуль продаж, а пользователи из группы маркетинга будут использовать функции, которые подпадают под модуль маркетинга.

Все эти три функциональных модуля объединяются, чтобы управлять всем жизненным циклом привлечения нового клиента (маркетинг), продажи им услуг (продажи) и поддержки существующих клиентов (управление услугами).

Чтобы лучше понять этот поток, рассмотрим банк, который продает своим клиентам кредитные карты. Типичный жизненный цикл продажи кредитной карты клиенту выглядит следующим образом. На каждом этапе этого жизненного цикла вы увидите, как модули продаж, маркетинга и обслуживания выполняют свою роль.

Sales & Marketing- В колл-центр банка поступают данные о потенциальных клиентах; в CRM часто называют лидами. Эти лиды фиксируются в системе CRM с помощью маркетинговых кампаний, стимулов продаж, рефералов и т. Д.

Sales- Руководитель колл-центра общается с этими потенциальными клиентами посредством телефонных звонков, электронной почты и т. Д. Если клиент заинтересован в предложении кредитной карты, запись интереса будет преобразована в запись возможности (выигранный интерес).

Service- Как только клиент становится частью системы, компания будет помогать ему / ей с платежами, выставлением счетов, возвратом средств и т. Д. Всякий раз, когда у клиента возникают какие-либо вопросы или проблемы, он звонит в колл-центр и сообщает об инцидентах. Исполнительный директор свяжется с вами, чтобы разрешить дело с целью предоставления клиенту качественных услуг. Эти задачи относятся к CRM Service Management.

Навигация по рабочим областям CRM

Step 1 - Откройте домашнюю страницу CRM.

Step 2 - По умолчанию вы увидите выбранную рабочую область «Продажи».

Step 3- Чтобы изменить рабочую область, выберите опцию Показать рабочие области. Вы увидите варианты выбора продаж, обслуживания и маркетинга.

Step 4- Щелкните "Продажи". Это покажет вам все объекты, которые подпадают под категорию Продажи, такие как Учетные записи, Контакты, Лиды, Возможности, Конкуренты и т. Д. Каждая из этих сущностей классифицируется по своим бизнес-процессам, таким как Моя работа, Клиенты, Продажи, Обеспечение и т.

Step 5 - Аналогичным образом, если вы щелкните рабочую область «Маркетинг», вы увидите все объекты, связанные с бизнес-функциями «Маркетинг».

Модуль продаж

Модуль продаж CRM предназначен для управления всем жизненным циклом продаж нового клиента. Модуль продаж состоит из следующих подмодулей -

Leads- Представляет человека или организацию, которые могут стать потенциальным клиентом компании в будущем. Это первый шаг к привлечению потенциального клиента в систему.

Opportunities- Представляет потенциальную продажу покупателю. Как только интерес проявляет интерес к предложению, он конвертируется в возможность. Возможность будет либо выиграна, либо проиграна.

Accounts- Представляет компанию, с которой организация имеет отношения. Как только возможность выигрывает, она преобразуется либо в учетную запись, либо в контакты.

Contacts- Представляет человека или любое физическое лицо, с которым организация поддерживает отношения. Чаще всего эти Контактные лица являются клиентами организаций (например, все клиенты кредитных карт банка). Как только возможность выигрывает, она преобразуется в учетную запись или в контакты.

Competitors - Управляет всеми рыночными конкурентами организации.

Products - Управляет всеми продуктами, предлагаемыми организацией своим клиентам (например, все планы кредитных карт).

Quotes - Официальное предложение продуктов или услуг, предлагаемых по определенным ценам, отправленное потенциальному клиенту (например, годовая цена определенного плана кредитной карты, отправленная клиенту).

Orders - Предложение, принятое клиентом, превращается в Заказ (например, из всех планов, которые предлагает вам организация, вы можете выбрать подписку на 6 месяцев).

Invoices - Для выставленного заказа создается счет-фактура.

Модуль маркетинга

Маркетинговый модуль CRM предназначен для управления всем маркетинговым процессом организации для ее существующих и потенциальных клиентов. Модуль маркетинга состоит из следующих подмодулей -

Marketing Lists- Предоставляет способ группировать ваши контакты, аккаунты и лиды и взаимодействовать с ними посредством отправки рекламных писем, сведений о мероприятиях, информационных бюллетеней и других обновлений, относящихся к целевым клиентам. Вы можете определить критерии для создания маркетинговых списков (например, контакты в возрасте от 25 до 35 лет).

Campaigns - Кампании предназначены для измерения эффективности и достижения определенного результата, например, представления нового продукта или увеличения доли рынка, и могут включать различные каналы связи, такие как электронная почта, объявления в газетах, реклама на YouTube и т. Д.

Quick Campaigns - Быстрая кампания похожа на кампанию, но может быть связана только с одним типом действий.

Все вышеперечисленные модули маркетинга работают в тесной координации с модулем продаж.

Модуль управления услугами

Модуль управления услугами CRM предназначен для сосредоточения, управления и отслеживания операций по обслуживанию клиентов в организации, таких как поддержка сервисов на основе инцидентов, поддержка клиентов с использованием планирования обслуживания и т. Д.

Модуль управления услугами включает следующие подмодули -

  • Cases (Incidents)- Поддерживает любые запросы клиентов, проблемы или жалобы, которые можно отслеживать через инциденты / дела. Дело следует за различными этапами процесса разрешения проблемы, а затем, наконец, разрешается и закрывается.

  • Knowledge Base - Поддерживает главный репозиторий для всех общих вопросов и ответов, которые часто задает клиент.

  • Contracts - Контракты работают с кейсами с указанием всех активных контрактов, которые есть у клиента.

  • Resources/Resource Groups- Представляет людей, инструменты, помещения или части оборудования, которые используются для оказания услуги. Эти ресурсы можно использовать для решения конкретной проблемы клиента.

  • Services - Представляет все услуги, которые организация предлагает клиентам.

  • Service Calendar - Используется для составления графика работы и расписаний пользователей, работающих в организации.

Управление деятельностью

Все модули, описанные выше, используют модуль управления деятельностью CRM. Действие представляет собой любой вид взаимодействия с клиентом, такой как телефонный звонок, электронная почта, письмо и т. Д. Эти действия могут быть связаны с любыми объектами, описанными ранее, такими как Учетная запись, Контакт, Лид, Обращение и т. предоставляет следующие виды деятельности из коробки -

  • Телефонный звонок
  • Email
  • Task
  • Appointment
  • Повторяющаяся встреча
  • Letter
  • Fax
  • Ответ кампании
  • Действия кампании
  • Сервисная деятельность
  • Пользовательские действия

Заключение

В этой главе мы узнали о трех основных модулях CRM - продажах, маркетинге и управлении услугами. Мы поняли, как организованы рабочие области в CRM и как работает весь жизненный цикл организации CRM. Мы также рассмотрели модуль управления действиями CRM, который позволяет создавать действия по телефону, электронной почте, факсу и другие типы действий с клиентами.

Теперь, когда у нас есть функциональный обзор всех модулей CRM, давайте узнаем и разберемся с сущностями и формами в CRM.

Что такое сущность?

Сущность используется для моделирования и управления бизнес-данными в CRM. Контакты, обращения, организации, интересы, возможности, действия и т. Д. - все это объекты, которые содержат записи данных. Концептуально объект CRM эквивалентен таблице базы данных. Например, сущность «Контакты» будет содержать записи контактов, сущность «Обращения» будет содержать записи «Обращения» и так далее.

У вас могут быть как готовые сущности (которые по умолчанию поставляются с CRM), так и настраиваемые сущности (которые вы можете создавать с настройкой). Например, предположим, что вы храните данные о книгах, которые прочитали ваши клиенты. Для этого вы будете хранить данные о клиентах, используя готовую сущность «Контакты», но где бы вы хранили данные книг? У вас нет организации, которая может хранить данные для книг. В таких сценариях вы создадите новую настраиваемую сущность с именем «Книги» и свяжете ее с существующей сущностью «Контакты».

Для этого урока давайте рассмотрим пример хранения работодателей и сотрудников в CRM. Принимая во внимание этот пример, CRM "из коробки" предоставляетContactсущность, в которой вы можете идеально хранить всех своих сотрудников. Он также обеспечиваетAccountсущность, в которой вы можете хранить всех своих работодателей. Но для изучения сущностей мы создадим новую настраиваемую сущность с именемEmployer (и не использовать существующую сущность Account).

Создание нового объекта

Step 1 - Нажмите верхнюю кнопку ленты, а затем Settingsвариант. НажмитеCustomizations из раздела «Настройка» (см. следующий снимок экрана).

Step 2 - Теперь нажмите «Настроить систему».

Это откроет окно решения по умолчанию. Вы узнаете больше о решениях CRM в следующих главах, но пока вы будете использовать решение CRM по умолчанию.

Step 3 - Разверните опцию Entities на левой панели.

Step 4 - Теперь нажмите New → Entity.

Step 5- В форме объекта введите отображаемое имя в качестве работодателя и PluralName в качестве работодателей. В разделе «Области, в которых отображается этот объект» установите флажок «Продажи, услуги и маркетинг». При выборе этих параметров вновь созданная сущность будет отображаться на вкладках CRM «Продажи», «Обслуживание» и «Маркетинг».

Step 6- Щелкните значок «Сохранить и закрыть». Это создаст новый объект в базе данных CRM за кулисами.

Step 7 - В родительском окне «Решение по умолчанию» вы увидите вновь созданную сущность «Работодатель».

Step 8- Щелкните параметр «Опубликовать все настройки» на верхней панели ленты. Это опубликует (или зафиксирует) все изменения, которые мы сделали до сих пор. Вы можете закрыть это окно, нажав «Сохранить и закрыть».

Создание записей

CRM - это управление ценными данными в вашей системе. В этом разделе мы узнаем, как создавать, открывать, читать и удалять записи в CRM. Мы продолжим работу с организацией-работодателем, которую мы создали в предыдущей главе.

Step 1 - Перейдите к сетке записей сущности работодателя через Показать рабочие области → Продажи → Расширения → Работодатели.

Step 2 - Щелкните значок «Новый».

Откроется форма нового работодателя по умолчанию. Вы можете видеть, что в этой форме по умолчанию есть только одно редактируемое поле Имя. Введите Работодатель 1 в поле Имя. Щелкните Сохранить и закрыть.

Step 3 - В Active Employers вид, вы можете увидеть недавно созданную запись работодателя.

Доступ к записям

Чтобы получить доступ к уже созданным записям в CRM, перейдите на страницу этой сущности. В нашем случае перейдите в Показать рабочие области → Продажи → Расширения → Работодатели. Вы увидите список имеющихся там записей в сетке. Щелкните любую запись работодателя, чтобы получить к ней доступ.

Обновление записей

Как только у вас будет открыта запись, вы можете просто отредактировать любые детали в форме. По умолчанию CRM 2015 поставляется с опцией автосохранения, которая сохраняет любые изменения, внесенные в форму, через 30 секунд после изменения. Как вариант, вы можете нажать Ctrl + S.

Если вы хотите отключить функцию автосохранения, перейдите в «Настройки» → «Администрирование» → «Параметры системы» → «Включить автосохранение для всех форм» и выберите «Нет».

Удаление записей

Step 1 - Выберите одну или несколько записей, которые вы хотите удалить, и нажмите Delete кнопка.

Step 2 - Подтвердите удаление записей, нажав Delete.

Заключение

Как видно из приведенного выше примера, форма работодателя по умолчанию имеет только одно поле. Однако в реальных сценариях у вас будет много настраиваемых полей в форме. Например, если вы посмотрите на образец записи контакта (который представляет собой готовую CRM-сущность), в нем будет много полей для хранения контактной информации, такой как полное имя, адрес электронной почты, телефон, адрес, обращения и т. Д.

В следующих главах вы узнаете, как редактировать эту форму по умолчанию и добавлять в нее различные типы полей.

Прежде чем вы узнаете, как добавлять настраиваемые поля в формы CRM, давайте посмотрим, какие типы полей данных поддерживаются CRM.

Типы полей

CRM предлагает 11 типов полей данных, которые можно размещать в формах:

  • Одна строка текста
  • Набор вариантов (раскрывающийся список)
  • Два варианта (переключатель)
  • Image
  • Целое число
  • Число с плавающей запятой
  • Десятичное число
  • Currency
  • Несколько строк текста
  • Дата и время
  • Lookup

В следующей таблице перечислены все с кратким описанием.

Старший Нет Тип поля и описание
1

Single Line of Text

В этом поле хранится до 4000 символов текста. Вы также можете указать один из следующих форматов: электронная почта, текст, текстовая область, URL-адрес, символ тикера и телефон. Вы можете установить максимальную длину и режим IME для каждого из них.

2

Option Set (Dropdown)

В этом поле хранится набор параметров, каждая из которых имеет числовое значение и метку. Другими словами, это раскрывающееся поле в CRM. Вы также можете определить глобальные наборы параметров, которые можно использовать в нескольких формах.

3

Two Options (Radio Button)

Это поле предоставляет пользователю два варианта выбора (0 или 1). Другими словами, это поле переключателя.

4

Image

Если у объекта есть поле изображения, его можно настроить для отображения изображения для записи в приложении.

5

Whole Number

В этом поле хранятся целые значения от -2 147 483 648 до 2 147 483 647. Он поддерживает такие форматы, как «Нет», «Продолжительность», «Часовой пояс» и «Язык». Вы также можете установить минимальное и максимальное значения.

6

Floating Point Number

В этом поле хранятся числа с плавающей запятой до 5 десятичных знаков с точностью от 0,00 до 1 000 000 000,00. Вы также можете установить минимальное и максимальное значения.

7

Decimal Number

В этом поле хранится до 10 десятичных знаков со значениями от -100000000000.00 до 100000000000.00.

8

Currency

Это поле используется для хранения любых денежных значений в диапазоне от 922 337 203 685 477,0000 до 922 337 203 685 477,0000. Вы также можете указать точность как десятичное ценообразование, точность валюты или любое значение от 0 до 4.

9

Multiple Lines of Text

Это текстовое поле с прокруткой. Вы можете установить максимальное количество символов для этого поля.

10

Date and Time

Это поле используется для хранения данных, связанных с датой, в CRM с двумя поддерживаемыми форматами: только дата и дата и время. Вы также можете указать поведение как «Локальный пользователь», «Только дата» и «Независимость от часового пояса».

11

Lookup

Вы можете создать поле поиска, используя уже созданную связь сущностей, но еще не используемую с другим полем поиска. Если вы создаете поле поиска в форме объекта, связь создается автоматически. Поле подстановки создается как поле отношения.

В последних двух главах вы изучали создание новых сущностей, создание новых записей и типы полей, доступных в CRM. В этой главе вы научитесь добавлять новые поля в формы CRM.

Из 11 типов полей данных, изученных в предыдущей главе, вы будете использовать три типа полей на вашем работодателе - набор параметров (раскрывающийся список), несколько строк текста и DateTime. Поле «Набор опций» будет использоваться для хранения типа работодателя, несколько строк текста будут использоваться для хранения краткого описания работодателя, а поле «Дата и время» будет использоваться для хранения даты, когда компания была основана.Note: У вас уже было поле имени в вашей форме, которое было однострочным типом текста.

Добавление полей в форму

Step 1 - Нажмите верхнюю кнопку ленты, а затем Settingsвариант. НажмитеCustomizations из раздела «Настройка» (см. снимок экрана ниже).

Step 2 - Теперь нажмите кнопку «Настроить систему».

Это откроет окно DefaultSolution. Вы узнаете больше о решениях CRM в следующих главах, но пока вы будете использовать решение CRM по умолчанию.

Step 3 - Разверните опцию Entities на левой панели.

Step 4- В развернутых объектах выберите Работодатель. Это откроет детали объекта в правом окне. Разверните параметр «Работодатель» на левой панели, и вы сможете увидеть формы, представления, диаграммы, поля и другие параметры.

Step 5- Щелкните Поля. Откроется сетка, показывающая все поля, которые были добавлены по умолчанию при создании этой сущности.

Step 6- Щелкните кнопку New. В новом открывшемся окне введите следующие данные -

Display Name - Тип работодателя

Name- Это поле будет заполнено автоматически в зависимости от выбранного вами отображаемого имени. Однако, если вы хотите изменить его, вы можете это сделать.

Data Type- Набор опций. Как только вы выберете тип данных в качестве набора параметров, отобразится панель параметров. Щелчок по значку плюса (+) создает новый элемент набора параметров с меткой по умолчанию как элемент и значением по умолчанию 100000000. Вы можете изменить метку этого элемента, чтобы добавить четыре варианта, представляющих типы работодателей: частный, государственный, многонациональный и государственный.

Step 7- Нажмите «Сохранить и закрыть» на верхней ленте. Вы успешно создали поле «Тип работодателя».

Step 8 - Подобно тому, что вы только что сделали для добавления поля типа работодателя, добавьте три других поля, как описано и показано на следующих снимках экрана -

Number of Employees - Это будет поле целого числа.

Founded On - Это будет поле DateTime.

Employer Description - Это будет поле с несколькими строками текста.

Step 9- Теперь добавьте эти новые поля в форму работодателя. Для этого щелкните Формы на левой панели навигации под сущностью Работодатель. Это покажет вам две формы с информацией об имени. По умолчанию CRM создает две формы - Основная и Mobile-Express. Щелкните по основной форме.

Step 10 - Вы можете увидеть недавно добавленные поля на панели Field Explorer справа.

Step 11 - Перетащите эти поля на вкладку «Общие».

Step 12 - Щелкните Сохранить, а затем щелкните Опубликовать.

Step 13- Теперь вы можете создавать записи о работодателях с полями обновлений. Перейдите в CRM Home → Продажи → Работодатели → Новый. Новая форма, которая откроется на этот раз, будет содержать все новые поля, которые вы добавили в этой главе. Вы можете ввести некоторые данные и нажать «Сохранить и закрыть».

Заключение

В этой главе мы узнали, как работать с формами CRM и как настраивать их, помещая в них различные типы полей. Мы также научились добавлять столько полей, сколько захотим, в любую форму и располагать их с помощью различных вкладок и разделов в соответствии с бизнес-требованиями.

Microsoft Dynamics CRM - это обширный продукт, который с годами претерпел значительные изменения. Продукт поставляется с множеством готовых функций, встроенных в систему. Вам не нужно писать код для использования этих функций. Одной из важных готовых функций является возможность поиска в CRM, поскольку она поддерживает расширенные возможности запросов и фильтрации.

Быстрый поиск

По умолчанию в виде сетки для каждой сущности в CRM поддерживается функция быстрого поиска с использованием панели поиска в правом верхнем углу. Ниже приведен снимок экрана быстрого поиска по сущности «Контакт».

Вы можете попробовать ввести строку поиска, например «Роберт», и она вернет все соответствующие записи.

Вы можете префикс ключевого слова поиска с помощью * (звездочка), чтобы выполнить поиск по шаблону.

Note - При использовании версии Microsoft Dynamics CRM веб-клиента быстрый поиск всегда выполняет поиск по всем активным записям, независимо от выбранного представления.

Вы можете настроить быстрый поиск (например, настроить любой другой вид), чтобы изменить критерии фильтрации, настроить сортировку, добавить столбцы просмотра, добавить столбцы поиска и изменить другие свойства.

Расширенный поиск

Расширенный поиск позволяет искать записи любого объекта в CRM. Это одна из самых сильных и самых полезных функций, которые поставляются с CRM "из коробки". Значок расширенного поиска отображается на верхней панели ленты Microsoft Dynamics CRM независимо от того, на каком экране вы находитесь.

Щелкните значок расширенного поиска, чтобы открыть окно расширенного поиска. Это окно позволит вам выбрать объект, для которого вы хотите искать записи, применить критерии фильтрации и группирования и сохранить ваши представления расширенного поиска как личные представления.

Возьмем пример. Предположим, вы хотите найти все контакты с именем, в которых есть Роберт и которые разведены. Для этого -

Step 1- Выберите Контакты в раскрывающемся списке Искать. Это раскрывающееся меню будет содержать все сущности, присутствующие в вашей системе.

Step 2- Введите критерии поиска, как показано на следующем снимке экрана. Вы можете добавить столько параметров поискового запроса, сколько захотите. Вы даже можете сгруппировать такие критерии, используя параметры группы. Например, если вы хотите найти все контакты, имя которых Роберт или Марк, вы можете добавить два критерия поиска и сгруппировать их с помощью GroupOR.

Step 3- Щелкните кнопку Результаты. Он покажет совпадающие записи в новой вкладке.

Step 4- Вы также можете редактировать столбцы, которые вы хотели бы видеть в результатах поиска, нажав «Редактировать столбцы». Например, наша текущая сетка содержит только два столбца - ФИО и Рабочий телефон. Однако, если вы хотите, чтобы в эту сетку был добавлен дополнительный столбец идентификатора электронной почты, вы можете сделать это с помощью этой опции.

Сохранение пользовательского просмотра

На данном этапе, если вы хотите сохранить этот критерий поиска вместе с фильтрами и отредактированными столбцами, вы можете сделать это, нажав кнопку «Сохранить». После сохранения вы можете использовать это сохраненное представление, когда находитесь на странице этой сущности.

Например, представьте, что в качестве руководителя отдела обслуживания клиентов вы обслуживаете клиентов двух типов: обычных и премиальных. Следовательно, вы можете создать расширенный фильтр с этими соответствующими категориями и сохранить их как Обычные контакты, назначенные мне, и Премиум-контакты, назначенные мне. Затем вы можете быстро получить доступ к этим представлениям прямо со страницы сущности «Контакт», не выполняя быстрый поиск или расширенный поиск каждый раз, когда вы используете систему.

Веб-ресурсы в CRM - это виртуальные веб-файлы, которые хранятся в базе данных CRM и используются для реализации функций веб-страниц в CRM. Эти файлы могут быть HTML, JScript, Silverlight или любых других поддерживаемых типов.

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

  • Extending on Client Side - Использование веб-ресурсов и сценариев форм.

  • Extending on Server Side - Плагины, рабочие процессы и веб-службы (мы узнаем об этой части в следующих главах).

Использование веб-ресурсов

Как упоминалось выше, расширение CRM на стороне клиента - это то место, где появляются веб-ресурсы. Чтобы понять это четко, рассмотрим следующие варианты использования -

  • У вас есть 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. Ниже приведены необходимые шаги -

Step 1 - Зайдите в Настройки → Настройки → Настроить систему.

Step 2 - В левой навигации выберите Web Resources. В настоящее время вы не сможете видеть какие-либо веб-ресурсы, поскольку мы еще ничего не создали.

В следующих главах мы рассмотрим, как создавать веб-ресурсы.

Веб-ресурсы JScript, вероятно, являются наиболее важным типом веб-ресурсов, которые вы будете использовать с 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).

В таких случаях вы должны написать свой код JavaScript (с использованием модели Xrm.Page) и добавить его как веб-ресурс JScript в CRM, на который затем можно будет ссылаться в любом месте с помощью уникального URI.

Настройки ленты

Наконец, одним из других распространенных способов использования JavaScript является обработка таких настроек ленты, как:

  • Отображение / скрытие кнопок ленты на основе некоторой логики
  • Включение / отключение кнопок ленты на основе некоторой логики
  • Обработка того, что происходит, когда вы нажимаете определенную кнопку ленты

Для обработки таких сценариев вы напишете свою логику JavaScript (используя модель Xrm.Page), а затем добавите ее как веб-ресурс JScript. Затем на этот веб-ресурс можно ссылаться в XML-коде кнопки ленты, и мы можем указать, какой метод, в каком файле JScript следует вызывать, чтобы проверить, должна ли кнопка ленты отображаться / скрываться или включаться / отключаться, или обрабатывать события щелчка.

Объектная модель Xrm.Page

Ниже приводится иерархия объекта Xrm.Page, в которой показаны доступные пространства имен, объекты и их коллекции. Вы будете использовать эти свойства при написании кода JScript.

Пространства имён

Старший Нет Объект и описание
1

Context

Предоставляет методы для получения контекстно-зависимой информации, такой как сведения об организации, данные вошедшего в систему пользователя или параметры, которые были переданы форме в строке запроса.

2

Data

Предоставляет доступ к данным сущности и методам для управления данными в форме, а также в управлении потоком бизнес-процессов.

3

UI

Содержит методы для получения информации о пользовательском интерфейсе в дополнение к коллекциям для нескольких подкомпонентов формы.

Объекты

Старший Нет Объект и описание
1

Entity

Предоставляет способ -

  • Получить информацию о записи
  • Сохранить метод
  • Атрибуты коллекции
2

Process

Методы получения свойств потока бизнес-процессов.

3

Navigation

Предоставляет доступ к элементам навигации с помощью коллекции элементов.

4

FormSelector

Использует коллекцию Items для доступа к доступным формам для пользователя. Также использует метод навигации для закрытия и открытия форм.

5

Stages

Каждый процесс имеет набор этапов, к которым можно получить доступ с помощью метода процесса getStages.

6

Steps

Каждый этап состоит из различных этапов, к которым можно получить доступ с помощью метода этапа getSteps.

Коллекции

Старший Нет Коллекции и описание
1

Attributes

Предоставляет доступ к атрибутам сущности, доступным в форме.

2

Controls

ui.controls - Предоставляет доступ к каждому элементу управления, присутствующему в форме.

attribute.controls - Предоставляет доступ ко всем элементам управления в атрибуте.

section.controls - Предоставляет доступ ко всем элементам управления в разделе.

3

Items

Предоставляет доступ ко всем элементам навигации в форме.

4

Tabs

Предоставляет доступ ко всем вкладкам формы.

5

Sections

Предоставляет доступ ко всем разделам формы.

Поддерживаемые события в программировании форм

Программирование форм с использованием модели Xrm.Page позволяет обрабатывать следующие события формы:

  • onLoad
  • onSave
  • onChange
  • TabStateChange
  • OnReadyStateComplete
  • PreSearch
  • События управления потоком бизнес-процессов

Пример программирования формы

В этом примере мы поместим некоторые проверки в контактную форму на основе PreferredMethodofCommunication, который выбирает пользователь. Следовательно, если пользователь выбирает свой предпочтительный метод в качестве электронной почты, тогда поле электронной почты должно стать обязательным, как и для других полей телефона и факса.

Step 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'); 
}

Step 2 - Откройте форму сущности «Контакт», выбрав «Настройки» → «Настройки» → «Настроить систему» ​​→ «Сущность контакта» → «Формы» → «Основная форма».

Step 3 - Щелкните Свойства формы.

Step 4 - В окне «Свойства формы» нажмите «Добавить».

Step 5 - В следующем окне «Поиск записи веб-ресурса» нажмите «Создать», поскольку мы создаем новый веб-ресурс.

Step 6 - В окне «Новый веб-ресурс» введите следующие данные -

Name - new_contacts.js

Display Name - contacts.js

Type - JScript

Upload File - Загрузите файл JavaScript, созданный на локальном компьютере.

Step 7- Нажмите «Сохранить», а затем «Опубликовать». После этого закройте окно, и вы вернетесь к окну поиска записи веб-ресурса.

Step 8- Здесь вы можете увидеть веб-ресурс new_contacts.js. Выберите его и нажмите Добавить. Вы успешно добавили новый веб-ресурс и зарегистрировали его в форме.

Step 9- Теперь мы добавим обработчик события при изменении поля Предпочитаемый способ связи. Этот обработчик событий вызовет только что написанную функцию JavaScript. Выберите следующие параметры в разделе «Обработчик событий».

Control - Предпочтительный способ связи

Event - OnChange

Затем щелкните значок Add кнопку, как показано на следующем снимке экрана.

Step 10 - В следующем окне свойств обработчика мы укажем метод, который будет вызываться при возникновении события изменения.

Выберите Library как new_contacts.js и Function как validatePreferredMethodOfCommunication. Щелкните ОК.

Step 11- Теперь вы сможете увидеть библиотеку форм (веб-ресурс) и зарегистрированные в ней события. Щелкните ОК.

Step 12 - Нажмите «Сохранить», а затем «Опубликовать».

Step 13- Теперь откройте любую контактную форму и выберите в качестве предпочтительного способа связи Телефон. Это сделает поле «Мобильный телефон» обязательным. Если вы сейчас попытаетесь сохранить этот контакт, не вводя номер мобильного телефона, появится сообщение об ошибке: «Вы должны указать значение для мобильного телефона».

Заключение

В этой главе мы начали с понимания трех важных приложений JavaScript в CRM. Позже мы исследовали модель Xrm.Page и использовали ее для изучения программирования форм вместе с примером.

В этой главе мы узнаем о различных веб-ресурсах в Microsoft Dynamics CRM.

Приложения веб-ресурсов HTML

Веб-ресурс HTML в CRM может содержать любое содержимое HTML, которое может отображаться в браузере. Рассмотрим следующие сценарии, в которых вы хотели бы использовать веб-ресурсы HTML:

  • У вас есть статическая HTML-страница, которую вы хотите отобразить на экране CRM.

  • У вас есть настраиваемая HTML-страница, которая ожидает некоторые входные параметры и отображается на основе этих входных параметров. Например, представьте, что вы получаете информацию из внешнего API или веб-службы и хотите отобразить ее в CRM.

  • Вы хотите отображать некоторую информацию с другим внешним видом, нежели стандартный пользовательский интерфейс CRM.

У вас есть настраиваемая страница ASPX (вне приложения CRM), которая отображается на основе входных параметров. Поскольку CRM не позволяет вам иметь веб-ресурсы ASPX, вы можете создать веб-ресурс HTML и вызывать внешнюю страницу ASPX с этой HTML-страницы.

Пример веб-ресурса HTML

Мы создадим очень простой веб-ресурс HTML, который будет отображать настраиваемый текст «Добро пожаловать в TutorialsPoint». Обратите внимание, что это очень простой пример веб-ресурса HTML. На практике веб-ресурсы HTML были бы более сложными, чем это.

Step 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>

Step 2- Сначала мы создадим новый веб-ресурс, а затем сделаем ссылку на него в контактной форме. Откройте DefaultSolution и перейдите на вкладку WebResources на левой панели. Щелкните New.

Step 3- Откроется окно нового веб-ресурса. Введите данные, как показано на следующем снимке экрана, и просмотрите файл HTML, который мы создали на шаге 1. Нажмите «Сохранить и опубликовать». Закройте окно.

Step 4 - Вы увидите, что новый веб-ресурс добавлен в сетку веб-ресурсов.

Step 5- Теперь откройте контактную форму через Настройки → Настройки → Настройка системы → Контакт → Основная форма. Выберите раздел «Контактная информация» и перейдите на вкладку «Вставка» на верхней панели ленты. Щелкните Веб-ресурс.

Step 6- Откроется окно «Добавить веб-ресурс». Щелкните «Поиск веб-ресурса» в этом окне, чтобы открыть окно «Запись поиска веб-ресурса». Найдите только что созданный веб-ресурс (new_sampleHTMLWebResource), выберите его в таблице и нажмите «Добавить».

Step 7- Вернувшись к «Добавить веб-ресурс», введите имя и метку, как показано на следующем снимке экрана, и нажмите «ОК». Закройте окно.

Вы увидите, что веб-ресурс HTML добавлен под полем адреса.

Step 8 - Чтобы проверить это, откройте любую запись контакта, и вы увидите содержимое веб-ресурса HTML, отображаемое там.

Ограничения веб-ресурсов HTML

  • В веб-ресурсах HTML нет поддерживаемого способа использования серверного кода.

  • Веб-ресурсы HTML могут принимать только ограниченное количество параметров. Чтобы передать более одного значения в параметр данных, вам необходимо будет закодировать параметры, включая логику декодирования на другом конце.

Рабочие процессы в CRM позволяют автоматизировать простые и сложные бизнес-процессы в CRM. Вы можете создавать рабочие процессы, используя готовые функции CRM, или писать собственные рабочие процессы с кодом .NET для реализации сложных рабочих процессов. Процессы рабочего процесса выполняются в фоновом режиме или в реальном времени и могут дополнительно требовать ввода данных пользователем.

Рабочие процессы могут запускаться на основе определенных условий или даже запускаться вручную пользователями. Внутри рабочие процессы CRM реализуются с помощью Windows Workflow Foundation. В этой главе мы узнаем о настройке рабочих процессов.

Настройка рабочего процесса состоит из следующих основных частей (последовательно):

  • Настройте сущность, на которой будет выполняться рабочий процесс
  • Настройте, будет ли рабочий процесс выполняться синхронно или асинхронно
  • Настройте сообщение (событие), по которому будет запускаться рабочий процесс
  • Настройте область, в которой будет выполняться рабочий процесс
  • Настроить этапы и шаги (действия) рабочего процесса

Синхронный / асинхронный рабочий процесс

При создании рабочего процесса вы увидите параметр «Запустить этот рабочий процесс в фоновом режиме» (рекомендуется), который определяет, будет ли рабочий процесс выполняться в реальном времени (синхронно) или в фоновом режиме (асинхронно).

Как правило, рекомендуется запускать рабочие процессы в фоновом режиме, поскольку они используют системные ресурсы по мере их доступности. Однако вы всегда можете переключиться с рабочего процесса в реальном времени на фоновый и наоборот.

Сообщения рабочего процесса

Рабочие процессы могут быть зарегистрированы для определенных событий следующим образом:

  • Когда создается запись
  • Когда статус записи меняется
  • Когда назначается запись
  • Когда значение поля записи изменяется
  • Когда запись удалена

Объем рабочего процесса

Рабочие процессы позволяют вам установить область, в которой будет выполняться рабочий процесс. Ниже приведены поддерживаемые области рабочего процесса.

User Рабочий процесс будет выполняться только для записей, принадлежащих тому же пользователю, что и пользователь рабочего процесса.
Business Unit Рабочий процесс будет выполняться с записями, принадлежащими пользователям бизнес-подразделения, так же как и пользователю рабочего процесса.
Parent Child Business Units Рабочий процесс будет выполняться с записями, принадлежащими пользователям бизнес-единицы, так же, как пользователь рабочего процесса, а также любых дочерних бизнес-единиц.
Organization Рабочий процесс будет выполняться с записями, принадлежащими любому пользователю в CRM.

Шаги рабочего процесса

Рабочие процессы в CRM - это комбинация серии шагов, которым будет следовать рабочий процесс. Вы даже можете разделить эти шаги на логические этапы. Следующие шаги поддерживаются рабочими процессами CRM -

Conditional Steps
Check Condition Задает логический оператор «если (условие) - то».
Conditional Branch Задает логический оператор «иначе - если - то». Это можно использовать только с условием проверки.
Default Action Задает логический оператор «else». Это можно использовать только с условием проверки.
Wait Steps
Wait Condition Ожидает выполнения определенного условия. Неприменимо для рабочих процессов в реальном времени.
Parallel Wait Branch Задает альтернативное условие ожидания с набором дополнительных шагов, которые могут быть выполнены после выполнения начальных критериев.
Action Steps
Create Record Создает запись указанной сущности с указанными значениями по умолчанию.
Update Record Обновляет выбранную запись указанными или динамическими значениями.
Assign Record Назначает выбранную запись пользователю или группе.
Send Email Отправляет электронное письмо.
Perform Action Задает настраиваемые шаги (и действия) рабочего процесса. Эти настраиваемые шаги должны быть разработаны разработчиком CRM.
Change Status Изменяет статус выбранной записи.
Stop Workflow Останавливает текущий рабочий процесс

Пример рабочего процесса

В этом примере мы создадим простой рабочий процесс, который работает в фоновом режиме, чтобы назначить любую вновь созданную запись контакта конкретному пользователю, а затем отправить клиенту приветственное письмо.

Step 1 - Зайдите в Настройки → Процессы.

Step 2 - Щелкните New.

Step 3 - В окне CreateProcess введите следующие данные -

Process Name - Новый рабочий процесс клиента (это может быть любое имя, которое вы хотите)

Category - Рабочий процесс

Entity - Контакт (это будет объект, для которого вы создаете рабочий процесс. В нашем случае это Контакт)

Run this workflow in the background (recommended)- Отметьте эту опцию, поскольку мы создаем фоновый асинхронный рабочий процесс. Наконец, нажмите ОК.

Step 4 - В новом окне процесса введите следующие данные -

Activate As - Процесс

Scope - Пользователь

Start when - Запись создана

Нажмите Add Step → Назначить запись.

Step 5- Вы увидите, что в рабочий процесс добавлен новый шаг. На этом шаге мы укажем пользователя, которому должны быть назначены все созданные контакты. Введите имя шага какAssign Record to Team. Параметр «Назначить» будет установлен по умолчанию в качестве объекта, для которого мы создаем рабочий процесс (в нашем случае «Контакт»). Щелкните значок поиска.

Step 6- В окне поиска выберите любого пользователя, которого вы хотите. Вы даже можете выбрать конкретную команду, которой хотите назначить записи. Щелкните Добавить.

Step 7- Добавьте еще один шаг, нажав Добавить шаг → Отправить электронное письмо. На этом этапе мы настроим отправку электронной почты клиенту.

Step 8- Будет добавлен новый шаг. Введите его имя в поле «Отправить электронное письмо клиенту». Щелкните Установить свойства.

Step 9 - В следующем окне для настройки электронной почты выполните следующие операции:

From- Щелкните поле "От". На правой панели выберите OwningUser и User. Щелкните Добавить → ОК.

To- Щелкните поле «Кому». На правой панели выберите «Контакт» и «Контакт». Щелкните Добавить → ОК.

Subject - Введите соответствующую тему.

Body - Введите соответствующее содержание Body.

Step 10 - Нажмите «Сохранить», а затем «Активировать».

Step 11 - В появившемся всплывающем окне «Подтверждение активации процесса» нажмите «Активировать».

Step 12- Перейдите на вкладку «Контакты» и создайте новый контакт. Как только вы создадите новый контакт, сохранив запись, вы увидите, что в поле «Владелец» указан пользователь, который вы настроили в рабочем процессе. Кроме того, если вы перейдете на вкладку «Действия», вы увидите, что для этого контакта создается электронная почта. Это подтверждает успешное выполнение рабочего процесса.

Рабочий процесс против плагина

И рабочие процессы, и плагины могут использоваться для расширения и автоматизации функций CRM. Во многих сценариях оба подхода могут взаимозаменяемо использоваться вместо друг друга. Например, если у вас есть простое требование отправить электронное письмо своим клиентам, вы можете сделать это через плагин или рабочий процесс.

Итак, как выбрать между созданием рабочего процесса и плагином? Следующий список пытается объяснить то же самое -

  • Хотя плагины и рабочие процессы могут использоваться для выполнения как синхронной, так и асинхронной логики, плагины обычно предпочтительнее для синхронной логики, а рабочие процессы - для асинхронной логики.

  • Как правило, для реализации сложной бизнес-логики плагины предпочтительнее рабочих процессов. Рабочие процессы предпочтительнее, когда вы хотите добиться относительно простых функций (таких как отправка электронных писем, назначение пользователей и т. Д.)

  • Плагины необходимо разрабатывать с кодированием, в то время как рабочие процессы могут быть настроены непосредственно бизнес-пользователями без каких-либо знаний о рабочих процессах.

  • Рабочие процессы могут выполняться по запросу. Следовательно, если есть требования, когда пользователь хочет запустить некоторую логику вручную, рабочие процессы будут лучшим выбором.

  • Из-за влияния на производительность синхронные плагины обеспечивают лучшую производительность (и пропускную способность) по сравнению с рабочими процессами в реальном времени в сценариях, где частота запросов выше.

Заключение

В этой главе мы познакомились с одной из очень важных функций CRM - рабочими процессами. Сначала мы разобрались с рабочими процессами синхронизации / асинхронизации, сообщениями, областью действия, шагами и, наконец, рассмотрели живой пример создания и запуска рабочего процесса. Наконец, мы увидели различия между рабочим процессом и плагином.

Подключаемый модуль - это настраиваемая бизнес-логика, которая интегрируется с Microsoft Dynamics CRM для изменения или расширения стандартного поведения платформы. Плагины действуют как обработчики событий и регистрируются для выполнения при определенном событии в CRM. Плагины написаны на C # или VB и могут работать в синхронном или асинхронном режиме.

Вот некоторые сценарии, в которых вы могли бы написать плагин:

  • Вы хотите выполнить некоторую бизнес-логику, такую ​​как обновление определенных полей записи или обновление связанных записей и т. Д., Когда вы создаете или обновляете запись CRM.

  • Вы хотите вызвать внешнюю веб-службу при определенных событиях, таких как сохранение или обновление записи.

  • Вы хотите динамически вычислять значения полей при открытии любой записи.

  • Вы хотите автоматизировать такие процессы, как отправка электронных писем своим клиентам об определенных событиях в CRM.

Рамки событий

Платформа обработки событий в CRM обрабатывает синхронные и асинхронные запросы подключаемых модулей, передавая их конвейеру выполнения событий. Каждый раз, когда событие запускает логику подключаемого модуля, в веб-службу организации CRM отправляется сообщение, где оно может быть прочитано или изменено другими подключаемыми модулями или любыми основными операциями платформы.

Этапы конвейера плагина

Весь конвейер плагинов разделен на несколько этапов, на которых вы можете зарегистрировать свою собственную бизнес-логику. Указанный этап конвейера указывает, на каком этапе цикла выполнения плагина выполняется код вашего плагина. Из всех этапов конвейера, указанных в следующей таблице, вы можете зарегистрировать свои настраиваемые плагины только до и после событий. Вы не можете зарегистрировать плагины в основных операциях Platform Core.

Событие Сценический псевдоним Описание
До события Предварительная проверка Этап в конвейере для подключаемых модулей, которые должны выполняться перед основной операцией системы. Плагины, зарегистрированные на этом этапе, могут выполняться вне транзакции базы данных.
До события Перед операцией Этап в конвейере для подключаемых модулей, которые должны выполняться перед основной операцией системы. Плагины, зарегистрированные на этом этапе, выполняются в транзакции базы данных.
Операция ядра платформы MainOperation Интранзакция, основная операция системы, такая как создание, обновление, удаление и так далее. На этом этапе нельзя зарегистрировать настраиваемые плагины. Только для внутреннего использования.
Сообщение событие Послеоперационный Этап в конвейере для подключаемых модулей, которые должны выполняться после основной операции. Плагины, зарегистрированные на этом этапе, выполняются в транзакции базы данных.

Каждый раз, когда приложение CRM вызывает событие (например, сохранение или обновление записи), происходит следующая последовательность действий:

  • Событие запускает вызов веб-службы, и выполнение проходит через этапы конвейера событий (до события, операции ядра платформы, после события).

  • Информация упаковывается внутри как сообщение OrganizationRequest и, наконец, отправляется во внутренние методы веб-службы CRM и основные операции платформы.

  • Сообщение OrganizationRequest сначала принимается подключаемыми модулями перед событием, которые могут изменять информацию перед передачей ее в основные операции платформы. После основных операций платформы сообщение упаковывается как OrganizationResponse и передается подключаемым модулям после операции. Плагины постопераций могут при желании изменить эту информацию перед передачей в плагин async.

  • Плагины получают эту информацию в виде объекта контекста, который передается методу Execute, после чего происходит дальнейшая обработка.

  • После того, как вся обработка плагина завершена, выполнение передается обратно в приложение, которое вызвало событие.

Сообщения плагина

Сообщения - это события, на которые зарегистрирован плагин (или бизнес-логика). Например, вы можете зарегистрировать плагин для создания сообщения контакта. Это будет запускать бизнес-логику всякий раз, когда создается новая запись контакта.

Для настраиваемых сущностей следующие сообщения поддерживаются в зависимости от того, принадлежит ли сущность пользователю или организации.

Имя сообщения Тип собственности
Назначить Только объекты, принадлежащие пользователям
Создайте Организации, принадлежащие пользователям и организациям
удалять Организации, принадлежащие пользователям и организациям
Предоставление доступа Только объекты, принадлежащие пользователям
ModifyAccess Только объекты, принадлежащие пользователям
Получить Организации, принадлежащие пользователям и организациям
RetrieveMultiple Организации, принадлежащие пользователям и организациям
RetrievePrincipalAccess Только объекты, принадлежащие пользователям
RetrieveSharedPrincipalsAndAccess Только объекты, принадлежащие пользователям
RevokeAccess Только объекты, принадлежащие пользователям
SetState Организации, принадлежащие пользователям и организациям
SetStateDynamicEntity Организации, принадлежащие пользователям и организациям
Обновить Организации, принадлежащие пользователям и организациям

Для стандартных сущностей по умолчанию поддерживается более 100 сообщений. Некоторые из этих сообщений применимы ко всем объектам, в то время как некоторые из них относятся к определенным объектам. Вы можете найти полный список поддерживаемых сообщений в файле Excel внутри SDK:SDK\Message-entity support for plug-ins.xlsx

Плагин написания

В этом разделе мы изучим основы написания плагина. Мы будем создавать образец плагина, который создает действие Task для последующей работы с клиентом всякий раз, когда новый клиент добавляется в систему, то есть всякий раз, когда в CRM создается новая запись Contactrecord.

Прежде всего, вам нужно будет включить ссылки на Microsoft.Xrm.Sdkпространство имен. CRM SDK содержит все необходимые сборки SDK. Предполагая, что вы уже загрузили и установили SDK из главы 2, откройте Visual Studio. Создайте новый проект типа Class Library. Вы можете назвать проект SamplePlugins и нажать OK.

Добавьте ссылку на 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);
            }
         }
      }
   }
}

Ниже приводится пошаговое объяснение того, что делает этот код.

Step 1- Реализует метод Execute, принимая объект IServiceProvider в качестве параметра. Поставщик услуг содержит ссылки на множество полезных объектов, которые вы собираетесь использовать в плагине.

Step 2 - Получает объект IPluginExecutionContext с помощью метода GetService IServiceProvider.

Step 3- Получает объект целевой сущности из коллекции InputParameters объекта контекста. Этот объект класса Entity ссылается на запись сущности Contact, в которой будет зарегистрирован наш плагин.

Step 4- Затем он создает объект сущности Task и устанавливает надлежащую тему, описание, даты, категорию и относящийся к объекту. Параметр aboutobjectid указывает, для какой записи контакта создается эта запись активности. Вы можете видеть, что код получает идентификатор родительской записи контакта с помощью context.OutputParameters и связывает его с записью сущности Task, которую вы создали.

Step 5 - Создает объект IOrganizationServiceFactory, используя объект IServiceProvider.

Step 6 - Создает объект IOrganizationService, используя объект IOrganizationServiceFactory.

Step 7- Наконец, используя метод Create этого служебного объекта. Он создает последующие действия, которые сохраняются в CRM.

Подписание сборки плагина

Этот раздел применим только в том случае, если вы регистрируете сборку плагина впервые. Вам необходимо войти в сборку с помощью ключа, чтобы иметь возможность развернуть плагин. Щелкните решение правой кнопкой мыши и выберите "Свойства".

Выберите вкладку «Подписание» в левой части окна и установите флажок «Подписать сборку». Затем выберите «Создать» в «Выбрать файл ключа строгого имени».

Введите имя файла ключей в качестве подключаемых модулей (это может быть любое другое имя). Снимите флажок Защитить мой ключевой файл паролем и нажмите ОК. Щелкните Сохранить.

Наконец, создайте решение. Щелкните правой кнопкой мыши → Сборка. При сборке решения будет сгенерирована сборочная DLL, которую мы будем использовать в следующей главе для регистрации этого плагина.

Обработка исключений в плагине

Чаще всего логика вашего плагина должна обрабатывать исключения времени выполнения. Для синхронных плагинов вы можете вернутьInvalidPluginExecutionExceptionисключение, которое покажет пользователю диалоговое окно с ошибкой. В диалоговом окне ошибки будет содержаться настраиваемое сообщение об ошибке, которое вы передаете объекту Message объекта исключения.

Если вы посмотрите на наш код, мы выбрасываем исключение InvalidPluginExecutionException в нашем блоке catch.

throw new InvalidPluginExecutionException(ex.Message);

Заключение

Плагины, безусловно, имеют решающее значение для любой пользовательской реализации CRM. В этой главе мы сосредоточились на понимании модели фреймворка событий, этапов конвейера, сообщений и написании образца плагина. В следующей главе мы зарегистрируем этот плагин в CRM и посмотрим, как он работает от начала до конца.

В предыдущей главе мы создали образец плагина для создания последующего действия Task при создании записи контакта. В этой главе мы увидим, как зарегистрировать этот плагин в CRM с помощью инструмента регистрации плагинов. Вы можете найти инструмент по следующему адресу: SDK / Tools / PluginRegistration / PluginRegistration.exe.

Для удобства процесс регистрации плагина разделен на три раздела:

  • Подключение к серверу
  • Регистрация сборки
  • Регистрация плагина

Подключение к серверу

Step 1 - Запустите PluginRegistration.exeиз указанного ранее места. Нажмите кнопку «Создать новое соединение».

Step 2- В окне входа выберите Office 365, поскольку мы используем онлайн-версию CRM. Введите свои учетные данные и нажмите «Войти».

Step 3 - Инструмент откроется и будет выглядеть как на следующем снимке экрана.

Регистрация сборки

Step 1 - Перейдите в раздел «Регистрация» → «Зарегистрировать новую сборку».

Step 2- Откроется окно «Регистрация новой сборки». Щелкните значок «Навигация» и найдите библиотеку подключаемого модуля, созданную в предыдущей главе.

Step 3- После навигации по DLL нажмите «Загрузить сборку». Это заполнит сборку SamplePlugins и все ее классы плагинов. Вы можете увидетьPostCreateContactкласс плагина выделен ниже. Если бы ваша сборка плагинов имела 3 класса плагинов, она бы показала три плагина, перечисленных там.

Step 4- Выберите «Режим изоляции» как «Песочницу», «Местоположение как базу данных» и нажмите «Зарегистрировать выбранные плагины». Он покажет вам сообщение об успешном завершении регистрации.

Регистрация плагина

Теперь мы будем регистрировать конкретные шаги, на которых будут вызываться отдельные плагины.

Step 1 - Выберите плагин PostCreateContact.

Step 2 - Щелкните Зарегистрироваться → Зарегистрировать новый шаг.

Step 3 - Мы будем регистрировать этот плагин при создании объекта «Контакт», на этапе послеоперационного периода и в синхронном режиме.

Message - Создать

Primary Entity - Контакты

Event Pipeline Stage of Execution - Послеоперационный период

Execution Mode - синхронный

Оставьте остальные параметры по умолчанию и нажмите «Зарегистрировать новый шаг».

Вы можете увидеть, что в плагин добавлен новый шаг.

Теперь перейдем в CRM и проверим, правильно ли работает наш плагин. Обратите внимание, что эти шаги тестирования относятся к нашему примеру плагина.

Тестирование плагина

Перейдите на вкладку Контакты и создайте новую запись. После сохранения записи вы можете увидеть новое действие, созданное и связанное с этой записью.

Вы можете щелкнуть действие, чтобы увидеть детали, которые мы установили в коде.

Это подтверждает, что наш плагин работал успешно. Точно так же вы можете расширить свои плагины для достижения очень сложных функций.

Microsoft Dynamics CRM предоставляет две важные веб-службы, которые используются для доступа к CRM из внешнего приложения и вызова веб-методов для выполнения общих операций с бизнес-данными, таких как создание, удаление, обновление и поиск в CRM.

Рассмотрим следующие сценарии -

  • У вас есть внешнее приложение .NET, которое должно взаимодействовать с CRM. Например, вы можете захотеть вставить запись контакта в CRM, когда новый клиент регистрируется во внешнем приложении.

  • Или, может быть, вы хотите искать записи в CRM и отображать результаты поиска во внешнем приложении.

В таких сценариях вы можете использовать веб-службы, предоставляемые CRM, чтобы использовать их в своем приложении и выполнять операции создания, удаления, обновления и поиска в CRM.

Веб-служба IDiscoveryService

Эта веб-служба возвращает список организаций, к которым принадлежит указанный пользователь, и конечную точку URL-адреса для каждой организации.

Веб-служба IOrganizationService

Эта веб-служба является основной веб-службой, используемой для доступа к данным и метаданным в 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

Эта сборка определяет запросы и ответы для неосновных сообщений, а также перечисления, необходимые для работы с данными организации. Ниже приведены пространства имен, поддерживаемые этими двумя сборками.

Каждая из этих сборок поддерживает определенные сообщения, которые будут использоваться для работы с данными, хранящимися в любом объекте. Полный список поддерживаемых ими сообщений можно найти по следующим ссылкам -

Supported xRM Messages - https://msdn.microsoft.com/en-us/library/gg334698.aspx

Supported CRM Messages - https://msdn.microsoft.com/en-us/library/gg309482.aspx

Методы веб-службы IOrganizationService

В IOrganizationService предоставляет восемь методов, которые позволяют выполнять все стандартные операции с системой и настраиваемыми объектами, а также с метаданными организации.

Старший Нет Метод и описание
1

IOrganizationService.Create

Создает запись.

2

IOrganizationService.Update

Обновляет существующую запись.

3

IOrganizationService. Retrieve

Получает запись.

4

IOrganizationService. RetrieveMultiple

Извлекает коллекцию записей.

5

IOrganizationService. Delete

Удаляет запись.

6

IOrganizationService. Associate

Создает связь между записями.

7

IOrganizationService.Disassociate

Удаляет ссылку между записями.

8

IOrganizationService.Execute

Используется для общей обработки записей, а также для специальной обработки, такой как разрешение дел, обнаружение дубликатов и т.

Пример веб-службы

Чтобы понять, как веб-сервисы работают в CRM, мы рассмотрим пример, предоставляемый CRM SDK. В этом примере мы создадим новую запись Учетной записи, обновим ее, а затем, наконец, удалим ее с помощью CRM.IOrganizationService веб-сервис.

Step 1- Откройте папку, в которую вы распаковали CRM SDK. Теперь откройте решение QuickStartCS.sln, перейдя в следующую папку: SDK \ SampleCode \ CS \ QuickStart

Step 2 - Мы будем исследовать QuickStart с участием Simplified Connectionпроект. открытоapp.configв этом проекте. По умолчаниюconnectionStrings раздел в этом файле будет прокомментирован.

Отсюда раскомментируйте первый ключ строки подключения и отредактируйте следующие три детали:

Url- Укажите URL-адрес вашего экземпляра CRM. В нашем случае, поскольку мы используем онлайн-версию CRM, вам нужно будет указать этот URL.

Username - Ваше имя пользователя CRM Online.

Password - Ваш пароль CRM Online.

Step 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;
   }
}

Step 4- Этот метод в основном демонстрирует все операции CRUD с использованием веб-сервисов CRM. Код сначала создает экземпляр организации, затем создает запись Account, обновляет созданную запись и, наконец, удаляет ее. Давайте посмотрим на важные компоненты этого кода. Чтобы на ходу видеть изменения в CRM при выполнении этого кода, вы можете отлаживать этот код шаг за шагом (как мы обсудим ниже) и одновременно видеть изменения в CRM.

Step 4.1 - Устанавливает соединение с организацией, используя строку подключения, которую мы изменили в Step 2.

Microsoft.Xrm.Client.CrmConnection connection = CrmConnection.Parse(connectionString);

Step 4.2 - Получает прокси-экземпляр веб-службы организации CRM.

_orgService = new OrganizationService(connection)

Step 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);

Step 4.4 - Создает новую запись, используя метод Create службы организации.

_accountId = _orgService.Create(account);

Если вы перейдете в CRM, вы увидите новую запись учетной записи.

Step 4.5 - После создания учетной записи служба извлекает запись из CRM, используя метод веб-службы Retrieve.

ColumnSet cols = new ColumnSet(new String[]{
   "name","address1_postalcode","lastusedincampaign"}); 
Account retrievedAccount = 
   (Account)_orgService.Retrieve("account", _accountId, cols);

Step 4.6 - Получив полученную запись, вы можете установить обновленное значение записи.

retrievedAccount.Address1_PostalCode = "98052"; 
retrievedAccount.Address2_PostalCode = null; 
retrievedAccount.Revenue = new Money(5000000); 
retrievedAccount.CreditOnHold = false;

Step 4.7 - После установки обновленного значения записи обновите запись обратно в базу данных CRM, используя метод обновления веб-службы.

_orgService.Update(retrievedAccount);

Если вы откроете запись в CRM, вы увидите, что эти значения обновлены там.

Step 4.8 - Наконец, удалите запись с помощью метода удаления веб-службы.

_orgService.Delete(Account.EntityLogicalName, _accountId);

Если вы сейчас обновите ту же запись в CRM, вы увидите, что запись больше не доступна, поскольку она уже удалена.

Заключение

В этой главе мы рассмотрели две важные веб-службы, предоставляемые CRM, и рабочий пример того, как эти веб-службы могут использоваться из внешнего приложения для выполнения различных операций CRUD.

Решения предоставляют основу для упаковки, установки и удаления компонентов в соответствии с функциями вашего бизнеса. Решения позволяют настройщикам и разработчикам создавать, упаковывать и поддерживать модули программного обеспечения, расширяющие CRM. Любые настройки, расширения или конфигурации, выполняемые в CRM, упаковываются, управляются и распространяются с помощью решений. Решения можно экспортировать в виде zip-файла из исходной организации, который затем можно импортировать в целевую организацию.

Чтобы понять это, рассмотрим следующие примеры сценариев -

  • Вы, как разработчик или настройщик, расширили или настроили CRM в среде разработки. Теперь вы хотите упаковать свои изменения и переместить их в следующую среду. Для этого вы можете создавать индивидуальные решения и публиковать их в более высоких средах.

  • Вы, как сторонний поставщик CRM, создали модуль CRM, который позволяет управлять данными в объектах Microsoft Dynamics CRM с помощью API внешних веб-служб. Теперь вы хотите продать этот модуль другим клиентам. Используя решения, вы можете упаковать этот модуль и распространить их среди других клиентов, которые смогут установить это решение и использовать функции, предоставляемые вашим модулем.

Типы решений

Системное решение по умолчанию

Системное решение содержит готовые компоненты решения, определенные в Microsoft Dynamics CRM, без каких-либо настроек. Многие компоненты системного решения можно настраивать и использовать в управляемых решениях или неуправляемых настройках.

На протяжении всего этого руководства мы не создавали никаких решений и настраивали системное решение по умолчанию. Если вы помните, мы зашли в Настройки → Настройки → Настроить систему. Этот параметр напрямую настраивает решение по умолчанию.

Управляемое решение

Управляемое решение - это готовое решение, предназначенное для распространения и установки. Управляемые решения могут быть установлены поверх системного решения или других управляемых решений.

Important Points -

  • Если вы экспортируете управляемое решение из одной организации и импортируете его в другую, вы не можете редактировать решение в новой организации.

  • Управляемое решение не ссылается напрямую на системное решение.

  • При удалении управляемого решения удаляются все настройки, связанные с решением.

  • По умолчанию управляемое решение нельзя настроить в целевой организации. Однако, используя концепцию управляемых свойств, вы можете определить, будет ли компонент решения настраиваться, и если да, то какие конкретные части компонента можно будет настраивать после того, как решение будет экспортировано как управляемое решение.

Неуправляемое решение

Неуправляемое решение - это решение, которое все еще находится в стадии разработки и не предназначено для распространения. Неуправляемое решение содержит все неуправляемые настройки компонентов CRM, включая любые добавленные, измененные, удаленные или удаленные компоненты. По умолчанию любое новое решение является неуправляемым. Однако вы можете экспортировать неуправляемое решение как управляемое или неуправляемое решение.

Important Points -

  • Если вы экспортируете неуправляемое решение из одной организации и импортируете его в другую, вы можете редактировать решение в новой организации.

  • Неуправляемое решение напрямую ссылается на системное решение. Следовательно, изменения, внесенные в одно неуправляемое решение, будут применены ко всем неуправляемым решениям, которые ссылаются на одни и те же компоненты, включая системное решение.

  • Если вы удалите компонент решения из неуправляемого решения, он будет окончательно удален из системы и больше не будет доступен. Если вы просто хотите удалить компонент из определенного неуправляемого решения, используйте remove вместо delete.

  • Удаление неуправляемого решения не приводит к удалению связанных настроек. Он просто удаляет решение из системы, но внесенные вами изменения останутся.

Компоненты решения

Решение можно использовать для упаковки следующих компонентов, которые можно настроить с помощью решений по умолчанию, неуправляемых или управляемых решений.

Тип компонента Составная часть
Схема Сущности
Атрибуты
Отношения
Глобальные наборы параметров
Пользовательский интерфейс Лента приложения
Карта сайта
Формы
Ленты сущностей
Интернет-ресурсы
Аналитика Дашборды
Отчеты
Визуализации
Процесс / Код Процессы
Диалоги
Рабочие процессы
Плагины
Сборки
Шаги обработки
Шаблоны Слияние почты
Эл. адрес
Договор
Статья
Безопасность Роли безопасности
Профили безопасности полевого уровня

Создание решения

Step 1- Перейдите в Настройки → Решения. Щелкните New.

Step 2 - В следующем окне введите следующие данные и нажмите «Сохранить и закрыть».

Display Name - Пример решения (имя может быть любым).

Name- Устанавливается автоматически на основе отображаемого имени. Однако вы можете это изменить.

Publisher- Издатель по умолчанию. Издатель решения предоставляет общий префикс настройки и префикс значения параметра. Определение издателя решения определяет, как ваши управляемые решения могут быть обновлены после распространения. Однако для этого примера и для большинства общих случаев вы можете установить его как Издатель по умолчанию.

Version- Укажите версию в следующем формате: major.minor.build.revision. Например: 1.0.0.0.

По умолчанию каждое решение добавляется как неуправляемое. После добавления решения вы можете добавлять компоненты решения, создавая их в контексте этого решения или добавляя существующие компоненты из других решений. Например, вы можете создавать новые сущности, формы и т. Д. В контексте этого нового решения.

Экспорт решения

Когда у вас есть все изменения, которые вы хотите упаковать как управляемое или неуправляемое решение, вы можете экспортировать свое решение следующим образом.

Step 1- Откройте исходную организацию и перейдите в Настройки → Решения. Выберите решение, которое вы хотите экспортировать, и нажмите кнопку «Экспорт».

Step 2 - В окне «Опубликовать настройки» нажмите «Опубликовать все настройки», а затем нажмите «Далее».

Step 3- В следующем окне вы можете дополнительно выбрать любые системные настройки, такие как автоматическая нумерация, настройки календаря и т. Д., Которые будут экспортированы вместе с решением. На данный момент вы можете не выбирать какие-либо опции и нажать «Далее».

Step 4- В окне «Тип пакета» вы можете выбрать, хотите ли вы экспортировать пакет как управляемое или неуправляемое решение. В этом примере давайте экспортируем его как неуправляемый. После этого нажмите Далее.

Step 5- В следующем окне вы можете увидеть исходную версию CRM, которую вы используете, и можете выбрать целевую версию. Щелкните Экспорт.

Step 6- После нажатия кнопки «Экспорт» решение будет экспортировано в виде zip-файла. Сохраните этот zip-файл в желаемом месте в вашей системе.

Импорт решения

Теперь мы импортируем zip-файл решения, который мы экспортировали в предыдущем разделе, в новую целевую организацию.

Step 1- Откройте целевую организацию и перейдите в Настройки → Решения. Щелкните Импорт.

Step 2 - Просмотрите zip-файл, который вы загрузили на этапе экспорта, и нажмите Next.

Step 3- В следующем окне вы можете просмотреть подробную информацию о пакете решения, если это необходимо. Нажатие кнопки «Импорт» запустит процесс импорта решения.

Step 4- По завершении процесса импорта будет отображаться статус успешного или неудачного завершения. Если процесс завершится успешно, нажмите «Опубликовать все настройки». В случае сбоя импорта решения будет предоставлен подробный журнал ошибок, на каком этапе процесса импорта произошел сбой.

Step 5- Мы закончили. Решение будет успешно импортировано в целевую организацию. Щелкните Закрыть.

Решение конфликта

Поскольку над настройкой и расширением CRM может работать несколько разработчиков, у вас будет несколько управляемых и неуправляемых решений. Экспорт и импорт этих решений иногда может привести к конфликтным ситуациям. Например, предположим, что «Решение A» содержит поле в форме, в то время как «Решение B» удалило поле, а «Решение C» переименовало поле. Каким будет окончательное изменение в этом сценарии? В таких конфликтующих сценариях CRM использует два подхода.

Merge- Этот подход используется для компонентов пользовательского интерфейса, таких как панель команд, ленты и карты сайта. В соответствии с этим подходом компоненты решения пересчитываются снизу, а неуправляемые настройки организации применяются в последнюю очередь.

Top Wins- Этот подход используется для всех других сценариев конфликтов, кроме компонентов пользовательского интерфейса. Согласно этому подходу последнее изменение (управляемое или неуправляемое) имеет приоритет и применяется.

Заключение

В этой главе мы познакомили вас с концепцией решений, а также с различными типами решений и их компонентами. Затем мы узнали, как создавать, экспортировать и импортировать решение. Наконец, мы изучили две стратегии разрешения конфликтов, которые имеют место, когда у нас есть несколько управляемых и неуправляемых решений, влияющих на одни и те же компоненты решения.