Overzicht: Een UII-webtoepassingsadapter maken

 

Gepubliceerd: november 2016

Is van toepassing op: Dynamics 365 (online), Dynamics 365 (on-premises), Dynamics CRM 2013, Dynamics CRM 2015, Dynamics CRM 2016

U kunt een webtoepassingsadapter maken als u webtoepassingen wilt uitbreiden en wijzigen waarvoor u geen toegang tot de broncode hebt of geen bevoegdheid hebt om wijzigingen aan te brengen door middel van beheerde code.Microsoft Dynamics 365 biedt een Microsoft Visual Studio-sjabloon voor het maken van een webtoepassingsadapter. De sjabloon bevat elementaire code als opmerkingen om u te helpen snel aan de slag te gaan met het maken van de webtoepassingsadapter.

In dit overzicht maakt u een externe webtoepassing genaamd QsWebApplication en host u deze in Unified Service Desk. U gebruikt en configureert vervolgens een webtoepassingadapter genaamd MyWebApplicationAdapter waarmee de externe webtoepassing kan communiceren Unified Service Desk. De webtoepassing heeft vier labels, voor de voornaam, de achternaam, het adres en de id van de klant, en vier corresponderende tekstvakken om de Unified Service Desk-waarden weer te geven.

In dit onderwerp

Vereisten

Stap 1: Een voorbeeldwebtoepassing maken

Stap 2: De webtoepassing configureren in Dynamics 365

Stap 3: De webtoepassing testen

Step 4: De webtoepassingsadapter maken

Stap 5: De webtoepassingsadapter configureren in Dynamics 365

Stap 6: De webtoepassingsadapter testen

Vereisten

  • Microsoft .NET Framework 4.5.2

  • Unified Service Desk-clienttoepassing, vereist om het gehoste besturingselement te testen.

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

  • NuGet Pakketbeheer voor Visual Studio 2012, Visual Studio 2013 of Visual Studio 2015

  • Microsoft Dynamics 365 SDK-sjablonen voor Visual Studio die de projectsjabloon voor het gehoste UI-besturingselement bevatten. U kunt het via een van de volgende opties krijgen:

Stap 1: Een voorbeeldwebtoepassing maken

  1. Download het UII SDK-pakket (.exe)

  2. Dubbelklik op het pakketbestand om de inhoud uit te pakken.

  3. Navigeer naar de map <ExtractedFolder>\UII\SampleCode\UII\AIF\QsWebApplication en open het bestand Microsoft.Uii.QuickStarts.QsWebApplication.csproj in Visual Studio.

  4. Druk op F5 of kies Foutopsporing > Foutopsporing starten om de voorbeeldwebtoepassing lokaal op uw computer te hosten. De toepassing wordt gehost op https://localhost:2627/.

    Web-app in Visual Studio

Stap 2: De webtoepassing configureren in Dynamics 365

  1. Aanmelden bij Microsoft Dynamics 365.

  2. Ga naar Instellingen > Unified Service Desk.

  3. Kies Gehoste besturingselementen

  4. Kies Nieuw.

  5. Geef op de pagina Nieuw gehost besturingselement de volgende waarden op.

    Veld

    Waarde

    Naam

    QsWebApplication

    Onderdeeltype van Volledige servicedesk

    CCA-gehoste toepassing

    Gehoste toepassing

    Op web gehoste toepassing

    Toepassing is algemeen

    Ingeschakeld

    Weergavegroep

    MainPanel

    Adapter

    Geen adapter gebruiken

    Toepassing is dynamisch

    Nee

    Toepassingen hosten

    SetParent gebruiken

    URL

    Geef de locatie op waar uw webtoepassing wordt gehost. In dit geval is dat https://localhost:2627/.

    Schermafbeelding van webtoepassingsconfiguratie in Dynamics 365

  6. Kies Opslaan.

Stap 3: De webtoepassing testen

  1. Zorg ervoor dat de voorbeeldwebtoepassing die u stap 1 hebt gemaakt nog actief is.

  2. Voer de Unified Service Desk-client uit om verbinding te maken met uw Microsoft Dynamics 365-server.

  3. Als u met succes bent aangemeld, ziet u het Voorbeeld van externe webtoepassing op uw bureaublad.

  4. Klik op het tabblad Voorbeeld van externe webtoepassing om uw webtoepassing gehost in Unified Service Desk te zien.

Webtoepassing in Unified Service Desk hosten

Notitie

Op dit moment zijn de velden leeg omdat u de alleen de externe webtoepassing host in Unified Service Desk. Als we ze willen vullen met waarden uit Unified Service Desk, moeten we een webtoepassingadapter maken zoals aangegeven in de volgende stap.

Step 4: De webtoepassingsadapter maken

  1. Start Microsoft Visual Studio, en maak een nieuw project.

  2. In het dialoogvenster Nieuw project:

    1. Vouw in de lijst met geïnstalleerde sjablonen links Visual C# uit en selecteer Dynamics 365 SDK-sjablonen > Unified Service Desk > UII-webtoepassingsadapter.

    2. Geef de naam en locatie van het project op en klik op OK om een nieuw project te maken.

      Schermafbeelding van webadapter in Visual Studio

    3. Kies WebAppAdapter.cs en werk de definitie van NotifyContextChange bij met de volgende code om de tekstvelden te vullen vanuit de contextinformatie.Meer informatie: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. Voeg de volgende code toe aan de overschrijvingsdefinitie van DoAction om de toepassing bij te werken met waarden uit 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. Sla uw project op en maak het (Maken > Oplossing maken). Nadat het project met succes is gemaakt, wordt een assembly (MyWebApplicationAdapter.dll) gegenereerd in de map \bin\debug van uw projectmap. U hebt deze assembly later nodig om te testen en uw webtoepassingadapter te gebruiken.

Stap 5: De webtoepassingsadapter configureren in Dynamics 365

  1. Aanmelden bij Microsoft Dynamics 365.

  2. Kies op de navigatiebalk Microsoft Dynamics 365 en selecteer Instellingen.

  3. Kies Instellingen > Unified Service Desk > Gehoste besturingselementen.

  4. Selecteer in de lijst met gehoste besturingselementen QsWebApplication.

    Lijst met gehoste besturingselementen in Dynamics 365

  5. Geef in het gedeelte Adapterconfiguratie de volgende waarden op.

    Veld

    Waarde

    Adapter

    Adapter gebruiken

    URI

    MyWebApplicationAdapter

    Type

    MyWebApplicationAdapter.WebAppAdapter

    Configuratie van webadapter in Dynamics 365

    Notitie

    URI is de naam van uw assembly en het Type is de naam van uw assembly (dll) gevolgd door een punt (.) en vervolgens de klassenaam in uw Visual Studio-project. In dit voorbeeld is de naam van de assemblage MyWebApplicationAdapter en de naam van de klasse WebAdapter, wat de standaardklassenaam is wanneer u een webtoepassingsadapter maakt.

  6. Kies Opslaan om de wijzigingen op te slaan.

Stap 6: De webtoepassingsadapter testen

  1. Kopieer de assembly die de definitie van uw webtoepassingadapter bevat uit uw Visual Studio-projectuitvoermap ((<ProjectFolder>\bin\debug) naar de toepassingsdirectory van Unified Service Desk. In dit geval kopieert u het bestand MyWebApplicationAdapter.dll naar de directory c:\Program Files\Microsoft Dynamics CRM USD\USD.

  2. Voer de Unified Service Desk-client uit om verbinding te maken met uw Microsoft Dynamics 365-server.

  3. Als u met succes bent aangemeld, ziet u de voorbeeldknop voor de externe webtoepassing op uw bureaublad.

  4. Kies Zoeken en vervolgens Contactpersonen en selecteer een contactpersoon. Selecteer in dit geval Patrick Sands.

    Schermafbeelding van contactpersonenlijst

  5. Klik op Voorbeeld van externe webtoepassing. U ziet dan dat de voornaam, de achternaam, het adres en de id van de klant gevuld worden.

    WebApp Adapter-schermafbeelding testen

Notitie

Dit overzicht liet zien hoe u gegevens uit Unified Service Desk leest en weergeeft in de externe webtoepassing. Als u de gegevens in Unified Service Desk wilt bijwerken vanuit de externe toepassing en andersom raadpleegt u Overzicht: Een gehost UII Windows Forms-besturingselement maken

Zie ook

UII-adapters gebruiken om te communiceren met externe toepassingen en webtoepassingen

Unified Service Desk 2.0

© 2017 Microsoft. Alle rechten voorbehouden. Auteursrecht