Freigeben über


Exemplarische Vorgehensweise: Einen UII-Webanwendungs-Adapter erstellen

 

Veröffentlicht: November 2016

Gilt für: Dynamics 365 (online), Dynamics 365 (on-premises), Dynamics CRM 2013, Dynamics CRM 2015, Dynamics CRM 2016

Sie können einen Webanwendungsadapter erstellen, wenn Sie Webanwendungen verbessern möchten, für die Sie über keinen Zugriff auf Quellcode verfügen oder Berechtigungen zum Ändern besitzen, indem Sie verwalteten Code verwenden.Microsoft Dynamics 365 stellt eine Microsoft Visual Studio-Vorlage zum Erstellen eines Webanwendungsadapters bereit. Die Vorlage bietet grundlegenden Code als Kommentare, um Ihnen dabei zu helfen, den Webanwendungs-Adapter entwicklen zu können.

In dieser exemplarischen Vorgehensweise erstellen Sie eine externe Webanwendung namens QsWebApplication und hosten sie in Unified Service Desk. Sie erstellen und konfigurieren dann einen Webanwendungsadapter namens MyWebApplicationAdapter, damit die externe Webanwendung mit Unified Service Desk interagieren kann. Die Webanwendung hat vier Labels, je eines für Vornamen, Nachnamen, Adresse und ID des Kunden, und vier entsprechende Textfelder, um die Unified Service Desk-Werte anzuzeigen.

In diesem Thema

Voraussetzungen

Schritt 1: Erstellen einer Beispielwebanwendung

Schritt 2: Konfigurieren der Webanwendung in Dynamics 365

Schritt 3: Testen der Webanwendung

Schritt 4: Erstellen des Webanwendungsadapters

Schritt 5: Konfigurieren des Webanwendungsadapters in Dynamics 365

Schritt 6: Testen des Webanwendungsadapters

Voraussetzungen

  • Microsoft .NET Framework 4.5.2

  • Unified Service Desk-Client-Anwendung; erforderlich für das Testen des gehosteten Steuerelements.

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

  • NuGet Package Manager für Visual Studio 2012, Visual Studio 2013 oder Visual Studio 2015

  • Microsoft Dynamics 365 SDK-Vorlagen für Visual Studio, das die gehostete UII- Steuerelement-Projektvorlage enthält. Sie können Sie auf eine der folgenden Weisen erhalten:

Schritt 1: Erstellen einer Beispielwebanwendung

  1. Herunterladen des UII SDK-Pakets (.exe)

  2. Doppelklicken Sie auf die Paketdatei, um den Inhalt zu extrahieren.

  3. Navigieren Sie zum <ExtractedFolder>\UII\SampleCode\UII\AIF\QsWebApplication-Ordner, und öffnen Sie die Microsoft.Uii.QuickStarts.QsWebApplication.csproj-Datei in Visual Studio.

  4. Drücken Sie F5 oder wählen Sie Debuggen > Debuggen starten, um die Beispiel-Webanwendung auf Ihrem Computer zu hosten. Die Anwendung wird gehostet auf https://localhost:2627/.

    Webanwendung in Visual Studio

Schritt 2: Konfigurieren der Webanwendung in Dynamics 365

  1. Melden Sie sich bei Microsoft Dynamics 365 an.

  2. Gehen Sie zu Einstellungen > Unified Service Desk.

  3. Wählen Sie Gehostete Steuerelemente aus.

  4. Klicken Sie auf Neu.

  5. Geben Sie auf der Seite Neues gehostetes Steuerelement die folgenden Werte an:

    Feld

    Wert

    Name

    QsWebApplication

    USD-Komponententyp

    Gehostete CCA-Anwendung

    Gehostete Anwendung

    Gehostete Webanwendung

    Anwendung ist global

    Markiert

    Anzeigegruppe

    MainPanel

    Adapter

    Keinen Adapter verwenden

    Anwendung ist dynamisch

    Nein

    Anwendungshosting

    SetParent verwenden

    URL

    Geben Sie den Ort an, an dem die Webanwendung gehostet wird. In diesem Fall ist es https://localhost:2627/

    Screenshot der Web App Config in Dynamics 365

  6. Klicken Sie auf Speichern.

Schritt 3: Testen der Webanwendung

  1. Überprüfen Sie, ob die Beispiel-Webanwendung, die Sie in Schritt 1 erstellt haben, weiterhin ausgeführt wird.

  2. Führen Sie den Unified Service Desk-Client aus, um eine Verbindung zu Ihrem Microsoft Dynamics 365-Server herzustellen.

  3. Bei erfolgreicher Anmeldung wird auf dem Desktop Externe Beispiele-Webanwendung angezeigt.

  4. Klicken Sie auf die Registerkarte Externe Beispiel-Webanwendung , um zu sehen, dass die Webanwendung im Unified Service Desk gehostet wird.

Web-App hosten in Unified Service Desk

Hinweis

Zu diesem Zeitpunkt sind die Felder leer, da Sie nur die externe Webanwendung im Unified Service Desk hosten. Um die Liste mit Werten aus Unified Service Desk auszufüllen, müssen wir einen Webanwendungsadapter erstellen, wie im nächsten Schritt gezeigt.

Schritt 4: Erstellen des Webanwendungsadapters

  1. Starten Sie Microsoft Visual Studio und erstellen Sie ein neues Projekt.

  2. Im Dialogfeld Neues Projekt:

    1. Erweitern Sie in der Liste der installierten Vorlagen auf der linken Seite Visual C#, und wählen Sie Dynamics 365 SDK-Vorlagen > Unified Service Desk > UII-Webanwendungsadapter aus.

    2. Geben Sie den Namen und den Speicherort des Projekts an, und klicken Sie auf OK, um ein neues Projekt zu erstellen.

      Screenshot vom Webadapter in Visual Studio

    3. Wählen Sie WebAppAdapter.cs, und aktualisieren Sie die Definition von NotifyContextChange mit dem folgenden Code, um die Textfelder aus den Kontextinformationen aufzufüllen.Weitere Informationen: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. Fügen Sie den folgenden Code aus der Außerkraftsetzungsdefinition DoAction hinzu, um die Anwendungswerte von Unified Service Desk zu aktualisieren.

      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. Speichern Sie das Projekt und bauen Sie es auf (Aufbauen > Lösung aufbauen). Nachdem das Projekt erfolgreich aufgebaut wurde, wird eine Assembly (MyWebApplicationAdapter.dll) im \bin\debug-Ordner Ihres Projektordners generiert. Sie benötigen diese Assembly späterzum Testen und Verwenden Ihres Webanwendungsadapters.

Schritt 5: Konfigurieren des Webanwendungsadapters in Dynamics 365

  1. Melden Sie sich bei Microsoft Dynamics 365 an.

  2. Klicken Sie auf der Navigationsleiste auf Microsoft Dynamics 365, und wählen Sie dann Einstellungen.

  3. Klicken Sie auf Einstellungen > Unified Service Desk > Gehostete Steuerelemente.

  4. Wählen Sie in der Liste der gehosteten Steuerelemente das gehostete Steuerelement QsWebApplication.

    Gehostete Steuerelemente in Dynamics 365

  5. Geben Sie im Abschnitt Adapterkonfiguration die folgenden Werte an.

    Feld

    Wert

    Adapter

    Adapter verwenden

    URI

    MyWebApplicationAdapter

    Typ

    MyWebApplicationAdapter.WebAppAdapter

    Webadapterkonfiguration in Dynamics 365

    Hinweis

    URI ist der Name Ihrer Assembly, und der Typ ist der Name Ihrer Assembly (dll), gefolgt von einem Punkt (.) und anschließend der Klassenname in Ihrem Visual Studio-Projekt. In diesem Beispiel lautet der Name des Assemblys MyWebApplicationAdapter und Name der Klasse ist WebAdapter; dies ist der Standardklassenname, wenn Sie ein benutzerdefiniertes gehostetes Steuerelement erstellen.

  6. Wählen Sie Speichern aus, um die Änderungen zu speichern.

Schritt 6: Testen des Webanwendungsadapters

  1. Kopieren Sie die Assembly, die die definition des Webanwendungsadapter enthält, aus Ihrem Visual Studio-Projktausgangsordner (<ProjectFolder>\bin\debug) in das Unified Service Desk-Anwendungsverzeichnis. In diesem Fall kopieren Sie die MyWebApplicationAdapter.dll-Datei in das c:\Program Files\Microsoft Dynamics CRM USD\USD-Verzeichnis.

  2. Führen Sie den Unified Service Desk-Client aus, um eine Verbindung zu Ihrem Microsoft Dynamics 365-Server herzustellen.

  3. Bei erfolgreicher Anmeldung wird auf dem Desktop die Schaltfläche für die externe Beispiel-Webanwendung angezeigt.

  4. Wählen Sie Suchen aus und wählen Sie dann Kontakte aus, und wählen Sie einen Kontakt aus. Wählen Sie in diesem Fall Patrick Sands.

    Screenshot der Kontaktliste

  5. Klicken Sie auf Externe Beispiel-Webanwendung, und Sie sehen, dass Vorname, Nachname, Adresse und ID des Kunden ausgefüllt sind.

    Screenshot des WebApp-Adapter-Tests

Hinweis

Diese v Vorgehensweise hat Ihnen gezeigt, wie Daten aus Unified Service Desk in der externen Webanwendung gelesen oder angezeigt werden. Wie die Daten in Unified Service Desk aus der externen Webanwendung aktualisiert werden und umgekehrt, finden Sie unter Exemplarische Vorgehensweise: Erstellen eines UII Windows Forms gehosteten Steuerelement

Siehe auch

Verwenden von UII-Adaptern, um mit externem und Webanwendungen zu interagieren

Unified Service Desk 2.0

© 2017 Microsoft. Alle Rechte vorbehalten. Copyright