Zugriff auf Microsoft Dynamics CRM 2011 mit Java – Teil III

In diesem Artikel erläutere ich, wie mit Hilfe von RESTlet speziellere Abfragen an das Microsoft Dynamics CRM durchgeführt werden können. Dieser Teil dient als Fortsetzung zu Zugriff auf Microsoft Dynamics CRM 2011 mit Java – Teil II.

Erstellung von Abfragen

Mit Hilfe der Serviceklasse lassen sich verschiedenste Abfragen erstellten:

Abfrage über Beziehungen

Das Beispiel zeigt, wie das Unternehmen (Entität „Account“) eines Kontaktes (Entität „Contact“) abgefragt werden kann.

In Zeile 1 wird bei der Erstellung der Query die Beziehung, über die das Unternehmen des Kontaktes ermittelt werden soll, „angekündigt“. Dazu wird die Methode expand("contact_accounts") aufgerufen. „contact_accounts“ ist der Name der Beziehung, die genutzt werden soll. Anschließend wird die Query ganz normal ausgeführt. Um schließlich das in der Beziehung stehende Unternehmen abzurufen, wird die Methode des Kontakt-Objektes aufgerufen, die den gleichen Name wie die Beziehung trägt. In diesem Beispiel ist es getContact_accounts().

Hinweis: Bei der Generierung der Entitätsklassen wird implizit für jede Beziehung einer Entität zu anderen Entitäten eine get-Methode mit dem Name der Beziehung erstellt. Mit dieser kann dann auf die zu einem Objekt in Beziehung stehenden Objekte zugegriffen werden.

Setzen einer Beziehung

In folgenden Beispiel wird einem Kontakt ein Land zugeordnet.

Um die Beziehung zwischen Kontakt und Land zu setzen, wird die Funktion setLink() genutzt. Ihr werden die beiden Entitäten, zwischen denen die Beziehung gesetzt werden soll, übergeben sowie der Schemaname der Beziehung im CRM. Hierbei muss wiederum sichergestellt werden, dass die Ids der beiden lokalen Instanzen den Vorsatz „guid“ enthalten und in einfachen Anführungszeichen stehen.

Begrenzung der Anzahl zurückgegebener Entitäten

Dieses Beispiel stellt dar, wie bei einer Abfrage die Anzahl der zurückgelieferten Einträge beschränkt werden kann.

Mit Hilfe der Methode top(n) lässt sich die Menge der zurückgegebenen Einträge begrenzen. Sie liefert die ersten n Einträge zurück und damit maximal n Einträge. Im Beispiel werden als Ergebnis die ersten 3 Kontakte aus dem CRM zurückgeliefert.

Filtern von Ergebnissen

Mit dem nächsten Beispiel wird demonstriert, wie Ergebnisse nach bestimmten Kriterien gefiltert werden können.

Für die Filterung wird die Methode filter() verwendet. Ihr werden die Filterbedingungen in Form von LINQ-Ausdrücken übergeben. Dabei ist zu beachten, dass zur Benennung der Attribute die Schemanamen verwendet werden. Im Beispiel wird eine Query definiert, die alle Kontakte mit dem Nachname „Mustermann“ und dem Vorname „Max“ zurückliefert. „LastName“ und „FirstName“ sind hier die Schemanamen der beiden Attribute im CRM.

Hinweis: LINQ (Language Integrated Query) ist ein Verfahren, dass von Microsoft für den Zugriff auf Daten entwickelt wurde.

Projektionen

Um die Menge der zu übertragenden Daten zu reduzieren, kann die Methode select() genutzt werden. Ihr werden die Schemanamen der tatsächlich benötigten Attribute übergeben, wodurch schließlich auch nur die Inhalte dieser Attribute übertragen werden. Im Beispiel wird in den erhaltenen Kontakten somit nur der Wert des Vornamens („FirstName“) belegt sein.

 

Quellen

Dieser Artikel wurde unter Zuhilfenahme folgender Quellen erstellt:

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.