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
Microsoft .NET Framework 4.5.2
Aplicativo cliente Unified Service Desk. Ele é necessário para testar o controle hospedado.
Microsoft Visual Studio 2012, Visual Studio 2013 ou Visual Studio 2015
Gerenciador de Pacotes NuGet para Visual Studio 2012, Visual Studio 2013 ou Visual Studio 2015
Modelos de SDK do Microsoft Dynamics 365 para Visual Studio que contêm o modelo de projeto de controle hospedado UII do WPF. É possível obter o modelo de uma das maneiras a seguir:
Baixe o modelo de SDK do CRM. Clique duas vezes no arquivo CRMSDKTemplates.vsix para instalar o modelo no Visual Studio.
Baixe e extraia o pacote do SDK do CRM. Vá até a pasta SDK\Templates. Clique duas vezes no arquivo CRMSDKTemplates.vsix para instalar o modelo no Visual Studio.
Você deve ter concluído as etapas de Passo a passo: Criar um adaptador de aplicativo de UII e Passo a passo: Criar um adaptador de aplicativo Web de UII para garantir que os aplicativos externo e Web estejam configurados com os adaptadores para facilitar a interação com esses aplicativos.
Etapa 1: Criar um controle hospedado UII do WPF usando o Visual Studio
Inicie o Visual Studio e crie um novo projeto.
Na caixa de diálogo Novo projeto:
Na lista de modelos instalados, expanda Visual C# e selecione Modelos de Dynamics 365 do SDK > Unified Service Desk > Controle Hospedado WPF de UII.
Especifique o nome e o local do projeto e clique em OK para criar um novo projeto.
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.
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.
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 }
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); }
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); }
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.
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.
Entre no Microsoft Dynamics 365.
Na barra de navegação, escolha Microsoft Dynamics 365 > Configurações > Unified Service Desk.
Na página do Unified Service Desk, selecione Controles Hospedados.
Na página Controles Hospedados, selecione Novo.
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.
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.
Entre no Microsoft Dynamics 365.
Na barra de navegação, escolha Microsoft Dynamics 365 > Configurações > Unified Service Desk.
Na página do Unified Service Desk, selecione Controles Hospedados.
Na página Controles Hospedados, procure por QSExternalApp e abra-o para edição.
Na página QSExternalApp, selecione a seta para baixo ao lado do nome do controle hospedado e selecione Ações de UII.
Na página seguinte, selecione Adicionar Nova Ação de UII.
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.
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.
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.
Execute o cliente do Unified Service Desk para conectar-se a seu servidor do Dynamics 365.
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.
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:
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.
Em Controle Hospedado UII do WPF de Exemplo, selecione Atualizar contexto para atualizar as informações de contexto no Unified Service Desk.
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