Exemplarische Vorgehensweise: Einen UII-Anwendungs-Adapter erstellen

Sie können einen Anwendungsadapter erstellen, wenn Sie eine externe Anwendung mit Unified Service Desk integrieren möchten. Microsoft Dataverse stellt eine 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 Anwendung QsExternalApp und hosten sie in Unified Service Desk. Anschließend erstellen und konfigurieren Sie einen Anwendungsadapter ExternalApplicationAdapter für die externe Anwendung zur Interaktion mit Unified Service Desk. Die externe Anwendung verfügt über vier Labels: je eines für den Vornamen, den Nachnamen, die Adresse und die ID des Kunden sowie vier entsprechende Textfelder, in denen die Werte von Unified Service Desk angezeigt werden.

In diesem Abschnitt

Voraussetzungen

Schritt 1: Erstellen einer externen Anwendung

Schritt 2: Konfigurieren Sie zunächst eine externe Anwendung

Schritt 3: Testen der externen Anwendung

Schritt 4: Erstellen des Anwendungsadapters

Schritt 5: Konfigurieren des Anwendungsadapters

Schritt 6: Testen des Anwendungsadapters

Anforderungen

  • Microsoft .NET Framework 4.6.2

  • Unified Service Desk Client-Anwendung; wird für das Testen des gehosteten Steuerelements benötigt.

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

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

  • CRM SDK-Vorlagen für Visual Studio, das die gehostete UII- Steuerelement-Projektvorlage enthält. Laden Sie die CRM SDK-Vorlagen aus dem Visual Studio Katalog herunter,und doppelklicken Sie auf die Datei CRMSDKTemplates.vsix, um die Vorlage in Visual Studio zu installieren.

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 Ordner <ExtractedFolder>\UII\SampleCode\UII\AIF\QsExternalApp und öffnen Sie die Datei Microsoft.Uii.QuickStarts.QsExternalApp.csproj 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- des Projektumfangs erstellt.

    Externe Beispiel-App.

Schritt 2: Konfigurieren der externen Anwendung

In diesem Schritt erstellen Sie ein gehostetes Steuerelement vom Typ Externe gehostete Anwendung, um die Windows Forms Anwendung anzuzeigen.

  1. Melden Sie sich bei Unified Service Desk Administrator an.

  2. Wählen Sie Gehostete Steuerelemente unter Grundeinstellungen.

  3. Wählen Sie + Neu.

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

    Feld Wert
    Name QsExternalApp
    USD-Komponente Gehostete CCA-Anwendung
    Gehosteter Anwendungstyp Externe gehostete Anwendung
    Anwendung ist global Markiert
    Anzeigegruppe MainPanel
    Adapter Keinen Adapter verwenden
    Anwendung ist dynamisch Nein
  5. Wählen Sie die Registerkarte Hosting und geben Sie den Externe App-URI Wert als Microsoft.Uii.QuickStarts.QsExternalApp.exe ein.

  6. Wählen Sie Speichern aus.

Schritt 3: Testen der externen Anwendung

  1. Kopieren Sie die Anwendung aus Ihrem Visual Studio-Projektausgabeordner (<ProjectFolder>\bin\debug) in das Unified Service Desk-Anwendungsverzeichnis. In diesem Fall kopieren Sie die Microsoft.Uii.QuickStarts.QsExternalApp.exe-Datei in das Verzeichnis C:\Program Files\Microsoft Dynamics CRM USD\USD Verzeichnis.

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

  3. Bei erfolgreicher Anmeldung wird auf dem Desktop die Schaltfläche Externe Beispiele-Webanwendung angezeigt.

  4. Wählen Sie Beispiel externe Anwendung, um Ihre in Unified Service Desk gehostete externe Anwendung zu sehen.

    Beispiel für externe App in Unified Service Desk.

Anmerkung

Zu diesem Zeitpunkt sind die Felder leer, da Sie die Anwendung nur in Unified Service Desk gehostet haben. Um sie mit Werten aus Unified Service Desk zu füllen, müssen Sie einen Anwendungsadapter erstellen, wie im nächsten Schritt beschrieben.

Schritt 4: Erstellen des Anwendungsadapters

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

  2. Im Dialogfeld Neues Projekt:

    1. Erweitern Sie in der Liste der installierten Vorlagen Visual C# und wählen Sie CRM SDK Templates >Unified Service Desk> UII Application Adapter

    2. Geben Sie den Namen und den Speicherort des Projekts an, und wählen Sie OK, um ein neues Projekt zu erstellen.

    Externer Anwendungsadapter 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 Kontex.

    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 zur Überschreibungsdefinition von DoAction hinzu, um die Felder des Formulars mit den Werten von 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

  1. Melden Sie sich bei Unified Service Desk Administrator an.

  2. Wählen Sie Gehostete Steuerelemente unter Grundeinstellungen.

  3. Wählen Sie in der Liste der gehosteten Steuerelemente das gehostete Steuerelement QsExternalApp.

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

    Feld Wert
    Adapter Adapter verwenden
    URI ExternalApplicationAdapter
    Typ ExternalApplicationAdapter.AppAdapter

    Externe Adapterkonfiguration.

    Anmerkung

    URI ist der Name Ihres Assemblys und Typ ist der Name Ihres Assemblys (dll), gefolgt von einem Punkt (.) und dann dem Klassennamen 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.

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

Schritt 5: Testen des Anwendungsadapters

  1. Kopieren Sie die Montage, die Ihre Anwendungsadapter-Definition enthält, aus dem Ausgabeordner Ihres Projekts Visual Studio (<ProjectFolder>\bin\debug) in das Unified Service Desk-Anwendungsverzeichnis. In diesem Fall wird die ExternalApplicationAdapter.dll Datei nach c: \Programm Dateien\Microsoft Dynamics CRM\ USD\USD Verzeichnis kopiert.

  2. Führen Sie den Unified Service Desk Client aus, um sich mit Ihrem Dataverse-Server zu verbinden.

  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. Wählen Sie Externe Beispiel-Anwendung, und Sie sehen, dass Vorname, Nachname, Adresse und ID des Kunden ausgefüllt sind.

    Kundeninformationen in externer Anwendung.

Anmerkung

Diese exemplarische Vorgehensweise veranschaulicht, wie Sie Daten aus Unified Service Desk in der externen Anwendung anzeigen oder lesen können. Um zu verstehen, wie Sie die Daten in Unified Service Desk von der externen Anwendung aus aktualisieren können, lesen Sie die Exemplarische Vorgehensweise: Ein gehostetes UII Windows Forms Steuerelement erstellen

Siehe auch

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