Freigeben über


Exemplarische Vorgehensweise: Einen UII-Anwendungs-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 Anwendungsadapter erstellen, wenn Sie eine externe Anwendung mit Unified Service Desk integrieren möchten.Microsoft Dynamics 365 stellt eine Microsoft Visual Studio-Vorlage zum Erstellen eines Anwendungsadapters bereit. Die Vorlage bietet grundlegenden Code als Kommentare, um Ihnen dabei zu helfen, den Anwendungs-Adapter entwicklen zu können.

In dieser exemplarischen Vorgehensweise erstellen Sie eine externe Awendung QsExternalApp und hosten sie in Unified Service Desk. Sie erstellen und konfigurieren dann einen Anwendungsadapter ExternalApplicationAdapter, damit die externe Webanwendung mit Unified Service Desk interagieren kann. Die externe Anwendung hat vier Labels: je eines für Vornamen, Nachnamen, Adresse und ID des Kunden, und vier entsprechende Textfelder, um Werte aus Unified Service Desk anzuzeigen.

In diesem Abschnitt

Voraussetzungen

Schritt 1: Erstellen einer externen Anwendung

Schritt 2: Konfigurieren der externen Anwendung in Microsoft Dynamics 365.

Schritt 3: Testen der externen Anwendung

Schritt 4: Erstellen des Anwendungsadapters

Schritt 4: Konfigurieren des Anwendungsadapters in Dynamics 365

Schritt 5: Testen des Anwendungsadapters

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 externen Anwendung

  1. Laden Sie das UII SDK-Paket herunter.

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

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

  4. Drücken Sie F5 oder wählen Sie Debuggen > Debuggen starten, um eine externe Beispielanwendung zu erstellen. Die Anwendung (Microsoft.Uii.QuickStarts.QsExternalApp.exe) wird im Ordner /bin/debug-Ordner des Projekts erstellt.

    Externe Beispiel-App

Schritt 2: Konfigurieren der externen Anwendung in Microsoft Dynamics 365.

In diesem Schritt erstellen Sie ein gehostetes Steuerelement des Typs Externe gehostete Anwendung, um die Windows-Formularanwendung anzuzueigen.

  1. Melden Sie sich bei Microsoft Dynamics 365 an.

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

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

  4. Klicken Sie auf Neu.

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

    Feld

    Wert

    Name

    QsExternalApp

    USD-Komponente

    Gehostete CCA-Anwendung

    Gehostete Anwendung

    Externe gehostete Anwendung

    Anwendung ist global

    Markiert

    Anzeigegruppe

    MainPanel

    Adapter

    Keinen Adapter verwenden

    Anwendung ist dynamisch

    Nein

    Externe App-URI

    Microsoft.Uii.QuickStarts.QsExternalApp.exe

    Anwendungsadapter-Konfigurationsbildschirm

    Einstellungen für Hosting der externen Unified Service Desk-App

  6. Klicken Sie auf Speichern.

Schritt 3: Testen der externen Anwendung

  1. Kopieren Sie die Anwendung aus Ihrem Visual Studio-Projektausgangsordner (<ProjectFolder>\bin\debug) in das Unified Service Desk-Anwendungsverzeichnis. In diesem Fall kopieren wir die Microsoft.Uii.QuickStarts.QsExternalApp.exefile-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 Externe Beispiele-Webanwendung angezeigt.

  4. Wählen Sie Externe Beispiel-Anwendung, um zu sehen, wie die externe Anwendung in Unified Service Desk gehostet wird.

Beispiel für externe App in Unified Service Desk

Hinweis

Zu diesem Zeitpunkt sind die Felder leer, da Sie die Anwendung nur in Unified Service Desk hosten. Um die Liste mit Werten aus Unified Service Desk aufzufüllen, müsen Sie einen Anwendungsadapter erstellen, wie im nächsten Schritt beschrieben.

Schritt 4: Erstellen des Anwendungsadapters

  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, erweitern Sie Visual C#, und wählen Sie Dynamics 365 SDK-Vorlagen > Unified Service Desk > UII-Anwendungs-Adapter

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

      Adapter für externe Anwendungen in Visual Studio

  3. Erweitern Sie Lösungs-Explorer den Abschnitt Referenzen, um sicherzustellen, dass die Assemblyreferenz korrekt aufgelöst wird.

  4. Öffnen Sie die AppAdapter.cs-Datei und fügen Sie die folgenden Codezeilen hinzu, um die Süeicherorte für dei einzelnen Komponenten auf der Seite in der Klassendefinition festzulegen.

    // Set up your locations for each component on the page.
            // If you wish, you could use Spy++ to get the actual names as well.
            // First Name text box
            int intFirstNameCoordX = 47;
            int intFirstNameCoordY = 32;
            // Last Name text box
            int intLastNameCoordX = 223;
            int intLastNameCoordY = 32;
            // Address Text box
            int intAddressCoordX = 47;
            int intAddressCoordY = 81;
            // Customer ID text box
            int intIDCoordX = 47;
            int intIDCoordY = 126;
    
  5. Fügen Sie den folgenden Code der Definition von NotifyContextChange hinzu, um die Anwendung darüber zu i nformieren, dass der Kontext sich geändert hat. Weitere Informationen finden Sie unter NotifyContextChange.

    public override bool NotifyContextChange(Context context)
            {
                IntPtr ptr = MainWindowHandle;
                // Find the control (first name) by position
                IntPtr childHwnd = Win32API.FindWindowByPosition(ptr, new Point(intFirstNameCoordX, intFirstNameCoordY));
                // Fill data out
                Win32API.SetWindowTextAny(childHwnd, context["firstname"]);
                // Find the control (last name) by position
                childHwnd = Win32API.FindWindowByPosition(ptr, new Point(intLastNameCoordX, intLastNameCoordY));
                // Fill out the data
                Win32API.SetWindowTextAny(childHwnd, context["lastname"]);
                childHwnd = Win32API.FindWindowByPosition(ptr, new Point(intAddressCoordX, intAddressCoordY));
                Win32API.SetWindowTextAny(childHwnd, context["address1_line1"]);
                childHwnd = Win32API.FindWindowByPosition(ptr, new Point(intIDCoordX, intIDCoordY));
                Win32API.SetWindowTextAny(childHwnd, context["CustomerID"]);
                // Hands control back over to the base class to notify next app of context change.
                return base.NotifyContextChange(context);
    
            }
    
  6. Fügen Sie den folgenden Code aus der Außerkraftsetzungsdefinition DoAction, um die Formularfelder mit Werten aus Unified Service Desk zu aktualisieren.

    public override bool DoAction(Microsoft.Uii.Csr.Action action, RequestActionEventArgs args)
            {
                IntPtr ptr;
                IntPtr childHwnd;
                switch (args.Action)
                {
                    case "UpdateFirstName":
                        // Get locations of what you want to update and handles
                        ptr = MainWindowHandle;
                        childHwnd = Win32API.FindWindowByPosition(ptr, new Point(intFirstNameCoordX, intFirstNameCoordY));
                        // Populate data into fields
                        Win32API.SetWindowTextAny(childHwnd, args.Data);
                        break;
                    case "UpdateLastName":
                        // Get locations of what you want to update and handles
                        ptr = MainWindowHandle;
                        childHwnd = Win32API.FindWindowByPosition(ptr, new Point(intLastNameCoordX, intLastNameCoordY));
                        // Populate data into fields
                        Win32API.SetWindowTextAny(childHwnd, args.Data);
                        break;
                }
                return base.DoAction(action, args);
            }
    
  7. Speichern Sie das Projekt und bauen Sie es auf (Aufbauen > Lösung aufbauen). Nachdem das Projekt erfolgreich aufgebaut wurde, wird eine Assembly (ExternalApplicationAdapter.dll) im \bin\debug-Ordner Ihres Projektordners generiert. Sie benötigen diese Assembly späterzum Testen und Verwenden Ihres Anwendungsadapters.

Schritt 4: Konfigurieren des Anwendungsadapters 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 QsExternalApp.

    Gehostetes Steuerelement in Unified Service Desk

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

    Feld

    Wert

    Adapter

    Adapter verwenden

    URI

    ExternalApplicationAdapter

    Typ

    ExternalApplicationAdapter.AppAdapter

    Externe Adapterkonfiguration 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 ExternalApplicationAdapter und Name der Klasse ist AppAdapter; dies ist der Standardklassenname, wenn Sie einen Anwendungsadapter erstellen.

  6. Klicken Sie zum Speichern der Änderungen auf Speichern.

Schritt 5: Testen des Anwendungsadapters

  1. Kopieren Sie die Assembly, die die definition des Webanwendungsadapter enthält, aus Ihrem Visual Studio-Projektausgangsordner (<ProjectFolder>\bin\debug) in das Unified Service Desk-Anwendungsverzeichnis. In diesem Fall kopieren wir die ExternalApplicationAdapter.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 mit dem Microsoft Dynamics 365-Server herzustellen.

  3. Bei erfolgreicher Anmeldung wird die externe Beispiel-Anwendung auf dem Desktop angezeigt.

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

    Kontaktliste im Unified Service Desk

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

    Kundeninformationen in externer Anwendung

Hinweis

Diese Vorgehensweise zeigt, wie Daten aus Unified Service Desk in der externen Webanwendung gelesen oder angezeigt werden. Um zu verstehen, wie die Daten in Unified Service Desk aus der externen Webanwendung aktualisiert werden und umgekehrt, siehe 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