Пошаговое руководство. Создание адаптера веб-приложения UII

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

В этом пошаговом руководстве вы создадите внешнее веб-приложение под названием QsWebApplication и разместите его в Unified Service Desk. После этого вы создадите и настроите адаптер веб-приложения MyWebApplicationAdapter для внешнего веб-приложения в целях взаимодействия с Unified Service Desk. Веб-приложение имеет 4 метки, по одной для имени, фамилии, адреса и идентификатора клиента, а также идентификатор и 4 соответствующих текстовых поля для отображения значений Unified Service Desk.

Содержание

Необходимые условия

Шаг 1. Создание образца веб-приложения

Шаг 2. Настройка веб-приложения в Dynamics CRM

Шаг 3. Проверка веб-приложения

Шаг 4. Создание адаптера веб-приложения

Шаг 5. Настройка адаптера веб-приложения в Dynamics CRM

Шаг 6. Тестирование адаптера веб-приложения

Необходимые условия

  • Microsoft .NET Framework 4.5.2

  • Клиентское приложение Unified Service Desk; обязательно для тестирования размещенного элемента управления.

  • Microsoft Visual Studio 2012 или Visual Studio 2013

  • Диспетчер пакетов NuGet для Visual Studio 2012 or Visual Studio 2013

  • Шаблоны Пакет SDK Microsoft Dynamics CRM для Visual Studio, содержащей шаблон проекта размещенного элемента управления UII. Его можно получить одним из следующих способов:

Шаг 1. Создание образца веб-приложения

  1. Загрузите пакет SDK UII (.exe)

  2. Чтобы извлечь файлы, дважды щелкните имя пакета.

  3. Перейдите в папку <ExtractedFolder>\UII\SampleCode\UII\AIF\ QsWebApplication и откройте файл Microsoft.Uii.QuickStarts.QsWebApplication.csproj в Visual Studio.

  4. Нажмите клавишу F5 или выберите Отладка > Начать отладку для размещения образца веб-приложения на своем компьютере. Приложение будет размещено в https://localhost:2627/.

Шаг 2. Настройка веб-приложения в Dynamics CRM

  1. Выполните вход в Microsoft Dynamics CRM.

  2. Перейдите в раздел Параметры > Unified Service Desk. (Как это сделать?)

  3. Выберите Размещенные элементы управления.

  4. Нажмите кнопку Создать.

  5. На странице Создать размещенный элемент управления укажите следующие значения.

    Поле значение

    Название

    QsWebApplication

    Тип компонента USD

    Размещенное приложение CCA

    Размещенное приложение

    Размещенное веб-приложение

    Приложение глобальное

    Флажок установлен

    Группа отображения

    MainPanel

    Адаптер

    Не использовать адаптер

    Приложение динамическое

    Нет

    Размещение приложения

    Использовать SetParent

    URL-адрес

    Укажите местоположение, где размещено веб-приложение. В данном случае это https://localhost:2627/.

  6. Нажмите кнопку Сохранить.

Шаг 3. Проверка веб-приложения

  1. Убедитесь, что образец веб-приложения, которые вы создали в разделе 1, еще работает.

  2. Запустите клиент Unified Service Desk для подключения к серверу Microsoft Dynamics CRM.

  3. При успешном входе в систему на рабочем столе вы увидите Образец внешнего веб-приложения.

  4. Щелкните вкладку Образец внешнего веб-приложения для просмотра веб-приложения, размещенного в Unified Service Desk.

Примечание

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

Шаг 4. Создание адаптера веб-приложения

  1. Запустите Microsoft Visual Studio и создайте новый проект.

  2. В диалоговом окне Создание проекта :

    1. В списке установленных шаблонов в левой части окна разверните узел Visual C# и выберите Шаблоны SDK CRM > Unified Service Desk > Адаптер веб-приложения UII.

    2. Укажите имя и расположение проекта, а затем нажмите кнопку ОК, чтобы создать новый проект.

    3. Выберите WebAppAdapter.cs и обновите определение NotifyContextChange со следующим кодом для подстановки данных в текстовые поля из контекстной информации. Дополнительные сведения: NotifyContextChange

      public override bool NotifyContextChange(Context context)
              {
                  // Populating text fields from context information.
      
                  HTMLDocument htmlDoc = Browser.Document as HTMLDocument;
                  if (htmlDoc != null)
                  {
                      IHTMLElementCollection htmlElementCollection = htmlDoc.all;
                      IHTMLElement htmlFirstName = htmlElementCollection.item("txtFirstName", 0) as IHTMLElement;
                      htmlFirstName.setAttribute("value", context["firstname"], 0);
                      IHTMLElement htmlLastName = htmlElementCollection.item("txtLastName", 0) as IHTMLElement;
                      htmlLastName.setAttribute("value", context["lastname"], 0);
                      IHTMLElement htmlAddress = htmlElementCollection.item("txtAddress", 0) as IHTMLElement;
                      htmlAddress.setAttribute("value", context["address1_line1"], 0);
                      IHTMLElement htmlID = htmlElementCollection.item("txtID", 0) as IHTMLElement;
                      htmlID.setAttribute("value", context["CustomerID"], 0);
                  }
                  return base.NotifyContextChange(context);
              }
      
    4. Добавьте следующий код в определение переопределения DoAction для обновления приложения с использованием значений из Unified Service Desk

      public override bool DoAction(HostedWebApplication.WebAction action, ref string data)
              {
                  Trace.WriteLine(string.Format("{0}>>>>> RECEIVED (WebAction) Action : {1} ", this.Name, action.Name));
      
                  // Check to see if the browser is working on something before allowing the system to do 'normal' behavior.
                  if (Browser.WebBrowser.ReadyState != tagREADYSTATE.READYSTATE_COMPLETE)
                  {
                      // Browser is not in a state to process this request,  Queue it for when the browser is ready to handle it. 
                      Trace.WriteLine(string.Format("{0}>>>>> Browser Busy,({2}) Queuing Action : {1} ", this.Name, action.Name, Browser.WebBrowser.ReadyState.ToString()));
                      qReqActionList.Enqueue(new BrowserActionData(action, data));
                      return false;
                  }
                Trace.WriteLine(string.Format("{0}>>>>>>>>>>> Action:Name={1} Action:Url={2} Action:Query={3} Action:Init={4}", this.Name, action.Name, action.Url, action.QueryString, action.Initialization));
      
                  // Get browser DOM and element collection.
                  // Create an XML Document to load the passed in data to.
                  HTMLDocument htmlDoc = Browser.Document as HTMLDocument;
                  IHTMLElementCollection htmlElementCollection = htmlDoc.all;
      
                  // Check action name for something we know how to process.
                  switch (action.Name)
                  {
                      case "UpdateFirstName":
                          IHTMLElement htmlFirstName = htmlElementCollection.item("txtFirstName", 0) as IHTMLElement;
                          htmlFirstName.setAttribute("value", data, 0);
                          break;
                      case "UpdateLastName":
                          IHTMLElement htmlLastName = htmlElementCollection.item("txtLastName", 0) as IHTMLElement;
                          htmlLastName.setAttribute("value", data, 0);
                          break;
                      case "UpdateAddress":
                          IHTMLElement htmlAddress = htmlElementCollection.item("txtAddress", 0) as IHTMLElement;
                          htmlAddress.setAttribute("value", data, 0);
                          break;
                      case "UpdateID":
                          IHTMLElement htmlID = htmlElementCollection.item("txtID", 0) as IHTMLElement;
                          htmlID.setAttribute("value", data, 0);
                          break;
                  }
                  return false;
              }
      
    5. Сохраните проект и постройте его (Построение > Построить решение). После сборки проекта создается сборка (MyWebApplicationAdapter.dll) в папке \bin\debug вашей папки проекта. Эта сборка понадобится позже для тестирования и использования адаптера веб-приложения.

Шаг 5. Настройка адаптера веб-приложения в Dynamics CRM

  1. Выполните вход в Microsoft Dynamics CRM.

  2. На панели навигации щелкните Microsoft Dynamics CRM и выберите Параметры.

  3. Перейдите в раздел Параметры > Unified Service Desk > Размещенные элементы управления.

  4. Из списка размещенных элементов управления выберите размещенный элемент управления QsWebApplication.

  5. В разделе Конфигурация адаптера укажите следующие значения.

    Поле Значение

    Адаптер

    Использовать адаптер

    URI-адрес

    MyWebApplicationAdapter

    Тип

    MyWebApplicationAdapter.WebAppAdapter

    Примечание

    URI — это имя вашей сборки, а Тип — это имя вашей сборки (DLL-файла), за которым следует точка (.), а затем имя вашего класса в проекте Visual Studio. В этом примере используется имя сборки MyWebApplicationAdapter и имя класса WebAdapter (это имя класса по умолчанию при создании адаптера веб-приложения).

  6. Выберите Сохранить, чтобы сохранить изменения.

Шаг 6. Тестирование адаптера веб-приложения

  1. Скопируйте сборку, содержащую определение адаптера веб-приложения, из папки вывода проекта Visual Studio (<ProjectFolder>\bin\debug) в каталог приложения Unified Service Desk. В этом случае скопируете файл MyWebApplicationAdapter.dll в каталог c:\Program Files\Microsoft Dynamics CRM USD\USD.

  2. Запустите клиент Unified Service Desk для подключения к серверу Microsoft Dynamics CRM.

  3. При успешном входе в систему на рабочем столе появится кнопка образца внешнего веб-приложения.

  4. Выберите Поиск и Контакты, затем выберите контакт. В данном случае выберите Patrick Sands.

  5. Нажмите кнопку Образец внешнего веб-приложения и вы увидите, что поля имени, фамилии, адреса и идентификатора клиента заполнены.

Примечание

В этом пошаговом руководстве было показано, как считывать и отображать данные из считывания или для отображения данных Unified Service Desk во внешнем веб-приложении. По обновлению данных в Unified Service Desk из внешнего веб-приложения и наоборот см. в Пошаговое руководство. Создание размещенного элемента управления UII Windows Forms

См. также

Основные понятия:

Используйте адаптеры UII для взаимодействия с внешними и веб-приложениями

Unified Service Desk
Send comments about this topic to Microsoft.
© 2015 Microsoft. All rights reserved.