Compartir a través de


Tutorial: Crear un adaptador de aplicación de UII

Puede crear un adaptador de aplicación si desea integrar una aplicación externa con Unified Service Desk. Microsoft Dataverse proporciona una plantilla de Visual Studio para crear un adaptador de la aplicación. La plantilla proporciona código básico como comentarios para ayudarle a comenzar a crear un adaptador de aplicación.

En este tutorial, creará una aplicación web externa denominada QsExternalApp y la hospedará en Unified Service Desk. Después creará y configurará un adaptador de la aplicación ExternalApplicationAdapter para que la aplicación externa interactúe con Unified Service Desk. La aplicación externa tiene cuatro etiquetas: para el nombre del cliente, apellidos, dirección, e Id., y cuatro cuadros de texto correspondientes para mostrar los valores de Unified Service Desk.

En esta sección

Requisitos previos

Paso 1: Crear una aplicación externa de ejemplo

Paso 2: Configurar una aplicación externa

Paso 3: Pruebe la aplicación externa

Paso 4: Cree el adaptador de la aplicación

Paso 5: Configure el adaptador de la aplicación

Paso 6: Pruebe el adaptador de la aplicación

Requisitos previos

  • Microsoft .NET Framework 4.6.2

  • Ejecute la aplicación del cliente de Unified Service Desk; 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 contienen la plantilla de proyecto de control hospedado de la UII. 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.

Paso 1: Crear una aplicación externa de ejemplo

  1. Descargue el paquete de SDK de UII.

  2. Para extraer el contenido, haga doble clic en el archivo del paquete.

  3. Vaya a la carpeta <ExtractedFolder>\UII\SampleCode\UII\AIF\QsExternalApp y abra el archivo Microsoft.Uii.QuickStarts.QsExternalApp.csproj en Visual Studio.

  4. Presione F5 o elija Depurar>Iniciar depuración para crear una aplicación externa de ejemplo. La aplicación (Microsoft.Uii.QuickStarts.QsExternalApp.exe) se crea en la carpeta /bin/debug del proyecto.

    Ejemplo de aplicación externa.

Paso 2: Configure la aplicación externa

En este paso, creará un control hospedado del tipo Aplicación hospedada externa para mostrar la aplicación de Windows Forms.

  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 Nuevo control hospedado, especifique los siguientes valores:

    Campo Valor
    Nombre QsExternalApp
    Componente USD Aplicación hospedada de CCA
    Tipo de aplicación hospedada Aplicación hospedada externa
    La aplicación es global Activado
    Grupo de presentación MainPanel
    Adaptador No usar adaptador
    La aplicación es dinámica No
  5. Seleccione la pestaña Hospedaje e introduzca el valor de URI de aplicación externa como Microsoft.Uii.QuickStarts.QsExternalApp.exe.

  6. Seleccione Guardar.

Paso 3: Pruebe la aplicación externa

  1. Copie la aplicación que se generó en la carpeta de salida del producto de Visual Studio (<ProjectFolder>\bin\debug) al directorio de aplicaciones de Unified Service Desk. En este caso, copiaremos el archivo Microsoft.Uii.QuickStarts.QsExternalApp.exe 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. Después de iniciar sesión correctamente, verá el botón Ejemplo de la aplicación externa en el escritorio.

  4. Haga clic en la pestaña Ejemplo de la aplicación web externa para ver su aplicación externa hospedada en Unified Service Desk.

    Aplicación externa de ejemplo en Unified Service Desk.

Nota

En este punto los campos están vacíos ya que sólo está hospedando la aplicación en Unified Service Desk. Para llenarlos con valores de Unified Service Desk tendrá que crear un adaptador de la aplicación como se describe en el siguiente paso.

Paso 4: Cree el adaptador de la aplicación

  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 de la izquierda, expanda Visual C#, y seleccione Plantillas SDK de CRM >Unified Service Desk> Adaptador de aplicación de UII

    2. Especifique el nombre y la ubicación del proyecto y seleccione Aceptar para crear un nuevo proyecto.

    Adaptador de aplicaciones externas en Visual Studio.

  3. En Explorador de soluciones, expanda la sección Referencias para asegurarse de que todas las referencias de ensamblados se resuelven correctamente.

  4. Abra el archivo AppAdapter.cs y agregue las siguientes líneas de código para establecer las ubicaciones de cada componente en la página en la definición de clase.

    // Set up your locations for each component on the page.  
            // If you wish, you could use Spy++ to get the actual names as well.  
            // First Name text box  
            int intFirstNameCoordX = 47;  
            int intFirstNameCoordY = 32;  
            // Last Name text box  
            int intLastNameCoordX = 223;  
            int intLastNameCoordY = 32;  
            // Address Text box  
            int intAddressCoordX = 47;  
            int intAddressCoordY = 81;  
            // Customer ID text box  
            int intIDCoordX = 47;  
            int intIDCoordY = 126;  
    
  5. Agregue el siguiente código a la definición de NotifyContextChange para notificar a la aplicación que el contexto ha cambiado. Para obtener más información, consulte Contexto

    public override bool NotifyContextChange(Context context)  
            {  
                IntPtr ptr = MainWindowHandle;  
                // Find the control (first name) by position  
                IntPtr childHwnd = Win32API.FindWindowByPosition(ptr, new Point(intFirstNameCoordX, intFirstNameCoordY));  
                // Fill data out  
                Win32API.SetWindowTextAny(childHwnd, context["firstname"]);  
                // Find the control (last name) by position  
                childHwnd = Win32API.FindWindowByPosition(ptr, new Point(intLastNameCoordX, intLastNameCoordY));  
                // Fill out the data  
                Win32API.SetWindowTextAny(childHwnd, context["lastname"]);  
                childHwnd = Win32API.FindWindowByPosition(ptr, new Point(intAddressCoordX, intAddressCoordY));  
                Win32API.SetWindowTextAny(childHwnd, context["address1_line1"]);  
                childHwnd = Win32API.FindWindowByPosition(ptr, new Point(intIDCoordX, intIDCoordY));  
                Win32API.SetWindowTextAny(childHwnd, context["CustomerID"]);  
                // Hands control back over to the base class to notify next app of context change.  
                return base.NotifyContextChange(context);  
    
            }  
    
  6. Agregue el siguiente código en la definición de reemplazo de DoAction para actualizar los campos de formulario con valores de Unified Service Desk.

    public override bool DoAction(Microsoft.Uii.Csr.Action action, RequestActionEventArgs args)  
            {  
                IntPtr ptr;  
                IntPtr childHwnd;  
                switch (args.Action)  
                {  
                    case "UpdateFirstName":  
                        // Get locations of what you want to update and handles  
                        ptr = MainWindowHandle;  
                        childHwnd = Win32API.FindWindowByPosition(ptr, new Point(intFirstNameCoordX, intFirstNameCoordY));  
                        // Populate data into fields  
                        Win32API.SetWindowTextAny(childHwnd, args.Data);  
                        break;  
                    case "UpdateLastName":  
                        // Get locations of what you want to update and handles  
                        ptr = MainWindowHandle;  
                        childHwnd = Win32API.FindWindowByPosition(ptr, new Point(intLastNameCoordX, intLastNameCoordY));  
                        // Populate data into fields  
                        Win32API.SetWindowTextAny(childHwnd, args.Data);  
                        break;  
                }  
                return base.DoAction(action, args);  
            }  
    
  7. Guarde el proyecto y créelo (Generar>Generar solución). Después de generar el proyecto correctamente, se genera un ensamblado (ExternalApplicationAdapter.dll) en la carpeta \bin\debug de su carpeta del proyecto. Necesitará este ensamblado más adelante para probar y usar el adaptador de la aplicación.

Paso 4: Configure el adaptador de la aplicación

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

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

  3. En la lista de controles hospedados, seleccione el control hospedado QsExternalApp.

  4. En la sección Configuración del adaptador, especifique los siguientes valores:

    Campo Valor
    Adaptador Usar adaptador
    URI ExternalApplicationAdapter
    Escriba ExternalApplicationAdapter.AppAdapter

    Configuración de adaptador externo.

    Nota

    URI es el nombre del ensamblado y Tipo 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 ExternalApplicationAdapter y el nombre de la clase es AppAdapter, que es el nombre de clase predeterminado cuando se crea un adaptador de aplicación.

  5. Seleccione Guardar para guardar los cambios.

Paso 5: Pruebe el adaptador de la aplicación

  1. Copie el ensamblado que contiene la definición del adaptador de la aplicación web de la carpeta de salida del proyecto de Visual Studio (<ProjectFolder>\bin\debug) al directorio de aplicaciones de Unified Service Desk. En este caso, copiaremos el archivo ExternalApplicationAdapter.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. Después de iniciar sesión correctamente, verá ejemplo de la aplicación externa en el escritorio.

  4. Elija Buscar y luego elija Contactos y seleccione un contacto. En este caso, seleccionaremos Patrick Sands.

    Lista de contactos en Unified Service Desk.

  5. Seleccione Ejemplo de la aplicación externa y verá el nombre, apellidos, dirección, y el Id. de cliente rellenados.

    Información de clientes en aplicación externa.

Nota

Este tutorial demuestra cómo leer y mostrar datos de Unified Service Desk en la aplicación externa. Para comprender cómo actualizar los datos en Unified Service Desk desde la aplicación web externa, y viceversa, consulte Tutorial: Crear un control hospedado de Windows Forms de UII

Vea también

Uso de adaptadores de UII para interactuar con aplicaciones externas y web