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
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
Para extraer el contenido, haga doble clic en el archivo del paquete.
Vaya a la carpeta <ExtractedFolder>\UII\SampleCode\UII\AIF\QsExternalApp y abra el archivo Microsoft.Uii.QuickStarts.QsExternalApp.csproj en Visual Studio.
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.
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.
Inicie sesión en el Administrador de Unified Service Desk.
Seleccione Controles hospedados en Configuración básica.
Seleccione + Nuevo.
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 Seleccione la pestaña Hospedaje e introduzca el valor de URI de aplicación externa como Microsoft.Uii.QuickStarts.QsExternalApp.exe.
Seleccione Guardar.
Paso 3: Pruebe la aplicación externa
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.
Ejecute el cliente de Unified Service Desk para conectarse al servidor de Dataverse.
Después de iniciar sesión correctamente, verá el botón Ejemplo de la aplicación externa en el escritorio.
Haga clic en la pestaña Ejemplo de la aplicación web externa para ver su aplicación externa hospedada 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
Inicie Visual Studio y cree un nuevo proyecto.
En el cuadro de diálogo Nuevo proyecto:
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
Especifique el nombre y la ubicación del proyecto y seleccione Aceptar para crear un nuevo proyecto.
En Explorador de soluciones, expanda la sección Referencias para asegurarse de que todas las referencias de ensamblados se resuelven correctamente.
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;
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 Contextopublic 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); }
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); }
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
Inicie sesión en el Administrador de Unified Service Desk.
Seleccione Controles hospedados en Configuración básica.
En la lista de controles hospedados, seleccione el control hospedado
QsExternalApp
.En la sección Configuración del adaptador, especifique los siguientes valores:
Campo Valor Adaptador Usar adaptador URI ExternalApplicationAdapter
Escriba ExternalApplicationAdapter.AppAdapter
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 esAppAdapter
, que es el nombre de clase predeterminado cuando se crea un adaptador de aplicación.Seleccione Guardar para guardar los cambios.
Paso 5: Pruebe el adaptador de la aplicación
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.
Ejecute el cliente de Unified Service Desk para conectarse al servidor de Dataverse.
Después de iniciar sesión correctamente, verá ejemplo de la aplicación externa en el escritorio.
Elija Buscar y luego elija Contactos y seleccione un contacto. En este caso, seleccionaremos
Patrick Sands
.Seleccione Ejemplo de la aplicación externa y verá el nombre, apellidos, dirección, y el Id. de cliente rellenados.
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