Compartir a través de


Tutorial: Cree un control hospedado UII WPF

 

Publicado: noviembre de 2016

Se aplica a: Dynamics 365 (online), Dynamics 365 (on-premises), Dynamics CRM 2013, Dynamics CRM 2015, Dynamics CRM 2016

Este tutorial muestra cómo puede crear un control hospedado de User Interface Integration (UII) basado en Windows Presentation Foundation (WPF) que interactúe con Unified Service Desk y aplicaciones externas (independientes y web).

En este tutorial, usted realizará lo siguiente:

  • Cree un control hospedado UIIWPF, control hospedado UII WPF de ejemplo, que mostrará nombre, apellidos, la dirección de la calle y el Id. de un contacto cuando busque contactos, y haga clic en el nombre de contacto para abrirlo en una sesión en Unified Service Desk. Estos valores se muestran desde el contexto de Unified Service Desk.

  • Cambie los valores de nombre, apellidos, o dirección de la calle en una aplicación externa y una aplicación web hospedada en Unified Service Desk desde el control hospedado UIIWPF que creamos. Las aplicaciones web y externa se crearon en los siguientes tutoriales anteriores: Tutorial: Cree un adaptador de la aplicación de UII y Tutorial: Cree un adaptador de la aplicación Web de UII.

  • Notifique los cambios al contexto Unified Service Desk para actualizar los valores ahí.

En este tema

Requisitos previos

Paso 1: Cree un control hospedado de UII WPF mediante Visual Studio

Paso 2: Defina el control hospedado en Servicios unificados

Paso 3: Defina acciones de UII para los controles hospedados de la aplicación externa y de la aplicación web en Servicios unificados

Pruebe el control hospedado.

Requisitos previos

Paso 1: Cree un control hospedado de UII WPF mediante Visual Studio

  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 Dynamics 365 SDK > Servicios unificados > Control hospedado UII WPF.

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

      Crear un control hospedado UII WPF

  3. En Explorador de soluciones, haga clic con el botón secundario en el archivo UiiWpfControl.xaml y seleccione Abrir para mostrar el diseñador de XAML.

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

    Tipo de control

    Nombre

    Texto

    Etiqueta

    lblFirstName

    Nombre de pila

    Etiqueta

    lblLastName

    Apellidos

    Etiqueta

    lblAddress

    Dirección

    Etiqueta

    lblID

    Id.

    TextBox

    txtFirstName

    TextBox

    txtLastName

    TextBox

    txtAddress

    TextBox

    txtID

    Botón

    btnUpdate

    Actualiza valores en aplicaciones hospedadas

    Botón

    btnUpdateContext

    Actualiza contexto

    Esta es la manera en que deben disponerse los controles en el diseñador de XAML.

    Diseño de controles del diseñador de XAML

  5. Haga doble clic en el botón Actualizar valores en aplicaciones hospedadas (btnUpdate) para agregar el código para el evento click para este botón, y agregar el siguiente código.

    private void btnUpdate_Click(object sender, System.Windows.RoutedEventArgs e)
    {
       // This is how you fire an action to other hosted applications. 
       // The DoAction() code in the other application or application adapter 
       // will be called.
       FireRequestAction(new RequestActionEventArgs("QsExternalApp", "UpdateFirstName", txtFirstName.Text)); // For the external application
       FireRequestAction(new RequestActionEventArgs("QsExternalApp", "UpdateLastName", txtLastName.Text)); // For the external application
       FireRequestAction(new RequestActionEventArgs("QsExternalApp", "UpdateAddress", txtAddress.Text)); // For the external application
    
       FireRequestAction(new RequestActionEventArgs("QsWebApplication", "UpdateFirstName", txtFirstName.Text)); // For the external web application
       FireRequestAction(new RequestActionEventArgs("QsWebApplication", "UpdateLastName", txtLastName.Text)); // For the external web application
       FireRequestAction(new RequestActionEventArgs("QsWebApplication", "UpdateAddress", txtAddress.Text)); // For the external web application
    }
    
  6. Vaya al diseñador de XAML y haga doble clic en el botón Actualizar contexto (btnUpdateContext) para agregar el código para el evento click para este botón. Agregue el código siguiente.

    private void btnContextChange_Click(object sender, System.Windows.RoutedEventArgs e)
    {
       // Get the current context and create a new context object from it.
       string temp = Context.GetContext();
       Context updatedContext = new Context(temp);
    
       // Update the new context with the changed information.
       updatedContext["firstname"] = txtFirstName.Text;
       updatedContext["lastname"] = txtLastName.Text;
       updatedContext["address1_line1"] = txtAddress.Text;
    
       // Notify Unified Service Desk of this new context information.
       FireChangeContext(new ContextEventArgs(updatedContext));
    
       // Notify this UII hosted control about the change.
       NotifyContextChange(updatedContext);
    }
    
  7. En el mismo archivo (UiiWpfControl.xaml.cs), actualice la definición de sustitución del método NotifyContextChange a la siguiente.

    public override void NotifyContextChange(Context context)
    {
       // Populating text fields from context information.
       txtFirstName.Text = context["firstname"];
       txtLastName.Text = context["lastname"];
       txtAddress.Text = context["address1_line1"];
       txtID.Text = context["CustomerID"];
    
       base.NotifyContextChange(context);
    }
    
  8. Guarde el proyecto y créelo (Generar > Generar solución). Después de que se compile el proyecto correctamente, se genera un ensamblado (archivo .dll) con el mismo nombre que el nombre del proyecto (en este caso, UIIWPFHostedControl1.dll) en la carpeta /bin/debug del proyecto.

  9. Copie este archivo en el directorio de instalación de la aplicación cliente Unified Service Desk (normalmente C:\Program Files\Microsoft Dynamics CRM USD\USD). Este archivo es necesario para probar y, eventualmente usar este control desde la aplicación cliente.

    Sugerencia

    Anote el nombre de la clase que se usa para crear el control hospedado UII en el archivo UiiWpfControl.xaml.cs. En este caso es UiiWpfControl. Necesitará esta información en el siguiente paso.

Paso 2: Defina el control hospedado en Servicios unificados

Para hospedar el control hospedado UII WPF en Unified Service Desk, tendrá que definirlo y configurar.

  1. Inicie sesión en Microsoft Dynamics 365.

  2. En la barra de navegación, elija Microsoft Dynamics 365 > Configuración > Servicios unificados.

  3. En la página Servicios unificados, elija Controles hospedados.

  4. En la página Controles hospedados, elija Nuevo.

  5. En la página Nuevo control hospedado, especifique los siguientes valores.

    Campo

    Valor

    Nombre

    UIIWPFHostedControl

    Nombre

    Control hospedado UII WPF de ejemplo

    Tipo de componente de USD

    Aplicación hospedada de CCA

    Aplicación hospedada

    Control hospedado

    La aplicación es global

    Seleccionado

    Mostrar grupo

    MainPanel

    Adaptador

    No usar adaptador

    URI de ensamblado

    UIIWPFHostedControl1

    Tipo de ensamblado

    UIIWPFHostedControl1.UiiWpfControl

    Nota

    URI de ensamblado es el nombre del ensamblado y Tipo de ensamblado es el nombre del ensamblado seguido de un punto (.) y luego el nombre de clase en el proyecto de Visual Studio. En este ejemplo, el nombre del ensamblado es UIIWPFHostedControl1 y el nombre de la clase es UiiWpfControl, que es el nombre de clase predeterminado cuando se crea un control hospedado UII WPF.

    Definir un nuevo control hospedado

  6. Elija Guardar para crear el control hospedado.

Paso 3: Defina acciones de UII para los controles hospedados de la aplicación externa y de la aplicación web en Servicios unificados

Los adaptadores para aplicaciones externas y aplicaciones web exponen las tres siguientes acciones: UpdateFirstName, UpdateLastName, y UpdateAddress. Estos adaptadores y los controles hospedados para aplicaciones externas independientes y web se crearon en los tutoriales anteriores (Tutorial: Cree un adaptador de la aplicación de UII y Tutorial: Cree un adaptador de la aplicación Web de UII).

Para actualizar la información de aplicaciones externas desde el control hospedado de UII WPF tendrá que tres definir acciones UII con el mismo nombre que definió antes en los adaptadores para cada una de las aplicaciones externas. En los tutoriales del adaptador anteriores (Tutorial: Cree un adaptador de la aplicación de UII y Tutorial: Cree un adaptador de la aplicación Web de UII), definimos los dos controles hospedados siguientes en Unified Service Desk para mostrar las aplicaciones externas dentro Unified Service Desk: QsExternalApp y QsExternalWebApplication. En este paso, agregaremos tres acciones UII para cada control hospedado.

Importante

Si ya ha agregado las acciones UII como parte del paso 3 en Tutorial: Crear un control hospedado de Windows Forms de UII, no tiene que realizar este paso de nuevo. Puede pasar a la siguiente sección para probar el control hospedado.

  1. Inicie sesión en Microsoft Dynamics 365.

  2. En la barra de navegación, elija Microsoft Dynamics 365 > Configuración > Servicios unificados.

  3. En la página Servicios unificados, elija Controles hospedados.

  4. En la página Controles hospedados, busque QSExternalApp y ábralo para editarlo.

  5. En la página QSExternalApp, elija la flecha abajo junto al nombre del control hospedado y a continuación, elija Acciones de UII.

  6. En la página siguiente, elija Agregar nueva acción de UII.

  7. En la página Nueva acción de UII, escriba el nombre como UpdateFirstName, y elija Guardar y cerrar. Esto agrega la acción en la página anterior.

  8. De forma similar, agregue las dos siguientes acciones: UpdateLastName y UpdateAddress. Las tres acciones pasan a estar disponibles para el control hospedado QSExternalApp.

    Acciones de UII disponibles para un control hospedado

  9. Siga los pasos 4 a 8 para crear tres acciones de UII con los mismos nombres para QSExternalWebApp.

Pruebe el control hospedado.

Antes de probar el control hospedado UIIWPF, asegúrese de que la aplicación web de ejemplo se esté ejecutando de modo que se represente en Unified Service Desk.

  1. Ejecute el cliente de Unified Service Desk para conectarse al servidor de Dynamics 365.

  2. Cuando inicie sesión correctamente, verá tres controles hospedados: Control hospedado UII WPF de ejemplo, Aplicación web externa de ejemplo y Aplicación externa de ejemplo.

    Control hospedado UII WPF de ejemplo disponible

  3. Elija Buscary luego elija Contactos. Seleccione cualquiera de los contactos para mostrar los detalles del contacto en una sesión. Esto también muestra el nombre, apellidos, la dirección de la calle y, el Id. del registro de contacto mostrado actualmente en los tres controles de ejemplo:

    Datos que se muestran desde el contexto USD en los 3 controles

  4. Cambie los valores en Control hospedado UII WPF de ejemplo, y haga clic en Actualizar valores en aplicaciones hospedadas para actualizar los en las otras dos aplicaciones externas.

    Valores actualizados en aplicaciones externas

  5. En Control hospedado UII WPF de ejemplo, elija Actualizar contexto para actualizar la información de contexto en Unified Service Desk.

    Valores actualizados en el contexto de USD

Ver también

Integración con aplicaciones externas y aplicaciones web
Uso de controles hospedados de la UII con Servicios unificados
Tutorial: Crear un control hospedado de Windows Forms de UII
Acciones de UII

Unified Service Desk 2.0

© 2017 Microsoft. Todos los derechos reservados. Copyright