Tutorial: Crear un control hospedado personalizado para Unified Service Desk

En este tema, aprenderá a crear un control personalizado hospedado llamado My Custom Control con una acción personalizada. El control hospedado personalizado tiene dos controles Windows Presentation Foundation (WPF): un botón que llama al control hospedado Depurador y una etiqueta de texto que muestra el nombre de usuario cuando se llama a una acción personalizada, MyCustomAction.

En esta sección

Requisitos previos

Cree un control hospedado personalizado

Pruebe el control hospedado personalizado

Requisitos previos

  • Microsoft .NET Framework 4.6.2

  • Ejecute la aplicación del cliente de Unified Service Desk; la aplicación cliente es necesaria para probar el control hospedado

  • Visual Studio 2012, Visual Studio 2013 o Visual Studio 2015

  • NuGet Administrador de paquetes para Visual Studio 2012, Visual Studio 2013 o Visual Studio 2015

  • Plantillas del SDK de CRM para Visual Studio que contiene la plantilla de proyecto de control hospedado personalizado. Descargue las plantillas de SDK de CRM de la galería de Visual Studio y haga doble clic en el archivo CRMSDKTemplates.vsix para instalar la plantilla en Visual Studio.

Cree un control hospedado personalizado

  1. Inicie Visual Studio y cree un nuevo proyecto.

  2. En el cuadro de diálogo Nuevo proyecto:

    1. En la lista de plantillas instaladas, expanda Visual C# y seleccione Plantillas SDK de CRM>Unified Service Desk>Control hospedado personalizado USD.

    2. Asegúrese de que .NET Framework 4.6.2 esté seleccionado.

    3. Especifique el nombre y la ubicación del proyecto y haga clic en Aceptar para crear un nuevo proyecto.

    Plantilla para crear un control hospedado personalizado.

  3. En el panel Explorador de soluciones, haga doble clic en el archivo USDControl.xaml para activar el diseñador de XAML.

  4. En el diseñador, agregue los siguientes controles desde el Cuadro de herramientas:

    • Etiqueta: Establezca el nombre del control en “myLabel” en el panel Propiedades.

    • Botón: Establezca el nombre del control en “myButton”, y el contenido en Iniciar Depurador en el panel Propiedades.

      Este es el aspecto que tienen los controles en el diseñador de XAML.

    Diseñador XAML con controles personalizados.

  5. Haga doble clic en el botón para agregar código detrás de XAML. Esto le llevará a la definición del evento de clic de myButton en el archivo USDControl.xaml.cs. Agregue el siguiente comando.

    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. Defina una acción personalizada para el control hospedado. En el archivo USDControl.xaml.cs, vaya a la definición de sustitución de DoAction.

    protected override void DoAction(Microsoft.Uii.Csr.RequestActionEventArgs args)
    
  7. Agregue el siguiente código en la definición de sustitución de DoAction para definir una acción personalizada llamada MyCustomAction, que acepta un parámetro llamado 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; });
        }
    }
    

    Propina

    La plantilla ofrece la mayoría del código como comentario en la definición de sustitución de DoAction para ayudarle a comenzar a trabajar rápidamente en el desarrollo. Debe quitar la marca de comentario de la línea de código necesaria, y reemplazar los marcadores de posición por valores.

  8. Guarde el proyecto y genérelo (Generar>Generar solución) para comprobar si genera correctamente.

Pruebe el control hospedado personalizado

Cuando el proyecto se compile correctamente, pruebe el control hospedado personalizado. La prueba consta de dos partes: definición del control hospedado personalizado en el servidor y después conexión con Unified Service Desk en el servidor mediante la aplicación cliente.

Defina el control hospedado y la acción personalizados

  1. Inicie sesión en el Administrador de Unified Service Desk.

  2. Seleccione Controles hospedados en Configuración básica.

  3. Seleccione + Nuevo.

  4. En la página del control hospedado, especifique los siguientes valores.

Campo Valor
Nombre Mi control hospedado personalizado
Nombre para mostrar Mi control hospedado personalizado
Tipo de componente de Unified Service Desk Control hospedado de USD
La aplicación es global Activado
Grupo de presentación MainPanel
  1. Seleccione la pestaña Hospedaje y especifique lo siguiente:
Campo Valor
URI de ensamblado MyCustomControl
Tipo de ensamblado MyCustomControl.USDControl

Nota

URI de ensamblado es el nombre del ensamblado y Tipo de ensamblado es el nombre del ensamblado (dll) seguido de un punto (.) y a continuación el nombre de clases en el proyecto de Visual Studio. En este ejemplo, el nombre del ensamblado es MyCustomControl y el nombre de la clase es USDControl, que es el nombre de clase predeterminado cuando se crea un control hospedado personalizado.

  1. Seleccione Guardar para crear el control hospedado.

  2. Cree la acción del control hospedado que definió en Visual Studio. Seleccione la pestaña Relacionado y, a continuación, seleccione Acciones de UII.

  3. Seleccione + Nueva acción de UII.

  4. Escriba el MyCustomAction en el campo Nombre y elija Guardar.

    Ahora ha configurado la control hospedado personalizado y la acción personalizada en el servidor de Microsoft Dataverse.

Ejecute el cliente de Unified Service Desk para trabajar con control hospedado personalizado

  1. Copie el ensamblado contiene la definición personalizada de control hospedado desde la carpeta de salida del proyecto de Visual Studio (<ProjectFolder>\bin\debug)en el directorio de la aplicación de Unified Service Desk. En este caso, copiará el archivo MyCustomControl.dll en el directorio c:\Program Files\Microsoft Dynamics CRM USD\USD.

  2. Ejecute el cliente de Unified Service Desk para conectarse al servidor de Dataverse.

  3. Si inicia la sesión correctamente, verá el control hospedado personalizado, Mi control hospedado personalizado, en el escritorio.

    Control hospedado personalizado.

  4. Seleccione Iniciar Depurador para iniciar el control hospedado Depurador.

  5. Para probar la acción personalizada, elija la pestaña Depurador, y luego seleccione la flecha abajo sobre la pestaña Llamadas a la acción para mostrar el área donde puede probar llamadas a la acción y acciones de UII.

    Área de prueba ampliada en depurador.

  6. Elija la pestaña Acción directa.

  7. En la lista Control hospedado, seleccione Mi control hospedado personalizado, y en la lista Acción, seleccione MyCustomAction.

  8. Según la definición de acción personalizada, esta llamada a la acción espera un parámetro denominado username. Por tanto, agregue el siguiente valor en el campo Datos: username=Tracie Hamilton.

    Probar el control hospedado personalizado.

  9. Seleccione el icono Ejecutar acción directa (Botón de llamada a la acción de ejecución del depurador de Unified Service Desk.) y, a continuación, seleccione la pestaña Mi control hospedado personalizado. Se muestra el nombre de usuario especificado en el campo de etiqueta.

    La pestaña Mi control hospedado personalizado muestra el nombre de usuario.

Consulte también

Control hospedado de USD (control hospedado)
Referencia de tipos de control hospedado y acciones/eventos
Tutoriales de configuración de Unified Service Desk
Usar un control hospedado personalizado en Unified Service Desk