CRM und Inbound-Marketing Blog

So kopieren Sie Ihre Datensätze in Microsoft Dynamics 365 CRM mittels JavaScript.

Geschrieben von Jalal Heidari und Adrian Schäfer | 18.09.2019

(Bildquelle: Pixabay)

Hatten Sie in Ihrem Unternehmen schon mal den Fall, dass Sie in Ihrem Dynamics CRM einen oder mehrere Datensätze kopieren mussten? Die Datensätze manuell zu kopieren, kann sehr zeitaufwendig sein. Daher zeigen wir Ihnen in diesem Blogartikel, wie Sie mittels JavaScript mit nur einem Klick einen Datensatz kopieren können.

XRMToolBox herunterladen


Als Erstes müssen Sie die kostenlose XRMToolBox herunterladen. Darin finden Sie zahlreiche Tools, die das Arbeiten mit Microsoft Dynamics CRM einfacher machen. Nachdem Sie die XRMToolBox installiert und sich angemeldet haben, können Sie unter „Plugin-Store“ den FetchXML Builder herunterladen. Der FetchXML Builder dient zum Abfragen der Daten und ist bei der Programmierung sehr hilfreich. Detaillierte Informationen zu den Themen XRMToolBox und FetchXML Builder finden Sie unter diesem Blogartikel: Dynamics CRM und die XrmToolBox

 

FetchXML Builder öffnen

Als Nächstes öffnen Sie den FetchXML Builder. Auf der linken Seite haben Sie die Option, eine Entität auszuwählen. Das ist die Entität, von der Sie die Daten abrufen möchten.

 

Sobald Sie eine Entität ausgewählt haben, werden Ihnen verschiedene Aktionen angezeigt. Wählen Sie „all-attributes“ aus, da wir zum Kopieren eines Datensatzes alle Attribute abrufen wollen.

 

Klicken Sie im Nachhinein auf „filter“. Wählen Sie in dem Feld Attribute die ID des Datensatzes aus und vergeben Sie eine beliebige ID – diese wird im Code entsprechend angepasst und durch eine Variable ersetzt.

 

Nun können Sie mit F5 die Daten abrufen und unter „View -> FetchXML Javascript Code“ den benötigten JavaScript-Code ansehen.

Anschließend kopieren Sie diesen Code.


und ersetzen „id_Account“ durch die ID im FetchXML-Code wie folgt:

 

Folgende Funktion ruft das Ergebnis von Ihrem FetchXML in Microsoft Dynamics CRM auf. Mit dem Ergebnis können Sie eine Aktion (in diesem Fall einen neuen Datensatz erstellen) ausführen.

 „result.entities[i]“ ist das Ergebnis des FetchXML vom Typ Objekt und beinhaltet die Werte der Attribute des Datensatzes. Für eine bessere Übersicht definieren Sie „result.entities[i]“ als Variable (data). Diese Werte werden beim Anlegen des neuen Datensatzes benötigt.


Funktionen wie Erstellen, Bearbeiten oder Löschen eines Datensatzes und weitere, können mithilfe des CRM Rest Builder erstellt werden. Der CRM Rest Builder ist eine verwaltete Lösung, welche Ihnen die Möglichkeit bietet, WebAPI-Anfragen zu erstellen. Sie können Ihre gewünschte Funktion angeben (siehe nachfolgender Screenshot „Action“) und die WebAPI-Anfrage wird automatisch erstellt. Hier sehen Sie die Oberfläche des CRM Rest Builders:


Bei den einfachen Feldern können Sie die Werte der Attribute, genau wie Sie diese abrufen, übertragen. Im Gegensatz zu den einfachen Feldern müssen komplexe Felder – wie Lookup-Felder – zuerst angepasst werden. Sie passen die Werte wie folgt an:

Achtung: Gucken Sie zuerst, welche Lookup-Felder in der Entität vorhanden sind. Füllen Sie alle Felder aus und führen Sie dann im Anschluss die nächsten Schritte aus. Damit verhindern Sie, dass einige Lookup-Felder nicht in Ihrem Code erwähnt werden.

  1. Lesen Sie mithilfe des Debuggers oder der App Fiedler die Werte aus der Variablen „data“ aus. Damit sehen Sie, welche Lookup-Felder übertragen werden.


  2. Erstellen Sie wie im unten geschriebenen Format ein neues Element und weisen Sie die ID vom Lookup-Feld zu. Verwenden Sie an dieser Stelle @odata.bind, um in WebAPI-Anfragen den Wert eines Lookup-Feldes festzulegen.



  3. Löschen Sie die anderen Elemente aus dem Objekt heraus, sobald Sie das neue Element erstellt haben.

 

Nun kann die Variable „data“ in der Create-Funktion verwendet werden.

 

Beachten Sie: In der zweiten Zeile steht “/api/data/v9.1/”. Dies variiert je nachdem, welche CRM-Version Sie nutzen und muss individuell angepasst werden. Sie finden dies in Ihrem Microsoft Dynamics CRM unter „Anpassungen -> Entwicklerressourcen“ und können es dort anpassen.

Den gesamten Code können Sie hier abrufen.

 

Ribbon Workbench öffnen

Nun legen Sie nur noch den geschriebenen Code in Ihrem Dynamics CRM an und verknüpfen diesen mit einem beliebigen Button an der Entität „Firma“. Dies ermöglicht Ihnen, mit nur einem Klick den Datensatz zu kopieren.

Für das Verknüpfen einer Webressource und eines Buttons können die Ribbon Workbench im XRMToolBox genutzt werden. 

 

 

Sie können entweder einen vorhandenen Button bearbeiten oder einen neuen Button anlegen. Wenn Sie links auf „Button“ klicken und diesen in den Home-, SubGrid- oder Formbereich ziehen, wird ein neuer Button erstellt. Benennen Sie den Button um, fügen Sie ein Iconund ein Command hinzu. Um das Icon hinzuzufügen, müssen Sie es in der richtigen Größe (16*16) in einer Webressource im Microsoft Dynamics CRM speichern. Unter „Actions“ können Sie Ihre JavaScript Webressource mit dem Command verknüpfen. Das war alles!

 

 

In den folgenden Screenshots sehen Sie, das mit einem Klick auf „Datensatz kopieren“ der vorhandene Datensatz dupliziert wird.

 

Sie haben Fragen oder stehen vor ähnlichen Herausforderungen mit Ihrem CRM-System Microsoft Dynamics 365? Dann kontaktieren Sie uns, wir helfen Ihnen gerne weiter!

 

Diese Artikel zum Arbeiten mit Microsoft Dynamics CRM könnten Sie ebenfalls interessieren: