Passo a passo: Criar um controle hospedado UII do WPF

 

Publicado: novembro de 2016

Aplicável a: Dynamics 365 (online), Dynamics 365 (on-premises), Dynamics CRM 2013, Dynamics CRM 2015, Dynamics CRM 2016

Este passo a passo demonstra como criar um controle hospedado User Interface Integration (UII) com base no Windows Presentation Foundation (WPF) que interage com o Unified Service Desk e com aplicativos externos (autônomos e da Web).

Neste passo a passo, você irá:

  • Criar um controle hospedado UII doWPF, o Controle Hospedado UII do WPF de Exemplo, que exibirá o nome, o sobrenome, o endereço e a ID de um contato quando você pesquisar contatos e clicar no nome de um contato para abri-lo em uma sessão do Unified Service Desk. Esses valores são exibidos a partir do contexto do Unified Service Desk.

  • Alterar os valores de nome, sobrenome ou endereço em um aplicativo externo e em um aplicativo Web hospedados no Unified Service Desk a partir do controle hospedado UII do WPF que criamos. Os aplicativos Web e externo foram criados nos seguintes documentos passo a passo anteriores: Passo a passo: Criar um adaptador de aplicativo de UII e Passo a passo: Criar um adaptador de aplicativo Web de UII.

  • Notificar alterações no contexto do Unified Service Desk para atualizar os valores.

Neste tópico

Pré-requisitos

Etapa 1: Criar um controle hospedado UII do WPF usando o Visual Studio

Etapa 2: Definir o controle hospedado no Unified Service Desk

Etapa 3: Definir ações de UII para os controles hospedados de aplicativo externo e aplicativo Web no Unified Service Desk

Testar o controle hospedado

Pré-requisitos

Etapa 1: Criar um controle hospedado UII do WPF usando o Visual Studio

  1. Inicie o Visual Studio e crie um novo projeto.

  2. Na caixa de diálogo Novo projeto:

    1. Na lista de modelos instalados, expanda Visual C# e selecione Modelos de Dynamics 365 do SDK > Unified Service Desk > Controle Hospedado WPF de UII.

    2. Especifique o nome e o local do projeto e clique em OK para criar um novo projeto.

      Criar um controle hospedado de WPF de UII

  3. No Gerenciador de Soluções, clique com o botão direito do mouse no arquivo UiiWpfControl.xaml e selecione Abrir para exibir o designer XAML.

  4. No designer, adicione os seguintes controles da Caixa de Ferramentas:

    Tipo de controle

    Nome

    Texto

    Etiqueta

    lblFirstName

    Nome

    Etiqueta

    lblLastName

    Sobrenome

    Etiqueta

    lblAddress

    Endereço da rua

    Etiqueta

    lblID

    ID

    Caixa de Texto

    txtFirstName

    Caixa de Texto

    txtLastName

    Caixa de Texto

    txtAddress

    Caixa de Texto

    txtID

    Botão

    btnUpdate

    Atualizar valores em aplicativos hospedados

    Botão

    btnUpdateContext

    Atualizar contexto

    É assim que os controles devem ser apresentados no designer XAML.

    Controla o layout do designer de XAML

  5. Clique duas vezes no botão Atualizar valores em aplicativos hospedados (btnUpdate) para adicionar o código para o evento click desse botão e adicione o código a seguir.

    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. Vá para o designer XAML e clique duas vezes no botão Atualizar contexto (btnUpdateContext) para adicionar o código para o evento click desse botão. Adicione o código a seguir.

    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. No mesmo arquivo (UiiWpfControl.xaml.cs), atualize a definição de substituição do método NotifyContextChange com o seguinte.

    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. Salve seu projeto e compile-o (Compilar > Compilar Solução). Depois de compilar o projeto com êxito, um assembly (arquivo .dll) é gerado com o mesmo nome de seu projeto (neste caso, UIIWPFHostedControl1.dll) na pasta /bin/debug de seu projeto.

  9. Copie esse arquivo no diretório de instalação do aplicativo cliente do Unified Service Desk (geralmente, C:\Program Files\Microsoft Dynamics CRM USD\USD). Esse arquivo é necessário para testar e, eventualmente, usar esse controle a partir do aplicativo cliente.

    Dica

    Anote o nome da classe usada para compilar seu controle hospedado UII no arquivo UiiWpfControl.xaml.cs. Neste caso, ele é UiiWpfControl. Você precisará dessa informação na próxima etapa.

Etapa 2: Definir o controle hospedado no Unified Service Desk

Para hospedar o controle hospedado UII do WPF no Unified Service Desk, você deve definir e configurá-lo.

  1. Entre no Microsoft Dynamics 365.

  2. Na barra de navegação, escolha Microsoft Dynamics 365 > Configurações > Unified Service Desk.

  3. Na página do Unified Service Desk, selecione Controles Hospedados.

  4. Na página Controles Hospedados, selecione Novo.

  5. Na página Novo Controle Hospedado, especifique os seguintes valores.

    Campo

    Valor

    Nome

    UIIWPFHostedControl

    Nome de Exibição

    Amostra de controle hospedado de WPF de UII

    Tipo de Componente do USD

    Aplicativo Hospedado do CCA

    Aplicativo Hospedado

    Controle Hospedado

    O Aplicativo é Global

    Selecionado

    Grupo de Exibição

    MainPanel

    Adaptador

    Não Usar Adaptador

    URI do Assembly

    UIIWPFHostedControl1

    Tipo de Assembly

    UIIWPFHostedControl1.UiiWpfControl

    Dica

    URI assembly é o nome de seu assembly e o Tipo assembly é o nome de seu assembly seguido por um ponto (.) e então o nome de classe em seu projeto Visual Studio. Neste exemplo, o nome do assembly é UIIWPFHostedControl1 e o nome da classe é UiiWpfControl, que é o nome de classe padrão quando você cria um controle hospedado UII do WPF.

    Definir um novo controle hospedado

  6. Selecione Salvar para criar o controle hospedado.

Etapa 3: Definir ações de UII para os controles hospedados de aplicativo externo e aplicativo Web no Unified Service Desk

Os adaptadores para os aplicativos Web e autônomo externos e expõem estas três ações: UpdateFirstName, UpdateLastName e UpdateAddress. Esses adaptadores e os controles hospedados para aplicativos Web e autônomo externos foram criados em documentos passo a passo anteriores (Passo a passo: Criar um adaptador de aplicativo de UII e Passo a passo: Criar um adaptador de aplicativo Web de UII).

Para atualizar as informações nos aplicativos externos a partir do controle hospedado UII do WPF, você deverá definir três ações de UII com o mesmo nome definido anteriormente nos adaptadores para cada um dos aplicativos externos. Nos documentos passo a passo anteriores (Passo a passo: Criar um adaptador de aplicativo de UII e Passo a passo: Criar um adaptador de aplicativo Web de UII), nós definimos os dois controles hospedados a seguir no Unified Service Desk para exibirem os aplicativos externos no Unified Service Desk: QsExternalApp e QsExternalWebApplication. Nesta etapa, adicionaremos três ações de UII para cada controle hospedado.

Importante

Se já tiver adicionado as ações de UII como parte da etapa 3 de Passo a passo: Criar um controle de UII do Windows Forms, você não precisará executar esta etapa novamente. Você pode continuar na próxima seção para testar o controle hospedado.

  1. Entre no Microsoft Dynamics 365.

  2. Na barra de navegação, escolha Microsoft Dynamics 365 > Configurações > Unified Service Desk.

  3. Na página do Unified Service Desk, selecione Controles Hospedados.

  4. Na página Controles Hospedados, procure por QSExternalApp e abra-o para edição.

  5. Na página QSExternalApp, selecione a seta para baixo ao lado do nome do controle hospedado e selecione Ações de UII.

  6. Na página seguinte, selecione Adicionar Nova Ação de UII.

  7. Na página Nova Ação de UII, digite o nome como UpdateFirstNamee escolha Salvar e Fechar. Isso adiciona a ação na página anterior.

  8. De maneira semelhante, adicione as duas ações a seguir: UpdateLastName e UpdateAddress. Essas três ações são disponibilizadas para o controle hospedado QSExternalApp.

    Ações de UII disponíveis para um controle hospedado

  9. Siga as etapas 4 a 8 para criar três ações de UII com os mesmos nomes para QSExternalWebApp.

Testar o controle hospedado

Antes de testar o controle hospedado UII do WPF, verifique se seu aplicativo Web de exemplo está em execução, de forma que possa ser renderizado no Unified Service Desk.

  1. Execute o cliente do Unified Service Desk para conectar-se a seu servidor do Dynamics 365.

  2. Ao entrar com êxito, você verá três controles hospedados: Controle Hospedado UII do WPF de Exemplo, Aplicativo Web Externo de Exemplo e Aplicativo Externo de Exemplo.

    Amostra de controle hospedado de WPF de UII disponível

  3. Selecione Pesquisare Contatos. Escolha um dos contatos para exibir seus detalhes em uma sessão. Isso também exibe o nome, o sobrenome, o endereço e a ID do registro do contato atualmente exibido nos três controles de exemplo:

    Dados exibidos no contexto do USD em 3 controles

  4. Altere os valores em Controle Hospedado UII do WPF de Exemplo e clique em Atualizar valores em aplicativos hospedados para atualizar os valores nos outros dois aplicativos externos.

    Valores atualizados em aplicativos externos

  5. Em Controle Hospedado UII do WPF de Exemplo, selecione Atualizar contexto para atualizar as informações de contexto no Unified Service Desk.

    Valores atualizados no contexto de USD

Confira Também

Integrar com aplicativos externos e aplicativos Web
Usar controles hospedados de UII com Unified Service Desk
Passo a passo: Criar um controle de UII do Windows Forms
Ações da UII

Unified Service Desk 2.0

© 2017 Microsoft. Todos os direitos reservados. Direitos autorais