Condividi tramite


Procedura dettagliata: creare un adapter dell'applicazione UII Web

 

Data di pubblicazione: novembre 2016

Si applica a: Dynamics 365 (online), Dynamics 365 (on-premises), Dynamics CRM 2013, Dynamics CRM 2015, Dynamics CRM 2016

Puoi creare un adapter dell'applicazione Web se desideri migliorare e modificare le applicazioni Web per le quali non disponi dell'accesso al codice sorgente o delle autorizzazioni per la modifica utilizzando il codice gestito.Microsoft Dynamics 365 offre un modello di Microsoft Visual Studio per la creazione di un adapter dell'applicazione Web. Il modello contiene codice di base, ad esempio commenti che consentono di iniziare a creare l'adapter dell'applicazione Web.

In questa procedura dettagliata, viene sviluppata un'applicazione Web esterna denominata QsWebApplication che viene ospitata in Unified Service Desk. Quindi viene creato e configurato un adapter dell'applicazione Web denominato MyWebApplicationAdapter per l'applicazione Web esterna per interagire con Unified Service Desk. L'applicazione Web include quattro etichette, una per il nome, il cognome, l'indirizzo e l'ID del cliente e quattro caselle di testo corrispondenti per visualizzare i valori Unified Service Desk.

In questo argomento

Prerequisiti

Passaggio 1: sviluppare un'applicazione Web di esempio

Passaggio 2: configurare l'applicazione Web in Dynamics 365

Passaggio 3: testare l'applicazione Web

Passaggio 4: creare l'adapter dell'applicazione Web

Passaggio 5: configurare l'adapter dell'applicazione Web in Dynamics 365

Passaggio 6: testare l'adapter dell'applicazione Web

Prerequisiti

  • Microsoft .NET Framework 4.5.2

  • Applicazione client Unified Service Desk, necessaria per il test del controllo ospitato.

  • Microsoft Visual Studio 2012, Visual Studio 2013 o Visual Studio 2015

  • NuGet Package Manager per Visual Studio 2012, Visual Studio 2013 o Visual Studio 2015

  • Modelli Microsoft Dynamics 365 SDK per Visual Studio che contengono il modello del progetto di controllo ospitato UII. È possibile ottenere il modello, in uno dei modi seguenti:

Passaggio 1: sviluppare un'applicazione Web di esempio

  1. Scaricare il pacchetto UII SDK (.exe)

  2. Fare doppio clic sul file di pacchetto per estrarre il contenuto.

  3. Passare alla cartella <ExtractedFolder>\UII\SampleCode\UII\AIF\QsWebApplication e aprire il file Microsoft.Uii.QuickStarts.QsWebApplication.csproj in Visual Studio.

  4. Premere F5 o scegliere Debug > Avvia debug per ospitare l'applicazione Web di esempio in locale nel computer. L'applicazione sarà ospitata all'indirizzo https://localhost:2627/.

    App Web in Visual Studio

Passaggio 2: configurare l'applicazione Web in Dynamics 365

  1. Accedere a Microsoft Dynamics 365.

  2. Passa a Impostazioni > Unified Service Desk.

  3. Scegli Controlli ospitati.

  4. Scegliere Nuovo.

  5. Nella pagina Nuovo controllo ospitato specificare i valori seguenti.

    Campo

    Valore

    Nome

    QsWebApplication

    Tipo componente USD

    Applicazione ospitata di CCA

    Applicazione ospitata

    Applicazione ospitata Web

    L'applicazione è globale

    Selezionato

    Gruppo di visualizzazione

    MainPanel

    Adapter

    Non usare alcun adapter

    L'applicazione è dinamica

    No

    Hosting applicazione

    Usa Imposta padre

    URL

    Specificare la posizione in cui è ospitata l'applicazione Web. In questo caso, https://localhost:2627/

    Schermata di configurazione applicazione Web Adapter in Dynamics 365

  6. Scegliere Salva.

Passaggio 3: testare l'applicazione Web

  1. Verificare che l'applicazione Web di esempio compilata al passaggio 1 sia ancora in esecuzione.

  2. Eseguire il client Unified Service Desk per connettersi al server Microsoft Dynamics 365.

  3. Una volta completato l'accesso viene visualizzato Esempio di applicazione Web esterna sul desktop.

  4. Fare clic sulla scheda Esempio di applicazione Web esterna per visualizzare l'applicazione Web ospitata in Unified Service Desk.

Hosting di un'applicazione Web in Unified Service Desk

Nota

In questa fase i campi sono vuoti perché si sta solo ospitando l'applicazione Web esterna in Unified Service Desk. Per popolarli con i valori di Unified Service Desk, è necessario creare un'applicazione Web come illustrato nel passaggio successivo.

Passaggio 4: creare l'adapter dell'applicazione Web

  1. Avviare Microsoft Visual Studio e creare un nuovo progetto.

  2. Nella finestra di dialogo Nuovo progetto:

    1. Nell'elenco dei modelli installati a sinistra, espandere Visual C# e selezionare Modelli Dynamics 365 SDK > Unified Service Desk > Adapter dell'applicazione UII Web.

    2. Specificare il nome e il percorso del progetto e fare clic su OK per creare un nuovo progetto.

      Schermata di Web Adapter in Visual Studio

    3. Scegliere WebAppAdapter.cs e aggiornare la definizione di NotifyContextChange con il codice seguente per popolare i campi di testo dalle informazioni sul contesto.Ulteriori informazioni: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. Aggiungere il codice seguente nella definizione di override di DoAction per aggiornare l'applicazione con i valori di 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. Salvare il progetto e compilarlo (Compila > Compila soluzione). Una volta compilato il progetto, viene generato un assembly (MyWebApplicationAdapter.dll) nella cartella \bin\debug della cartella del progetto. Questo assembly sarà necessario più avanti per testare e utilizzare l'adapter dell'applicazione Web.

Passaggio 5: configurare l'adapter dell'applicazione Web in Dynamics 365

  1. Accedere a Microsoft Dynamics 365.

  2. Sulla barra di spostamento scegliere Microsoft Dynamics 365, quindi selezionare Impostazioni.

  3. Scegliere Impostazioni > Unified Service Desk > Controlli ospitati.

  4. Nell'elenco di controlli ospitati, selezionare il controllo ospitato QsWebApplication.

    Elenco di controlli ospitati in Dynamics 365

  5. Nella sezione Configurazione adapter, specificare i seguenti valori.

    Campo

    Valore

    Adapter

    Usa adapter

    URI

    MyWebApplicationAdapter

    Tipo

    MyWebApplicationAdapter.WebAppAdapter

    Configurazione di Web Adapter in Dynamics 365

    Nota

    URI è il nome dell'assembly e Tipo è il nome dell'assembly (dll) seguito da un punto (.) e dal nome della classe del progetto Visual Studio. In questo esempio il nome dell'assembly è MyWebApplicationAdapter e il nome della classe è WebAdapter, ovvero il nome della classe predefinita quando si crea un adapter dell'applicazione Web.

  6. Scegliere Salva per salvare le modifiche.

Passaggio 6: testare l'adapter dell'applicazione Web

  1. Copiare l'assembly che contiene la definizione dell'adapter dell'applicazione Web dalla cartella di output del progetto di Visual Studio(<ProjectFolder>\bin\debug) nella cartella dell'applicazione Unified Service Desk. In questo caso, si copia il file MyWebApplicationAdapter.dll nella directory c:\Program Files\Microsoft Dynamics CRM USD\USD.

  2. Eseguire il client Unified Service Desk per connettersi al server Microsoft Dynamics 365.

  3. Una volta completato l'accesso viene visualizzato il pulsante dell'applicazione Web esterna di esempio sul desktop.

  4. Scegliere Cerca, quindi Contatti e selezionare un contatto. In questo caso, selezionare Pietro Lombardi.

    Screenshot dell'elenco di contatti

  5. Fare clic su Esempio di applicazione Web esterna per visualizzare il nome, il cognome, l'indirizzo e l'ID del cliente nei campi.

    Schermata di test adattatore WebApp

Nota

In questa procedura dettagliata viene indicato come leggere o visualizzare i dati da Unified Service Desk nell'applicazione Web esterna. Per aggiornare i dati in Unified Service Desk dall'applicazione Web esterna e viceversa, vedere Procedura dettagliata: creare un controllo ospitato Windows Form UII

Vedere anche

Utilizzare gli adapter UII per l'interazione con le applicazioni Web ed esterne

Unified Service Desk 2.0

© 2017 Microsoft. Tutti i diritti sono riservati. Copyright