Tutorial: Cree un adaptador de la aplicación de UII
Publicado: noviembre de 2016
Se aplica a: Dynamics 365 (online), Dynamics 365 (on-premises), Dynamics CRM 2013, Dynamics CRM 2015, Dynamics CRM 2016
Puede crear un adaptador de aplicación si desea integrar una aplicación externa con Unified Service Desk.Microsoft Dynamics 365 proporciona una plantilla de Microsoft 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 externa 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: Configure la aplicación externa en Microsoft Dynamics 365.
Paso 3: Pruebe la aplicación externa
Paso 4: Cree el adaptador de la aplicación
Paso 4: Configure el adaptador de la aplicación en Dynamics 365
Paso 5: Pruebe el adaptador de la aplicación
Requisitos previos
4.5.2 Microsoft .NET Framework
Aplicación cliente deUnified Service Desk; requerida para probar el control hospedado.
Microsoft Visual Studio 2012, Visual Studio 2013 o Visual Studio 2015
Administrador del paquete de Administrador de paquetes de NuGet para Visual Studio 2012, Visual Studio 2013, o Visual Studio 2015
Plantillas de SDK de Microsoft Dynamics 365 para Visual Studio que contiene la plantilla de proyecto de control hospedado de la UII. Puede obtenerla de una de las siguientes formas:
Descargar la plantilla del SDK de CRM. Haga doble clic en el archivo de CRMSDKTemplates.vsix para instalar la plantilla en Visual Studio.
Descargue y extraiga el paquete SDK de CRM. Vaya a la carpeta SDK\Templates en el SDK 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.
Desplácese hasta 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 Microsoft Dynamics 365.
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 Microsoft Dynamics 365.
En la barra de navegación, haga clic o pulse en Microsoft Dynamics 365, y luego seleccione Configuración.
Haga clic o pulse en Configuración > Servicios unificados > Controles hospedados.
Haga clic en Nuevo.
En la página Nuevo control hospedado, especifique los siguientes valores:
Campo
Valor
Nombre
QsExternalApp
Componente USD
Aplicación hospedada de CCA
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
URI de aplicación externa
Microsoft.Uii.QuickStarts.QsExternalApp.exe
Haga clic en 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 Microsoft.Uii.QuickStarts.QsExternalApp.exefile al directorio C:\Program Files\Microsoft Dynamics CRM USD\USD.
Ejecute el cliente de Unified Service Desk para conectarse al servidor de Microsoft Dynamics 365.
Después de iniciar sesión correctamente, verá el botón Ejemplo de la aplicación externa en el escritorio.
Seleccione Ejemplo de la aplicación externa para ver la 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 rellenarlos con valores de Unified Service Desk, tendrá que crear un adaptador de aplicación como se describe en el siguiente paso.
Paso 4: Cree el adaptador de la aplicación
Inicie Microsoft 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 Dynamics 365 > Servicios unificados > Adaptador de aplicación de UII
Especifique el nombre y la ubicación del proyecto y haga clic en 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 NotifyContextChange
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); }
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 en Dynamics 365
Inicie sesión en Microsoft Dynamics 365.
En la barra de navegación, elija Microsoft Dynamics 365 y luego seleccione Configuración.
Elija Configuración > Servicios unificados > Controles hospedados.
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
Tipo
ExternalApplicationAdapter.AppAdapter
Nota
URI es el nombre del ensamblado y Tipo es el nombre del ensamblado (dll) seguido de un punto (.) y luego el nombre de clase 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.
Para guardar los cambios, haga clic en Guardar.
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, copiará el archivo ExternalApplicationAdapter.dll al directorio c:\Program Files\Microsoft Dynamics CRM USD\USD.
Ejecute el cliente de Unified Service Desk para conectarse al servidor de Microsoft Dynamics 365.
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.
Haga clic en 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 externa, vea Tutorial: Crear un control hospedado de Windows Forms de UII
Ver también
Uso de adaptadores de UII para interactuar con aplicaciones externas y web
Unified Service Desk 2.0
© 2017 Microsoft. Todos los derechos reservados. Copyright