FetchXml Berichte für Microsoft CRM 2011 erstellen

6. Juni 2013

Einleitung

Microsoft Dynamics CRM 2011 ist eine vielseitig erweiterbare Plattform welche viele Möglichkeiten zur Anpassung bietet. In dem heutigen Artikel widmen wir uns der Erstellung eines Berichtes für Microsoft Dynamics CRM 2011. Grundsätzlich sind Berichte in Microsoft Dynamics CRM 2011 ganz normale SQL Server Reporting Servies (SSRS) Berichte. Etwas ungewohnt ist der Zugriff auf die CRM Entitäten. Hierfür gibt es zwei Möglichkeiten:

  • SQL basierend
    Diese Berichte benutzen SQL-Abfragen um Daten zu lesen. Alle Standard Berichte von CRM 2011 und CRM Online basieren auf diesen SQL Abfragen. Aus sicherheitstechnischen Gründen können keine eigenen SQL basierenden Berichte in CRM Online deployed werden.
  • FetchXml basierend
    Diese Berichte wurden mit CRM 2011 eingeführt und verwenden FetchXml für Abfragen. FetchXml ist eine proprietäre Abfragesprache auf Basis von Xml und ist zentriert um Entitäten. Die Sprache ermöglicht ebenso Verknüpfungen und Aggregationen. Alle mit dem Wizard erstellen Berichte basieren auf FetchXml.

In diesem Artikel werden benutzerdefinierte Berichte basierend auf FetchXml näher beleuchtet.

Vorbereitungen

Zum Entwickeln von benutzerdefinierten Berichten basierend auf FetchXml müssen zuerst die Microsoft Dynamics CRM 2011 Report Authoring Extensions installiert werden. Diese sind hier zu finden: http://www.microsoft.com/en-us/download/details.aspx?id=27823

Zum jetzigen Zeitpunkt unterstützen die Report Authoring Extensions allerdings nur Business Intelligence Development Studio 2008 (BIDS). Nach der Installation steht uns in BIDS einen neue Datenquelle vom Typ Microsoft Dynamics CRM Fetch zur Verfügung.

Solution anlegen

Zuerst erstellen wir eine neue Solution in Visual Studio 2008:

image

Und wählen Report Server Project:

clip_image002

Bevor wir nun eine DataSource für unseren Bericht erstellen folgt zuerst ein kleiner Exkurs zu DataSources und CRM:

Beim Erstellen einer neuen Organisation werden standardmäßig immer zwei DatasSources im SharedReports-Folder des SSRS erzeugt:

  • MSCRM_DataSource
    Für SQL Abfragen
  • MSCRM_FetchDataSource
    Für FetchXml Abfragen

Diese können in unserem Bericht eingebunden werden. Da die Datenquellen in jeder Organisation vorhanden sind, wird nach dem Deployment eines Berichtes, auch immer die korrekte Datenquelle verwendet und können so den gleichen Report ohne Anpassungen auf verschiedenen Systemen deployen.

Um diese zu verwenden legen wir in unserem Projekt eine Shared Data Source mit dem Namen MSCRM_FetchDataSource an.

clip_image003

Als Typ wählen wir Microsoft Dynamics CRM Fetch und für den Connection string geben wir die URL unserer CRM Instanz an.

clip_image004

Credentials werden von uns nicht verändert und können in den Standardeinstellungen gelassen werden.

image

FetchXml Abfrage erstellen

Als nächstes benötigen wir eine Abfrage für unseren Bericht. Microsoft CRM bietet glücklicherweise eine recht komfortable Möglichkeit auch ohne größere Kenntnisse von FetchXml Abfragen zu erstellen. Hierzu wählen wir im Microsoft CRM die Erweiterte Suche.

clip_image005

Hier können wir uns unsere Abfrage mit einem Wizard erstellen und später das FetchXml anzeigen lassen. Als Entität für die Suche wählen wir Sicherheitsrollen (diese Entität sollte in jeder CRM Instanz zu finden sein) und definieren den Filter wie folgt:

image

Zum Anzeigen des FetchXml klicken wir den Button FetchXml herunterladen in der oberen rechten Ecke.

clip_image007

Die so erzeugte Datei speichern wir an einem beliebigen Ort in unseren Dateisystem und öffnen diese mit NotePad.
Wir ergänzen die Abfrage noch um das Attribut fullname der Entität systemuser, damit wir auch den Namen der Benutzer angezeigt bekommen.

clip_image009

Zum besseren Verständnis von FetchXml hier ein Screenshoot welch Teile der Abfrage welchem SQL Befehl entsprechen.

clip_image010

Bericht erstellen

Nun ist alles bereit, um unseren Bericht zu erstellen. Wir wechseln hierzu wieder nach Visual Studio und erstellen einen neuen Bericht:

clip_image011

Als Datenquelle wählen wir die Shared data source MSCRM_FetchDataSource:

clip_image012

Im nächsten Schritt kopieren wir die vorbereitete Abfrage in das Feld Query String

clip_image013

Als Felder wählen wir nur name und fullname.

clip_image014

Wir geben dem Bericht noch einen Namen und sind fertig.

clip_image015

Hier das Ergebnis:

image

Bericht in CRM System veröffentlichen

Um unseren Bericht anderen Benutzern zur Verfügung zu stellen, muss dieser im CRM System veröffentlicht werden.
Dazu gehen wir zu Berichte

clip_image001

Und wählen Neu

clip_image002[1]

Im folgenden Menu wählen wir für Berichtstyp Vorhandene Datei, geben Name und Beschreibung ein und wählen den Dateispeicherort der von uns erstellten RDL Berichtsdatei aus.

clip_image003[1]

Unter Verwaltung ändern wir bei Bedarf die Sichtbarkeit von Individuell auf Organisation (nur so kann er von anderen Benutzern gesehen werden).

clip_image004[1]

Sind alle Daten eingetragen klicken wir auf Speichern und schließen. Der Bericht ist nun im CRM System veröffentlicht.

Fazit

Berichte für Microsoft CRM 2011 unterscheiden sich nur in in der Art der Abfrage von normalen SSRS Berichten. Mit den hier gezeigten Grundlagen können nun auch komplexere Berichte für Microsoft CRM 2011 erstellt werden.
In einem Folgeartikel werde ich näher auf FetchXml als Abfragesprache und das Verwenden von Parametern eingehen.