Создание пользовательского размещенного элемента управления Unified Service Desk

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

Как готовые, так и пользовательские настраиваемые размещенные элементы управления Unified Service Desk определены на основе класса DynamicsBaseHostedControl.

В этом разделе вы узнаете, как создать пользовательский размещенный элемент управления My Custom Control с пользовательским действием. Пользовательский размещенный элемент управления содержит два элемента управления Windows Presentation Foundation (WPF) (WPF): кнопку, которая вызывает размещенный элемент управления Debugger, и текстовую метку, в которой выводится имя пользователя при вызове пользовательского действия MyCustomAction.

В этом разделе

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

Создание пользовательского размещенного элемента управления

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

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

  • Microsoft .NET Framework 4.5.2

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

  • Microsoft Visual Studio 2012 или Visual Studio 2013

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

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

Создание пользовательского размещенного элемента управления

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

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

    1. В списке установленных шаблонов разверните узел Visual C# и выберите Шаблоны SDK CRM > Unified Service Desk > Пользовательский размещенный элемент управления USD.

    2. Убедитесь, что выбрано .NET Framework 4.5.2.

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

    Template for creating a custom hosted control

  3. В Обозревателе решений, дважды щелкните по файлу USDControl.xaml для переноса в конструктор XAML.

  4. В конструкторе добавьте следующие элементы управления из Панели инструментов:

    • Метка: в области Свойства задайте имя элемента управления «myLabel».

    • Кнопка: в области Свойства задайте имя элемента управления «myButton» и содержание «Запустить отладчик».

    Так элементы управления выглядят в конструкторе XAML.

    XAML designer with custom controls

  5. Дважды щелкните кнопку, чтобы добавить код программной части за XAML. При этом откроется определение события щелчка для myButton в файле USDControl.xaml.cs. Добавьте следующую команду.

    private void myButton_Click(object sender, RoutedEventArgs e)
    {
        if (!this.desktopAccess.AppExistsInUI("Debugger"))
        {
            this.desktopAccess.CreateDynamicApplication("Debugger");
        }
        this.FireRequestAction(new Microsoft.Uii.Csr.RequestActionEventArgs("Debugger", "default", null));
    }
    
  6. Определите пользовательское действие для размещаемого элемента управления. В файле USDControl.xaml.cs перейдите к определению переопределения DoAction.

    protected override void DoAction(Microsoft.Uii.Csr.RequestActionEventArgs args)
    
  7. Добавьте следующий код с определением переопределения DoAction, чтобы определить пользовательское действие MyCustomAction, которое принимает параметр username (имя пользователя).

    if (args.Action.Equals("MyCustomAction", StringComparison.OrdinalIgnoreCase))
    {
        List<KeyValuePair<string, string>> actionDataList = Utility.SplitLines(args.Data, CurrentContext, localSession);
        string valueIwant = Utility.GetAndRemoveParameter(actionDataList, "username"); // assume there is a myKey=<value> in the data.
    
        if (!string.IsNullOrEmpty(valueIwant))
        {
            this.Dispatcher.Invoke(() => { this.myLabel.Content = valueIwant; });
        }
    }
    
    TipПодсказка
    Шаблон содержит в виде комментария большую часть кода с определением переопределения DoAction, что позволит быстро приступить к разработке. Потребуется раскомментировать требуемую строку кода и заменить значения заполнителей вашими значениями.

  8. Сохраните проект и постройте его (Построить > Построить решение), чтобы убедиться, что построение выполняется правильно.

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

После успешного построения проекта проверьте пользовательский размещенный элемент управления. Тестирование состоит из двух частей: определения пользовательского размещенного элемента управления на сервере и последующее подключение к Unified Service Desk на сервере с помощью вашего клиентского приложения.

Определение пользовательского размещенного элемента управления и действия на сервере CRM

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

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

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

  4. Нажмите кнопку СОЗДАТЬи укажите значения на экране Новый размещенный элемент управления, как показано ниже:

    New custom hosted control

    Примечание

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

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

  6. Создайте действие для нового размещенного элемента управления, который определен в Visual Studio. На панели навигации щелкните стрелку вниз рядом с именем нового размещенного управления и выберите Действия UII.

  7. Выберите Добавить новое действие UII.

  8. Напечатайте MyCustomAction в поле Имя и выберите Сохранить.

Итак, пользовательский размещенный элемент управления и пользовательское действие на сервере CRM настроены.

Запуск клиента Unified Service Desk для работы с пользовательским размещенным элементом управления

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

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

  3. После успешного входа в систему на рабочем столе отобразится пользовательский размещенный элемент управления Мой пользовательский размещенный элемент управления.

    Custom hosted control

  4. Нажмите кнопку Запустить отладчик, чтобы запустить размещенный элемент управления "Отладчик".

  5. Чтобы проверить пользовательское действие, щелкните вкладку Отладчик, затем щелкните стрелку вниз над вкладкой Вызовы действии, чтобы открыть область, в которой можно протестировать вызовы действий и действия UII.

    Expanded testing area in debugger

  6. Выберите вкладку Прямое действие.

  7. В списке Размещенный элемент управления выберите Мой пользовательский размещенный элемент управления, затем в списке Действие выберите MyCustomAction.

  8. Согласно определению пользовательского действия, этот вызов действия принимает параметр с именем username, так что добавьте следующее значение в поле Данные: username=Tracie Hamilton.

    Test your custom hosted control

  9. Щелкните значок Выполнить прямое действие (Run button), затем перейдите на вкладку Мой пользовательский размещенный элемент управления. Указанное имя пользователя отображается в поле метки.

    My Custom Host Control tab shows username

См. также

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

Размещенный элемент управления USD (размещенный элемент управления)

Другие ресурсы

Типы размещенных элементов управления и ссылка на действие или событие
Пошаговые руководства по настройке Unified Service Desk
Расширение Unified Service Desk

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