Freigeben über


Abfrage von Microsoft Dynamics CRM 2015-Daten mit dem OData-Endpunkt

 

Veröffentlicht: November 2016

Gilt für: Dynamics CRM 2015

Um Daten mit dem OData-Endpunkt zu suchen und abzurufen, bearbeiten Sie die URI. Alle Aktionen erfordern, dass Sie mit der Servicestamm-URI beginnen. In Microsoft Dynamics CRM 2015 und Microsoft Dynamics CRM Online 2015-Update ist die Servicestamm-URI in dem folgenden Beispiel.

[Your Organization Root URL]/XRMServices/2011/OrganizationData.svc

Hinweis

Die Organisationsstamm-URL muss den Organisationsnamen enthalten. Verweisen Sie auf Servicestamm, indem Sie die getClientUrl-Funktion im Kontextobjekt verwenden. Wenn eine Webressource in einem Formular gehostet wird, können Sie auf den Xrm.Page.context verweisen, um getClientUrl aufzurufen. Andernfalls müssen Sie einen Verweis auf die Seite ClientGlobalContext.js.aspx einschließen, sodass Sie GetGlobalContext-Funktion verwenden können, um das Kontextobjekt abzurufen.

Von der Servicestamm-URI identifizieren Sie spezielle Ressourcen mit einem Ressourcenpfad und verfeinern Ihre Anfrage weiter mit Systemabfrageoptionen.

In diesem Thema

Zugreifen auf Microsoft Dynamics CRM-Entitätsdaten

Beschränkungen der Zahl der zurückgegebenen Datensätze

Entitätseigenschaften

Komplexe Microsoft Dynamics CRM-Typen

  • EntityReference

  • OptionSetValue

  • Zahlung

  • BooleanManagedProperty

Verknüpfte Entitäten

Zugreifen auf Microsoft Dynamics CRM-Entitätsdaten

Jede Microsoft Dynamics 365-Entität wird in CSDL (Conceptual Schema Definition Language) als Sammlung mit einem <EntitySet>.Element repräsentiert. Der Name jeder Sammlung folgt der Namenskonvention von [Entitäts-Schemaname] + Set. Dieser Name wird in der URL verwendet, um auf eine Sammlung von Entitätsdatensätzen zuzugreifen. Eine Liste aller verfügbaren Sammlungen wird angezeigt, wenn Sie die Servicestamm-URI anzeigen. Zum Erstellen einer Abfrage fügen Sie dem Ressourcenpfad Ihre Kriterien hinzu.

In Ihrem Browser können Sie beispielsweise die ATOM-Kontoentitätsdatensätze ("Einträge") sehen, die den Pfad im folgenden Beispiel verwenden.

[Your Organization Root URL]/XRMServices/2011/OrganizationData.svc/AccountSet

Nachdem Sie die Liste von Kontendatensätzen angezeigt haben, sehen Sie im folgenden Beispiel, wie jeder davon einzeln mit der URL-Syntax referenziert werden kann.

[Your Organization Root URL]/XRMServices/2011/OrganizationData.svc/AccountSet(guid'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx')

Hinweis

Zum Anzeigen dieser Daten in Internet Explorer müssen Sie zunächst sicherstellen, dass Internet Explorer nicht aktiviert ist, um RSS-Feeds zu formatieren. In der Registerkarte Inhalt auf Internetoptionen. die Option Einstellungen in der Gruppe Feeds und Web Slices wählen. Klicken Sie dann, um die Option Feedleseansicht einschalten zu deaktivieren. Schließen Sie Internet Explorer, und öffnen Sie es erneut.

Beschränkungen der Zahl der zurückgegebenen Datensätze

Bei jedem Abruf von Daten werden nur die obersten 50 Datensätze in Ihrer Abfrage zurückgegeben. Wenn mehr als 50 Datensätze vorhanden sind, gibt es einen <link rel="next" href="<url to next set of records>" > Knoten in XML oder eine JSON**__next** Eigenscahft am Ende des Ergebnis-Sets. Sie können den URL-Wert in diesem Knoten Eigenschaft oder in verwenden, um mit der folgenden Gruppen von Datensätzen den Vorgang fortzusetzen. Die URL enthält einen Parameter $skiptoken, der Informationen zur Seitengrenze enthält.

Um weitere Datensätze abzurufen, müssen Sie eine Methode erstellen, die das Vorhandensein dieses Knotens oder dieser Eigenschaft erkennt und mit der angegebenen URL den nächsten Satz von Datensätzen abruft. Weitere Informationen finden Sie unter: Beispiel: Abrufen von mehreren Datensätzen unter Verwendung des OData-Endpunkts mit JavaScript.

Entitätseigenschaften

Jede CSDL-<EntitySet> verweist auf ein <EntityType>-Element, das die Eigenschaften und Beziehungen für eine Entität beschreibt. Innerhalb der <EntityType>-Elemente entsprechen die <Property>-ElementeMicrosoft Dynamics 365-Entitätsattributen. Jeder Eigenschaft ist ein Datentyp zugewiesen, der einem der primitiven Entity Data Model (EDM)-Datentypen oder einem <ComplexType>, der speziell für Microsoft Dynamics 365 definiert ist, entspricht. In der folgenden Liste sind die Datentypen aufgeführt.

OData-Typ

Microsoft Dynamics 365-Datentyp

Edm.Boolean

Boolean

Edm.DateTime

DateTime

Edm.Decimal

Decimal

Edm.Double

Double

Edm.Guid

UniqueIdentifier

Edm.Int32

Integer

Edm.Int64

BigInt

Edm.String

String
EntityName

Microsoft.Crm.Sdk.Data.Services.EntityReference

EntityReference
CustomerOwner

Microsoft.Crm.Sdk.Data.Services.OptionSetValue

OptionSetValue
State
Status

Microsoft.Crm.Sdk.Data.Services.Zahlung

Money

Microsoft.Crm.Sdk.Data.Services.BooleanManagedProperty

BooleanManagedProperty

Komplexe Microsoft Dynamics CRM-Typen

Bestimmte Datentypen, die von Microsoft Dynamics 365 verwendet werden, können die einfachen EDM-Datentypen nicht verwenden.

Hinweis

Um komplexe Microsoft Dynamics 365 Typwerte auf Null zu setzen., setzen Sie jede Eigenschafte des komplexen Typs auf Null. Weitere Informationen finden Sie unter Komplexe Typen auf Null festlegen.

EntityReference

Der Microsoft.Crm.Sdk.Data.Services.EntityReference-Typ stellt eine Suche dar. Er entspricht EntityReference. Die folgende Tabelle führt die Eigenschaften auf.

Name

Typ

Beschreibung

Id

GUID

Die eindeutige ID für den in der Suche assoziierten Datensatztyp.

LogicalName

String

Der Name der Entität.

Name

String

Der Wert des primären Attributs für den assoziierten Datensatztyp in der Suche.

Das folgende Beispiel ist ein ATOM XML-EntityReference:

<d:PrimaryContactId m:type="Microsoft.Crm.Sdk.Data.Services.EntityReference">
   <d:Id m:type="Edm.Guid">76713858-5e81-df11-afdb-00155dba380a</d:Id>
   <d:LogicalName>contact</d:LogicalName> 
   <d:Name>Cat Francis (sample)</d:Name> 
</d:PrimaryContactId>

Das folgende Beispiel ist ein JSON-EntityReference:

"PrimaryContactId" :{
    "__metadata": {"type": "Microsoft.Crm.Sdk.Data.Services.EntityReference" },
    "Id": "78713858-5e81-df11-afdb-00155dba380a",
    "LogicalName": "contact",
    "Name": "Cathan Cook (sample)"}

OptionSetValue

Der Typ Microsoft.Crm.Sdk.Data.Services.OptionSetValue repräsentiert ein Auswahllistenattribut. Er entspricht OptionSetValue. Die folgende Tabelle enthält seine Eigenschaften.

Name

Typ

Beschreibung

Value

Number

Der ausgewählte Wert des OptionSet-Attributs.

Das folgende Beispiel stellt ein ATOMXMLOptionSetValue-Element dar.

<d:PreferredContactMethodCode m:type="Microsoft.Crm.Sdk.Data.Services.OptionSetValue">
   <d:Value m:type="Edm.Int32">1</d:Value>
</d:PreferredContactMethodCode>

Das folgende Beispiel ist ein JSON-OptionSetValue:

"PreferredContactMethodCode" :{
    "__metadata": {"type": "Microsoft.Crm.Sdk.Data.Services.OptionSetValue" },
    "Value": 1}

Zahlung

Der Typ Microsoft.Crm.Sdk.Data.Services.Money repräsentiert ein Money-Attribut. Er entspricht Money. Die folgende Tabelle führt die Eigenschaften auf.

Name

Typ

Beschreibung

Value

Number

Der Geldbetrag.

Das folgende Beispiel stellt ein ATOMXMLMoney-Element dar.

<d:CreditLimit m:type="Microsoft.Crm.Sdk.Data.Services.Money">
  <d:Value m:type="Edm.Decimal">500.0000</d:Value> 
</d:CreditLimit>

Das folgende Beispiel ist ein JSON-Money:

"CreditLimit" :{
    "__metadata": {"type": "Microsoft.Crm.Sdk.Data.Services.Money" },
    "Value": 500.0000}

BooleanManagedProperty

Bestimmte organisationseigene Entitäten haben Datensätze, die in einer Lösung hinzugefügt werden können, z. B. WebResource. Beispiele für verwaltete Eigenschaften sind u. a. IsCustomizable, IsHidden und CanBeDeleted. Dies entspricht BooleanManagedProperty Diese Boolean-Eigenschaften steuern das Verhalten der verwalteten Lösungskomponenten. Weitere Informationen finden Sie unter Verwaltete Eigenschaften nutzen. Die folgende Tabelle führt die BooleanManagedProperty auf.

Name

Typ

Beschreibung

Value

Boolean

Gibt an, ob die verwaltete Eigenschaft aktiv ist.

CanBeChanged

Boolean

Gibt an, ob der Wert der verwalteten Eigenschaft geändert werden kann.

ManagedPropertyLogicalName

String

Gibt den Namen der verwalteten Eigenschaft an.

Diese Eigenschaft ist schreibgeschützt.

Das folgende Beispiel stellt ein ATOMXMLBooleanManagedProperty-Element dar.

<d:IsCustomizable m:type="Microsoft.Crm.Sdk.Data.Services.BooleanManagedProperty">
  <d:Value m:type="Edm.Boolean">true</d:Value>
   <d:CanBeChanged m:type="Edm.Boolean">true</d:CanBeChanged>
   <d:ManagedPropertyLogicalName>iscustomizableanddeletable</d:ManagedPropertyLogicalName>   
</d:IsCustomizable>

Das folgende Beispiel ist ein JSON-BooleanManagedProperty:

"IsCustomizable" :{
    "__metadata": { "type": "Microsoft.Crm.Sdk.Data.Services.BooleanManagedProperty" },
    "CanBeChanged": true,
    "ManagedPropertyLogicalName": "iscustomizableanddeletable",
    "Value": true}

Verknüpfte Entitäten

Das CSDL-Element <NavigationProperty> enthält alle 1:n- und n:n-Beziehungen für die Entität. Wenn die Beziehung selbstbezüglich ist, gibt es zwei <NavigationProperty>-Elemente für die Beziehung. Der Name der Beziehung verwendet das Präfix Referenced und Referencing zur Differenzierung der Rolle, die der jeweilige Datensatz in der Beziehung spielt. Weitere Informationen finden Sie unter Typen von Entitätsbeziehungen.

Verwenden Sie die <NavigationProperty>, wenn Sie eine Abfrage erstellen möchten, um verknüpfte Datensätze abzurufen. Im folgenden Beispiel gilt: Wenn Sie eine Liste von Geschäftschancen abrufen möchten, bei denen ein bestimmtes Konto der Kunde ist, verwenden Sie die Entitätsbeziehung opportunity_customer_accounts im Kontext eines bestimmten Kontos:

/AccountSet(guid'[GUID value]')/opportunity_customer_accounts

Wenn Sie nur die URL-Adressen zu verknüpften Datensätzen benötigen, können Sie die $links-Abfrageoption verwenden, die im folgenden Beispiel angezeigt wird.

/AccountSet(guid'[GUID value]')/$links/opportunity_customer_accounts

Dadurch werden nur die URLs zu den Daten für jeden verknüpften Datensatz zurückgegeben. Die Ergebnisse sehen beim Anzeigen in einem Browser wie das folgende Beispiel aus.

<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<links xmlns="https://schemas.microsoft.com/ado/2007/08/dataservices">
   <uri>[Your Organization Root URL]/xrmservices/2011/OrganizationData.svc/OpportunitySet(guid'a6713858-5e81-df11-afdb-00155dba380a')</uri>
   <uri>[Your Organization Root URL]/xrmservices/2011/OrganizationData.svc/OpportunitySet(guid'1224342F-D024-4B47-A3F5-FB22D236E655')</uri>
   <uri>[Your Organization Root URL]/xrmservices/2011/OrganizationData.svc/OpportunitySet(guid'7AF675A8-4FBE-42E7-8279-C32605D2B49B')</uri>
   <uri>[Your Organization Root URL]/xrmservices/2011/OrganizationData.svc/OpportunitySet(guid'2DD9BA88-2A37-4F53-8946-68ABBDC73FC1')</uri>
</links>

Wenn Sie Daten aus verknüpften Datensätzen einschließen möchten, wenn Sie einen Datensatz abrufen, verwenden Sie die Systemabfrageoption $expand.

Siehe auch

Verwenden des OData-Endpunkts mit Webressourcen
OData-Systemabfrageoptionen mithilfe des OData-Endpunkts
Ausführen grundlegender Datenvorgänge mithilfe des OData-Endpunkts
Ausführen zusätzlicher Datenvorgänge mithilfe des OData-Endpunkts
Verwenden des OData-Endpunkts mit Ajax- und JScript-Webressourcen
Beispiel: Erstellen, Abrufen, Aktualisieren und Löschen mithilfe des OData-Endpunkts mit jQuery
Beispiel: Erstellen, abrufen, aktualisieren und löschen mithilfe des OData-Endpunkts mit JavaScript
Beispiel: OData-Endpunkt jQuery-Kontakteditor
Open Data Protocol (OData)
Technischer Artikel: Verwenden von Optionssatz-Optionen mit dem REST-Endpunkt - Jscript

© 2017 Microsoft. Alle Rechte vorbehalten. Copyright