Partilhar via


Procedimentos: Criar um Adaptador de Aplicações Web do UII

Pode criar um adaptador de aplicação web se pretender aumentar e modificar as aplicações web para as quais não tem acesso ao código fonte ou não tenha permissões para alterar utilizando código gerido. O Microsoft Dynamics CRM fornece um modelo do Microsoft Visual Studio para criar um adaptador de aplicação web. O modelo fornece código básico como comentário para ajudá-lo a começar a criar o adaptador de aplicação Web.

Neste procedimento, irá criar uma aplicação web externa chamada QsWebApplication e alojá-la no Unified Service Desk. Em seguida irá criar e configurar um adaptador de aplicação web chamado MyWebApplicationAdapter para a aplicação web externa interagir com o Unified Service Desk. A aplicação web tem quatro etiquetas, uma para o nome próprio do cliente, apelido e endereço e ID e quatro caixas de texto correspondentes para apresentar os valores do Unified Service Desk.

Neste Tópico

Pré-requisitos

Passo 1: Criar uma aplicação web de exemplo

Passo 2: Configurar a aplicação web no Dynamics CRM

Passo 3: Testar a aplicação Web

Passo 4: Criar o adaptador de aplicação Web

Passo 5: Configurar o adaptador de aplicação web no Dynamics CRM

Passo 6: testar o adaptador de aplicação Web

Pré-requisitos

  • Microsoft.NET Framework 4.5.2

  • Aplicação cliente do Unified Service Desk; necessária para testar o controlo alojado.

  • Microsoft Visual Studio 2012 ou Visual Studio 2013

  • Gestor de Pacotes NuGet para Visual Studio 2012 ou Visual Studio 2013

  • Modelos do Microsoft Dynamics CRM SDK para o Visual Studio que contêm o modelo de projeto de controlo alojado do UII. Poderá obtê-la numa das seguintes formas:

Passo 1: Criar uma aplicação web de exemplo

  1. Transfira o pacote do UII SDK (.exe)

  2. Faça duplo clique no ficheiro do pacote para extrair o conteúdo.

  3. Navegue para a pasta <ExtractedFolder>\UII\SampleCode\UII\AIF\ QsWebApplication e abra o ficheiro Microsoft.Uii.QuickStarts.QsWebApplication.csproj no Visual Studio.

  4. Premir F5 ou escolha Depurar > Iniciar Depuração para alojar localmente a aplicação web de exemplo no computador. A aplicação será alojada em https://localhost:2627/.

Passo 2: Configurar a aplicação web no Dynamics CRM

  1. Iniciar sessão no Microsoft Dynamics CRM.

  2. Aceda a Definições > Unified Service Desk. (Como é que chego lá?)

  3. Escolha Controlos Alojados.

  4. Escolha Novo.

  5. Na página de Novo Controlo Alojado, especifique os seguintes valores.

    Campo Valor

    Nome

    QsWebApplication

    Tipo de Componente do USD

    Aplicação Alojada do CCA

    Aplicação Alojada

    Aplicação Alojada na Web

    A Aplicação é Global

    Selecionado

    Grupo de Apresentação

    MainPanel

    Adaptador

    Não Utilizar Adaptador

    A Aplicação é Dinâmica

    Não

    Alojamento da Aplicação

    Utilizar SetParent

    URL

    Especifique o local onde a aplicação web está alojada. Neste caso, é https://localhost:2627/

  6. Escolha Guardar.

Passo 3: Testar a aplicação Web

  1. Certifique-se de que a aplicação web de exemplo que criou no passo 1 ainda está em execução.

  2. Execute o cliente do Unified Service Desk para ligar ao servidor do Microsoft Dynamics CRM.

  3. Quando iniciar sessão com êxito, verá a Aplicação Web Externa de Exemplo no ambiente de trabalho.

  4. Clique no separador Aplicação Web Externa de Exemplopara ver a aplicação web alojada no Unified Service Desk.

Nota

Neste momento os campos estão vazios porque está a hospedar a aplicação web externa no Unified Service Desk. Para a povoar com valores do Unified Service Desk, temos de criar um adaptador de aplicação web como é ilustrado no passo seguinte.

Passo 4: Criar o adaptador de aplicação Web

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

  2. Na caixa de diálogo Novo Projeto:

    1. Na lista de modelos instalados à esquerda, expanda Visual C# e selecione Modelos do CRM SDK > Unified Service Desk > Adaptador de aplicação Web do UII.

    2. Especifique o nome e a localização do projecto e clique em OK para criar um novo projeto.

    3. Escolha WebAppAdapter.cs e atualize a definição de NotifyContextChange com o código seguinte para povoar os campos de texto com informações de contexto. Mais informações: NotifyContextChange

      public override bool NotifyContextChange(Context context)
              {
                  // Populating text fields from context information.
      
                  HTMLDocument htmlDoc = Browser.Document as HTMLDocument;
                  if (htmlDoc != null)
                  {
                      IHTMLElementCollection htmlElementCollection = htmlDoc.all;
                      IHTMLElement htmlFirstName = htmlElementCollection.item("txtFirstName", 0) as IHTMLElement;
                      htmlFirstName.setAttribute("value", context["firstname"], 0);
                      IHTMLElement htmlLastName = htmlElementCollection.item("txtLastName", 0) as IHTMLElement;
                      htmlLastName.setAttribute("value", context["lastname"], 0);
                      IHTMLElement htmlAddress = htmlElementCollection.item("txtAddress", 0) as IHTMLElement;
                      htmlAddress.setAttribute("value", context["address1_line1"], 0);
                      IHTMLElement htmlID = htmlElementCollection.item("txtID", 0) as IHTMLElement;
                      htmlID.setAttribute("value", context["CustomerID"], 0);
                  }
                  return base.NotifyContextChange(context);
              }
      
    4. Adicione o seguinte código à definição manual de DoAction para atualizar a aplicação com valores do Unified Service Desk

      public override bool DoAction(HostedWebApplication.WebAction action, ref string data)
              {
                  Trace.WriteLine(string.Format("{0}>>>>> RECEIVED (WebAction) Action : {1} ", this.Name, action.Name));
      
                  // Check to see if the browser is working on something before allowing the system to do 'normal' behavior.
                  if (Browser.WebBrowser.ReadyState != tagREADYSTATE.READYSTATE_COMPLETE)
                  {
                      // Browser is not in a state to process this request,  Queue it for when the browser is ready to handle it. 
                      Trace.WriteLine(string.Format("{0}>>>>> Browser Busy,({2}) Queuing Action : {1} ", this.Name, action.Name, Browser.WebBrowser.ReadyState.ToString()));
                      qReqActionList.Enqueue(new BrowserActionData(action, data));
                      return false;
                  }
                Trace.WriteLine(string.Format("{0}>>>>>>>>>>> Action:Name={1} Action:Url={2} Action:Query={3} Action:Init={4}", this.Name, action.Name, action.Url, action.QueryString, action.Initialization));
      
                  // Get browser DOM and element collection.
                  // Create an XML Document to load the passed in data to.
                  HTMLDocument htmlDoc = Browser.Document as HTMLDocument;
                  IHTMLElementCollection htmlElementCollection = htmlDoc.all;
      
                  // Check action name for something we know how to process.
                  switch (action.Name)
                  {
                      case "UpdateFirstName":
                          IHTMLElement htmlFirstName = htmlElementCollection.item("txtFirstName", 0) as IHTMLElement;
                          htmlFirstName.setAttribute("value", data, 0);
                          break;
                      case "UpdateLastName":
                          IHTMLElement htmlLastName = htmlElementCollection.item("txtLastName", 0) as IHTMLElement;
                          htmlLastName.setAttribute("value", data, 0);
                          break;
                      case "UpdateAddress":
                          IHTMLElement htmlAddress = htmlElementCollection.item("txtAddress", 0) as IHTMLElement;
                          htmlAddress.setAttribute("value", data, 0);
                          break;
                      case "UpdateID":
                          IHTMLElement htmlID = htmlElementCollection.item("txtID", 0) as IHTMLElement;
                          htmlID.setAttribute("value", data, 0);
                          break;
                  }
                  return false;
              }
      
    5. Guarde e compile o projeto (Compilar > Compilar Solução). Quando o projeto for compilado com êxito, é gerada uma assemblagem (MyWebApplicationAdapter.dll) na pasta \bin\debug da pasta do projeto. Vai precisar desta assemblagem mais tarde para testar e utilizar o adaptador de aplicação web.

Passo 5: Configurar o adaptador de aplicação web no Dynamics CRM

  1. Iniciar sessão no Microsoft Dynamics CRM.

  2. Na barra de navegação, escolha Microsoft Dynamics CRM e seleccione Definições.

  3. Escolha Definições > Unified Service Desk > Controlos Alojados.

  4. Na lista de controlos alojados, selecione o controlo alojado QsWebApplication.

  5. Na secção Configuração do Adaptador, especifique os seguintes valores.

    Campo Valor

    Adaptador

    Utilizar Adaptador

    URI

    MyWebApplicationAdapter

    Tipo

    MyWebApplicationAdapter.WebAppAdapter

    Nota

    URI é o nome da assemblagem e Tipo é o nome da sua assemblagem (dll) seguido «por um ponto (.) e pelo nome da classe no projeto do Visual Studio. Neste exemplo, o nome da assemblagem é MyWebApplicationAdapter e o nome da classe é WebAdapter, que é o nome de classe predefinido quando cria um adaptador de aplicação Web.

  6. Para guardar as alterações, escolha Guardar.

Passo 6: testar o adaptador de aplicação Web

  1. Copie a assemblagem que contém a definição do adaptador de aplicação web da pasta de saída do projeto do Visual Studio(<ProjectFolder>\bin\debug) para o diretório da aplicação do Unified Service Desk. Neste caso, irá copiar o ficheiro MyWebApplicationAdapter.dll para o diretório c:\Program Files\Microsoft Dynamics CRM USD\USD.

  2. Execute o cliente do Unified Service Desk para ligar ao servidor do Microsoft Dynamics CRM.

  3. Quando iniciar sessão com êxito, verá o botão da aplicação Web externa de exemplo no ambiente de trabalho.

  4. Escolha Procurar e escolha Contactos e selecione um contacto. Neste caso, selecione Patrick Sands.

  5. Clique em Aplicação web externa de exemplo é verá o «nome próprio, apelido, endereço, e ID de cliente povoados.

Nota

Este procedimento mostrou-lhe como ler ou apresentar dados do Unified Service Desk na aplicação web externa. Para atualizar dados no Unified Service Desk a partir da aplicação Web externa, e vice-versa, consulte Procedimentos: Criar um Controlo Alojado Formulários do Windows do UII

Consulte Também

Conceitos

Utilizar adaptadores do UII para interagir com aplicações externas e Web

Unified Service Desk
Send comments about this topic to Microsoft.
© 2015 Microsoft. All rights reserved.