Interrogation des données Microsoft Dynamics CRM 2015 à l'aide du point de terminaison OData

 

Date de publication : novembre 2016

S’applique à : Dynamics CRM 2015

Pour rechercher et récupérer les données avec un point de terminaison OData, manipulez l’URI. Toutes les actions requièrent que vous commenciez avec l’URI racine de service. Dans Mise à jour de Microsoft Dynamics CRM 2015 et de Microsoft Dynamics CRM Online 2015, l’URI racine de service figure dans l’exemple suivant.

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

Notes

L’URL racine de l’organisation doit contenir le nom de l’organisation. Référencez la racine de service à l’aide de la fonction getClientUrl dans l’objet de contexte. Si une ressource Web est hébergée dans un formulaire, vous pouvez référencer le Xrm.Page.context pour appeler getClientUrl. Sinon, vous devez inclure une référence à la page ClientGlobalContext.js.aspx afin de pouvoir utiliser Fonction GetGlobalContext pour obtenir l’objet de contexte.

Avec l’URI racine de service, vous pouvez identifier des ressources avec un chemin d’accès aux ressources et affiner davantage votre requête à l’aide des options de requête système.

Contenu de la rubrique

Accès aux données d'entité Microsoft Dynamics CRM

Limitations sur le nombre d’enregistrements retournés

Propriétés d’entité

Types complexes Microsoft Dynamics CRM

  • EntityReference

  • OptionSetValue

  • Monétaire

  • BooleanManagedProperty

Entités associées

Accès aux données d'entité Microsoft Dynamics CRM

Chaque entité Microsoft Dynamics 365 est représentée dans le langage CSDL (Conceptual Schema Definition Language) sous forme de collection utilisant l’élément <EntitySet>. Le nom de chaque collection suit la convention d’affectation de noms de [Nom de schéma d’entité] + Set. Ce nom est utilisé dans l’URL pour accéder à une collection d’enregistrements d’entités. Une liste de toutes les collections disponibles est répertoriée lorsque vous affichez l’URI racine de service. Pour créer une requête, vous ajoutez vos critères au chemin d’accès aux ressources.

Par exemple, dans votre navigateur vous pouvez afficher les enregistrements d’entité de compte ATOM (appelés « entrées ») avec le chemin d’accès indiqué dans l’exemple suivant.

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

Lorsque vous consultez la liste des enregistrements de compte, vous pouvez voir comment chacun d’entre eux peut être référencé individuellement avec la syntaxe d’URL indiquée dans l’exemple suivant.

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

Notes

Pour afficher les données dans Internet Explorer, vous devez d’abord vérifier que Internet Explorer n’est pas configuré pour formater des flux RSS. Dans l'onglet Contenu des Options Internet, sélectionnez Paramètres dans le groupe Flux et composants Web Slice. Cliquez ensuite pour effacer l’option Activer le mode Lecture du flux. Fermez et rouvrez Internet Explorer.

Limitations sur le nombre d’enregistrements retournés

Chaque fois que vous récupérez des enregistrements, seuls les 50 premiers enregistrements de votre requête sont renvoyés. En présence de plus de 50 enregistrements, il y aura un nœud <link rel="next" href="<url to next set of records>" > dans XML ou une propriété JSON**__next** à la fin de l’ensemble de résultats. Vous pouvez utiliser la valeur URL dans ce nœud ou cette propriété pour poursuivre avec le prochain ensemble d’enregistrements. L’URL contient un paramètre $skiptoken qui fournit des informations sur la limite de pagination.

Pour récupérer des enregistrements supplémentaires, vous devez créer une méthode détectant l’existence de ce nœud ou de cette propriété et utiliser l’URL fournie pour récupérer l’ensemble d’enregistrements suivant. Pour plus d’informations, voir : Exemple : extraire plusieurs enregistrements à l’aide du point de terminaison OData avec JavaScript

Propriétés d’entité

Chaque langage Conceptual Schema Definition Language (CSDL) <EntitySet> fait référence à un élément <EntityType> qui décrit les propriétés et les relations d’une entité. Dans les éléments <EntityType>, les éléments <Property> correspondent aux attributs d’entités Microsoft Dynamics 365. Chaque propriété est affectée à un type de données qui correspond à l’un des types de données Modèle de données d'entité Primitifs ou à un <ComplexType> défini spécifiquement pour Microsoft Dynamics 365. Le tableau suivant répertorie les types de données.

Type OData

Type de données Microsoft Dynamics 365

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.Monétaire

Money

Microsoft.Crm.Sdk.Data.Services.BooleanManagedProperty

BooleanManagedProperty

Types complexes Microsoft Dynamics CRM

Certains types de données utilisés par Microsoft Dynamics 365 ne peuvent pas utiliser les types de données EDM simples.

Notes

Pour définir des valeurs de type complexe Microsoft Dynamics 365 sur null, définissez chaque propriété du type complexe sur null. Pour plus d'informations, voir Définition des types complexes sur null.

EntityReference

Le type Microsoft.Crm.Sdk.Data.Services.EntityReference représente une recherche. Il correspond à EntityReference. Le tableau suivant répertorie les propriétés.

Nom

Type

Description

Id

GUID

ID unique de l’enregistrement associé dans la recherche.

LogicalName

String

Nom de l'entité.

Name

String

Valeur de l’attribut principal de l’enregistrement associé dans la recherche.

L’exemple suivant est un élément EntityReference XML ATOM :

<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>

L’exemple suivant est un élément EntityReference JSON :

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

OptionSetValue

Le type Microsoft.Crm.Sdk.Data.Services.OptionSetValue représente un attribut de liste de choix. Il correspond à OptionSetValue. Le tableau suivant répertorie les propriétés.

Nom

Type

Description

Value

Number

Valeur sélectionnée de l’attribut OptionSet.

L’exemple suivant est un élément ATOMXMLOptionSetValue.

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

L’exemple suivant est un élément OptionSetValue JSON :

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

Monétaire

Le type Microsoft.Crm.Sdk.Data.Services.Money représente un attribut de devise. Il correspond à Money Le tableau suivant répertorie les propriétés.

Nom

Type

Description

Value

Number

Montant.

L’exemple suivant est un élément ATOMXMLMoney.

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

L’exemple suivant est un élément Money JSON :

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

BooleanManagedProperty

Certaines entités appartenant à l’organisation ont des enregistrements qui peuvent être inclus dans une solution, par exemple WebResource. Exemples de propriétés gérées : IsCustomizable, IsHidden et CanBeDeleted. Elles correspondent à BooleanManagedProperty Ces propriétés Boolean contrôlent le comportement des composants de solution gérée. Pour plus d'informations, voir Utiliser les propriétés gérées. Le tableau suivant répertorie la classe BooleanManagedProperty.

Nom

Type

Description

Value

Boolean

Indique si la propriété gérée a pris effet.

CanBeChanged

Boolean

Indique si la valeur de la propriété gérée peut être modifiée.

ManagedPropertyLogicalName

String

Spécifie le nom de la propriété gérée.

Cette propriété est en lecture seule.

L’exemple suivant est un élément ATOMXMLBooleanManagedProperty.

<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>

L’exemple suivant est un élément BooleanManagedProperty JSON :

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

Entités associées

L’élément <NavigationProperty> CDSL (Conceptual Schema Definition Language) comprend toutes les relations 1 à N et N à N de l’entité. Si la relation est une relation auto-référentielle, il existera deux éléments <NavigationProperty> pour cette relation. Le nom de la relation utilise le préfixe Referenced et Referencing pour différencier le rôle qu’un enregistrement spécifique joue dans la relation. Pour plus d'informations, voir Types de relations d’entité.

Utilisez <NavigationProperty> pour créer une requête en vue d’extraire des enregistrements associés. Dans l’exemple suivant, si vous souhaitez récupérer une liste d’opportunités où un compte spécifique est le client, utilisez les relations d’entité opportunity_customer_accounts dans le contexte d’un compte spécifique :

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

Si vous avez uniquement besoin des adresses URL des enregistrements associés, vous pouvez utiliser l'option de requête $links indiquée dans l'exemple suivant

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

Seules les URL des données associées à chaque enregistrement associé seront retournées. Les résultats affichés dans le navigateur ressembleront à l’exemple ci-dessous.

<?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>

Pour inclure les données issues des enregistrements associés lorsque vous récupérez un enregistrement, utilisez l’option de requête système $expand.

Voir aussi

Utiliser le point de terminaison OData avec les ressources Web
Options de requête système OData à l’aide du point de terminaison OData
Exécuter des opérations de données de base utilisant le point de terminaison OData
Exécuter des opérations de données supplémentaires en utilisant le point de terminaison OData
Utiliser le point de terminaison OData avec les ressources Web Ajax et JScript
Exemple : créer, extraire, mettre à jour et supprimer le point de terminaison OData avec JavaScript et jQuery
Exemple : créer, extraire, mettre à jour et supprimer le point de terminaison OData avec JavaScript
Exemple : Éditeur de contact jQuery du point de terminaison OData
Open Data Protocol (OData)
Article technique : Utilisation des options de groupe d’options avec le point de terminaison REST - JScript

© 2017 Microsoft. Tous droits réservés. Copyright