Créer et mettre à jour les définitions d'entité à l’aide de l'API Web

 

Date de publication : janvier 2017

S’applique à : Dynamics 365 (online), Dynamics 365 (on-premises), Dynamics CRM 2016, Dynamics CRM Online

Vous pouvez effectuer les mêmes opérations sur les entités modèles que celles réalisées avec le service d'organisation. Cette rubrique se concentre sur l'utilisation des entités de métadonnées à l'aide de l'API Web. Pour trouver des informations sur les propriétés des métadonnées de l'entité, consultez les rubriques Personnaliser les métadonnées d’entité et EntityMetadata EntityType.

Contenu de la rubrique

Créer des entités

Mettre à jour des entités

Création d'attributs

Créer des entités

Pour créer une entité, POST la représentation des données d'entité JSON vers le chemin d'accès de l'ensemble de l'entité EntityDefinitions. L'entité doit comprendre la définition de l'attribut de nom principal de l'entité. Vous n'avez pas besoin de définir les valeurs pour toutes les propriétés. Les éléments de cette liste à l'exception de Description sont obligatoires, bien que la définition d'une description soit recommandée. Les valeurs de propriété que vous ne spécifiez pas seront définies par les valeurs par défaut. Pour bien comprendre les valeurs par défaut, regardez l'exemple dans la section Mettre à jour des entités. L'exemple de cette rubrique utilise les propriétés d'entité suivantes.

Propriétés de l’entité

Valeur

SchemaName

new_BankAccount

Notes

Vous devez inclure le préfixe de personnalisation qui correspond à l'éditeur de solutions. Ici la valeur par défaut utilisée est » nouveau_ » mais vous devez choisir le préfixe qui fonctionne pour votre solution.

DisplayName

Compte bancaire

DisplayCollectionName

Comptes bancaires

Description

Une entité pour stocker des informations sur les comptes bancaires des clients.

OwnershipType

UserOwned

Notes

Pour les valeurs que vous pouvez définir ici, voir OwnershipTypes EnumType.

IsActivity

false

HasActivities

false

HasNotes

false

Outre les propriétés répertoriées précédemment, la propriété EntityMetadataAttributes doit contenir un tableau qui inclut un StringAttributeMetadata EntityType pour représenter l'attribut du nom principal pour l'entité. La propriété d'attribut IsPrimaryName doit être true. Le tableau suivant décrit les propriétés définies dans l'exemple.

Propriété de l'attribut principal

Valeur

SchemaName

new_AccountName

RequiredLevel

None

Notes

Pour les valeurs que vous pouvez définir ici, voir AttributeRequiredLevelManagedProperty ComplexType et AttributeRequiredLevel EnumType.

MaxLength

100

FormatName

Text

Notes

L'attribut de nom principal doit utiliser le format Text. Pour les options de format disponibles pour d'autres attributs de chaîne, voir Formats StringAttributeMetadata.

DisplayName

Nom du compte

Description

Tapez le nom du compte bancaire.

IsPrimaryName

true

Notes

Lorsque vous créez ou mettez à jour les étiquettes à l'aide de Label ComplexType, vous devez uniquement définir la propriété LocalizedLabels. La valeur UserLocalizedLabel retournée est basée sur les préférences de langue de l'utilisateur et est en lecture seule.

L'exemple suivant explique la création d'une entité personnalisée dont les propriétés sont définies. La langue est l'anglais au moyen de l'ID de paramètres régionaux (LCID) 1033.Les valeurs d'ID de paramètres régionaux valides sont disponibles sur la page Tableau des ID de paramètres régionaux (LCID).

  • Demande

    POST cc_WebAPI_ServiceURI/EntityDefinitions HTTP/1.1
    Accept: application/json
    Content-Type: application/json; charset=utf-8
    OData-MaxVersion: 4.0
    OData-Version: 4.0
    
    {
      "@odata.type": "Microsoft.Dynamics.CRM.EntityMetadata",
     "Attributes": [
      {
       "AttributeType": "String",
       "AttributeTypeName": {
        "Value": "StringType"
       },
       "Description": {
         "@odata.type": "Microsoft.Dynamics.CRM.Label",
        "LocalizedLabels": [
         {
           "@odata.type": "Microsoft.Dynamics.CRM.LocalizedLabel",
          "Label": "Type the name of the bank account",
          "LanguageCode": 1033
         }
        ]
       },
       "DisplayName": {
         "@odata.type": "Microsoft.Dynamics.CRM.Label",
        "LocalizedLabels": [
         {
           "@odata.type": "Microsoft.Dynamics.CRM.LocalizedLabel",
          "Label": "Account Name",
          "LanguageCode": 1033
         }
        ]
       },
       "IsPrimaryName": true,
       "RequiredLevel": {
        "Value": "None",
        "CanBeChanged": true,
        "ManagedPropertyLogicalName": "canmodifyrequirementlevelsettings"
       },
       "SchemaName": "new_AccountName",
        "@odata.type": "Microsoft.Dynamics.CRM.StringAttributeMetadata",
       "FormatName": {
        "Value": "Text"
       },
       "MaxLength": 100
      }
     ],
     "Description": {
       "@odata.type": "Microsoft.Dynamics.CRM.Label",
      "LocalizedLabels": [
       {
         "@odata.type": "Microsoft.Dynamics.CRM.LocalizedLabel",
        "Label": "An entity to store information about customer bank accounts",
        "LanguageCode": 1033
       }
      ]
     },
     "DisplayCollectionName": {
       "@odata.type": "Microsoft.Dynamics.CRM.Label",
      "LocalizedLabels": [
       {
         "@odata.type": "Microsoft.Dynamics.CRM.LocalizedLabel",
        "Label": "Bank Accounts",
        "LanguageCode": 1033
       }
      ]
     },
     "DisplayName": {
       "@odata.type": "Microsoft.Dynamics.CRM.Label",
      "LocalizedLabels": [
       {
         "@odata.type": "Microsoft.Dynamics.CRM.LocalizedLabel",
        "Label": "Bank Account",
        "LanguageCode": 1033
       }
      ]
     },
     "HasActivities": false,
     "HasNotes": false,
     "IsActivity": false,
     "OwnershipType": "UserOwned",
     "SchemaName": "new_BankAccount"
    }
    
  • Réponse

    HTTP/1.1 204 No Content
    OData-Version: 4.0
    OData-EntityId: cc_WebAPI_ServiceURI/EntityDefinitions(417129e1-207c-e511-80d2-00155d2a68d2)
    

Mettre à jour des entités

Important

Vous ne pouvez pas utiliser la méthode HTTP PATCH pour mettre à jour les entités modèles. Les entités de métadonnées ont la parité avec le service d'organisation UpdateEntityRequest qui remplace la définition de l'entité par celle incluse. Par conséquent, vous devez utiliser la méthode HTTP PUT lors de la mise à jour des modèles des entités et veillez à inclure toutes les propriétés existantes que vous n'avez pas l'intention de modifier. Vous ne pouvez pas mettre à jour des propriétés individuelles.

Lorsque vous mettez à jour les entités des métadonnées avec des étiquettes, vous devez inclure un en-tête personnalisé MSCRM.MergeLabels pour contrôler la manière dont les étiquettes dans la mise à jour doivent être traitées. Si une étiquette pour un élément possède des étiquettes pour d'autres langues et que vous la mettez à jour avec une étiquette contenant uniquement une étiquette pour une langue spécifique, l'en-tête MSCRM.MergeLabels contrôle s'il doit remplacer les étiquettes existantes ou fusionner votre nouvelle étiquette avec les étiquettes de langue existantes. Lorsque MSCRM.MergeLabels est défini sur true, toutes les nouvelles étiquettes définies remplaceront uniquement les étiquettes existantes lorsque le code de langue correspond. Si vous souhaitez remplacer les étiquettes existantes pour inclure uniquement les étiquettes que vous ajoutez, définissez MSCRM.MergeLabels sur false.

Important

Si vous n'incluez pas un en-tête MSCRM.MergeLabels, le comportement par défaut fait comme si la valeur était false et les étiquettes localisées non incluses dans votre mise à jour seront perdues.

Lorsque vous mettez à jour une entité ou un attribut vous devez utiliser PublishXml Action ou PublishAllXml Action avant que les modifications apportées soient appliquées à l'application.Pour plus d'informations :Publier les personnalisations

En général, vous devez récupérer la définition de l'attribut JSON et changer les propriétés avant de la renvoyer. L'exemple suivant contient toutes les propriétés des métadonnées de l'entité créée dans l'exemple Créer des entités, mais avec DisplayName modifié en « Bank Business Name. » Il peut être utile de noter que le JSON fournit ici les valeurs par défaut des propriétés non définies dans l'exemple Créer des entités.

  • Demande

    PUT cc_WebAPI_ServiceURI/EntityDefinitions(417129e1-207c-e511-80d2-00155d2a68d2) HTTP/1.1
    Accept: application/json
    Content-Type: application/json; charset=utf-8
    OData-MaxVersion: 4.0
    OData-Version: 4.0
    MSCRM.MergeLabels: true
    
    {
     "@odata.context": "cc_WebAPI_ServiceURI/$metadata#EntityDefinitions/$entity",
     "ActivityTypeMask": 0,
     "AutoRouteToOwnerQueue": false,
     "CanTriggerWorkflow": true,
     "Description": {
      "LocalizedLabels": [
       {
        "Label": "An entity to store information about customer bank accounts",
        "LanguageCode": 1033,
        "IsManaged": false,
        "MetadataId": "edc3abd7-c5ae-4822-a3ed-51734fdd0469",
        "HasChanged": null
       }
      ]
     },
     "DisplayCollectionName": {
      "LocalizedLabels": [
       {
        "Label": "Bank Accounts",
        "LanguageCode": 1033,
        "IsManaged": false,
        "MetadataId": "7c758e0c-e9cf-4947-93b0-50ec30b20f60",
        "HasChanged": null
       }
      ]
     },
     "DisplayName": {
      "@odata.type": "Microsoft.Dynamics.CRM.Label",
      "LocalizedLabels": [
       {
        "@odata.type": "Microsoft.Dynamics.CRM.LocalizedLabel",
        "Label": "Bank Business Name",
        "LanguageCode": 1033
       }
      ]
     },
     "EntityHelpUrlEnabled": false,
     "EntityHelpUrl": null,
     "IsDocumentManagementEnabled": false,
     "IsOneNoteIntegrationEnabled": false,
     "IsInteractionCentricEnabled": false,
     "IsKnowledgeManagementEnabled": false,
     "AutoCreateAccessTeams": false,
     "IsActivity": false,
     "IsActivityParty": false,
     "IsAuditEnabled": {
      "Value": false,
      "CanBeChanged": true,
      "ManagedPropertyLogicalName": "canmodifyauditsettings"
     },
     "IsAvailableOffline": false,
     "IsChildEntity": false,
     "IsAIRUpdated": false,
     "IsValidForQueue": {
      "Value": false,
      "CanBeChanged": true,
      "ManagedPropertyLogicalName": "canmodifyqueuesettings"
     },
     "IsConnectionsEnabled": {
      "Value": false,
      "CanBeChanged": true,
      "ManagedPropertyLogicalName": "canmodifyconnectionsettings"
     },
     "IconLargeName": null,
     "IconMediumName": null,
     "IconSmallName": null,
     "IsCustomEntity": true,
     "IsBusinessProcessEnabled": false,
     "IsCustomizable": {
      "Value": true,
      "CanBeChanged": true,
      "ManagedPropertyLogicalName": "iscustomizable"
     },
     "IsRenameable": {
      "Value": true,
      "CanBeChanged": true,
      "ManagedPropertyLogicalName": "isrenameable"
     },
     "IsMappable": {
      "Value": true,
      "CanBeChanged": false,
      "ManagedPropertyLogicalName": "ismappable"
     },
     "IsDuplicateDetectionEnabled": {
      "Value": false,
      "CanBeChanged": true,
      "ManagedPropertyLogicalName": "canmodifyduplicatedetectionsettings"
     },
     "CanCreateAttributes": {
      "Value": true,
      "CanBeChanged": false,
      "ManagedPropertyLogicalName": "cancreateattributes"
     },
     "CanCreateForms": {
      "Value": true,
      "CanBeChanged": true,
      "ManagedPropertyLogicalName": "cancreateforms"
     },
     "CanCreateViews": {
      "Value": true,
      "CanBeChanged": true,
      "ManagedPropertyLogicalName": "cancreateviews"
     },
     "CanCreateCharts": {
      "Value": true,
      "CanBeChanged": true,
      "ManagedPropertyLogicalName": "cancreatecharts"
     },
     "CanBeRelatedEntityInRelationship": {
      "Value": true,
      "CanBeChanged": true,
      "ManagedPropertyLogicalName": "canberelatedentityinrelationship"
     },
     "CanBePrimaryEntityInRelationship": {
      "Value": true,
      "CanBeChanged": true,
      "ManagedPropertyLogicalName": "canbeprimaryentityinrelationship"
     },
     "CanBeInManyToMany": {
      "Value": true,
      "CanBeChanged": true,
      "ManagedPropertyLogicalName": "canbeinmanytomany"
     },
     "CanEnableSyncToExternalSearchIndex": {
      "Value": true,
      "CanBeChanged": true,
      "ManagedPropertyLogicalName": "canenablesynctoexternalsearchindex"
     },
     "SyncToExternalSearchIndex": false,
     "CanModifyAdditionalSettings": {
      "Value": true,
      "CanBeChanged": true,
      "ManagedPropertyLogicalName": "canmodifyadditionalsettings"
     },
     "CanChangeHierarchicalRelationship": {
      "Value": true,
      "CanBeChanged": true,
      "ManagedPropertyLogicalName": "canchangehierarchicalrelationship"
     },
     "IsOptimisticConcurrencyEnabled": true,
     "ChangeTrackingEnabled": false,
     "IsImportable": true,
     "IsIntersect": false,
     "IsMailMergeEnabled": {
      "Value": true,
      "CanBeChanged": true,
      "ManagedPropertyLogicalName": "canmodifymailmergesettings"
     },
     "IsManaged": false,
     "IsEnabledForCharts": true,
     "IsEnabledForTrace": false,
     "IsValidForAdvancedFind": true,
     "IsVisibleInMobile": {
      "Value": false,
      "CanBeChanged": true,
      "ManagedPropertyLogicalName": "canmodifymobilevisibility"
     },
     "IsVisibleInMobileClient": {
      "Value": false,
      "CanBeChanged": true,
      "ManagedPropertyLogicalName": "canmodifymobileclientvisibility"
     },
     "IsReadOnlyInMobileClient": {
      "Value": false,
      "CanBeChanged": true,
      "ManagedPropertyLogicalName": "canmodifymobileclientreadonly"
     },
     "IsOfflineInMobileClient": {
      "Value": false,
      "CanBeChanged": true,
      "ManagedPropertyLogicalName": "canmodifymobileclientoffline"
     },
     "DaysSinceRecordLastModified": 0,
     "IsReadingPaneEnabled": true,
     "IsQuickCreateEnabled": false,
     "LogicalName": "new_bankaccount",
     "ObjectTypeCode": 10009,
     "OwnershipType": "UserOwned",
     "PrimaryNameAttribute": "new_accountname",
     "PrimaryImageAttribute": null,
     "PrimaryIdAttribute": "new_bankaccountid",
     "Privileges": [
      {
       "CanBeBasic": true,
       "CanBeDeep": true,
       "CanBeGlobal": true,
       "CanBeLocal": true,
       "CanBeEntityReference": false,
       "CanBeParentEntityReference": false,
       "Name": "prvCreatenew_BankAccount",
       "PrivilegeId": "d1a8de4b-27df-42e1-bc5c-b863e002b37f",
       "PrivilegeType": "Create"
      },
      {
       "CanBeBasic": true,
       "CanBeDeep": true,
       "CanBeGlobal": true,
       "CanBeLocal": true,
       "CanBeEntityReference": false,
       "CanBeParentEntityReference": false,
       "Name": "prvReadnew_BankAccount",
       "PrivilegeId": "726043b1-de2c-487e-9d6d-5629fca2bf22",
       "PrivilegeType": "Read"
      },
      {
       "CanBeBasic": true,
       "CanBeDeep": true,
       "CanBeGlobal": true,
       "CanBeLocal": true,
       "CanBeEntityReference": false,
       "CanBeParentEntityReference": false,
       "Name": "prvWritenew_BankAccount",
       "PrivilegeId": "fa50c539-b6c7-4eaf-bd49-fd8224bc51b6",
       "PrivilegeType": "Write"
      },
      {
       "CanBeBasic": true,
       "CanBeDeep": true,
       "CanBeGlobal": true,
       "CanBeLocal": true,
       "CanBeEntityReference": false,
       "CanBeParentEntityReference": false,
       "Name": "prvDeletenew_BankAccount",
       "PrivilegeId": "17c1fd6e-f856-45e7-b563-796f53108b85",
       "PrivilegeType": "Delete"
      },
      {
       "CanBeBasic": true,
       "CanBeDeep": true,
       "CanBeGlobal": true,
       "CanBeLocal": true,
       "CanBeEntityReference": false,
       "CanBeParentEntityReference": false,
       "Name": "prvAssignnew_BankAccount",
       "PrivilegeId": "133ca81d-668e-4c19-a71e-10c6dfe099cd",
       "PrivilegeType": "Assign"
      },
      {
       "CanBeBasic": true,
       "CanBeDeep": true,
       "CanBeGlobal": true,
       "CanBeLocal": true,
       "CanBeEntityReference": false,
       "CanBeParentEntityReference": false,
       "Name": "prvSharenew_BankAccount",
       "PrivilegeId": "15f27df4-9c67-47c9-b1f1-274e1c44f24a",
       "PrivilegeType": "Share"
      },
      {
       "CanBeBasic": true,
       "CanBeDeep": true,
       "CanBeGlobal": true,
       "CanBeLocal": true,
       "CanBeEntityReference": false,
       "CanBeParentEntityReference": false,
       "Name": "prvAppendnew_BankAccount",
       "PrivilegeId": "ac8b1920-8f93-4e9d-94e3-c680e2a2f228",
       "PrivilegeType": "Append"
      },
      {
       "CanBeBasic": true,
       "CanBeDeep": true,
       "CanBeGlobal": true,
       "CanBeLocal": true,
       "CanBeEntityReference": false,
       "CanBeParentEntityReference": false,
       "Name": "prvAppendTonew_BankAccount",
       "PrivilegeId": "f63a5f46-3bc7-4eac-81d0-7f77f566ef46",
       "PrivilegeType": "AppendTo"
      }
     ],
     "RecurrenceBaseEntityLogicalName": null,
     "ReportViewName": "Filterednew_BankAccount",
     "SchemaName": "new_BankAccount",
     "IntroducedVersion": "1.0",
     "IsStateModelAware": true,
     "EnforceStateTransitions": false,
     "EntityColor": null,
     "LogicalCollectionName": "new_bankaccounts",
     "CollectionSchemaName": "new_BankAccounts",
     "EntitySetName": "new_bankaccounts",
     "IsEnabledForExternalChannels": false,
     "IsPrivate": false,
     "MetadataId": "417129e1-207c-e511-80d2-00155d2a68d2",
     "HasChanged": null
    }
    
  • Réponse

    HTTP/1.1 204 No Content
    OData-Version: 4.0
    

Création d'attributs

Vous pouvez créer des attributs en même temps que vous créez l'entité en incluant notamment la définition des attributs JSON dans le tableau Attributes pour l'entité que vous publiez en plus de l'attribut de chaîne qui sert d'attribut de nom principal. Pour ajouter des attributs à une entité déjà créée, vous pouvez envoyer une demande POST incluant leur définition JSON à la propriété de navigation avec une valeur de collection Attributes de l'entité.

Créer un attribut de chaîne

L'exemple suivant utilisera ces propriétés pour créer un attribut de chaîne.

Propriétés de l'attribut de chaîne

Valeurs

SchemaName

new_BankName

DisplayName

Nom de la banque

Description

Tapez le nom de la banque.

RequiredLevel

None

MaxLength

100

FormatName

Text

L'exemple suivant crée un attribut de chaîne en utilisant les propriétés et l'ajoute à l'entité ayant la valeur MetadataId de 402fa40f-287c-e511-80d2-00155d2a68d2. L'URI pour l'attribut est renvoyée dans la réponse.

  • Demande

    POST cc_WebAPI_ServiceURI/EntityDefinitions(402fa40f-287c-e511-80d2-00155d2a68d2)/Attributes HTTP/1.1
    Accept: application/json
    Content-Type: application/json; charset=utf-8
    OData-MaxVersion: 4.0
    OData-Version: 4.0
    
    {
     "AttributeType": "String",
     "AttributeTypeName": {
      "Value": "StringType"
     },
     "Description": {
      "@odata.type": "Microsoft.Dynamics.CRM.Label",
      "LocalizedLabels": [
       {
        "@odata.type": "Microsoft.Dynamics.CRM.LocalizedLabel",
        "Label": "Type the name of the bank",
        "LanguageCode": 1033
       }
      ]
     },
     "DisplayName": {
      "@odata.type": "Microsoft.Dynamics.CRM.Label",
      "LocalizedLabels": [
       {
        "@odata.type": "Microsoft.Dynamics.CRM.LocalizedLabel",
        "Label": "Bank Name",
        "LanguageCode": 1033
       }
      ]
     },
     "RequiredLevel": {
      "Value": "None",
      "CanBeChanged": true,
      "ManagedPropertyLogicalName": "canmodifyrequirementlevelsettings"
     },
     "SchemaName": "new_BankName",
     "@odata.type": "Microsoft.Dynamics.CRM.StringAttributeMetadata",
     "FormatName": {
      "Value": "Text"
     },
     "MaxLength": 100
    }
    
  • Réponse

    HTTP/1.1 204 No Content
    OData-Version: 4.0
    OData-EntityId: cc_WebAPI_ServiceURI/EntityDefinitions(402fa40f-287c-e511-80d2-00155d2a68d2)/Attributes(f01bef16-287c-e511-80d2-00155d2a68d2)
    

Créer un attribut de devise

L'exemple suivant utilisera ces propriétés pour créer un attribut de devise.

Propriétés de l'attribut de devise

Valeurs

SchemaName

new_Balance

DisplayName

Solde

Description

Entrez le montant du solde.

RequiredLevel

None

PrecisionSource

2

Notes

Pour plus d'informations sur les valeurs valides pour PrecisionSource, voir Attributs de données de quantité. La valeur 2 indique que le niveau de précision décimale correspondra à TransactionCurrency.CurrencyPrecision qui est associé à l'enregistrement actif.

L'exemple suivant crée un attribut de devise en utilisant les propriétés et l'ajoute à l'entité avec la valeur MetadataId de 402fa40f-287c-e511-80d2-00155d2a68d2. L'URI pour l'attribut est renvoyée dans la réponse.

  • Demande

    POST cc_WebAPI_ServiceURI/EntityDefinitions(402fa40f-287c-e511-80d2-00155d2a68d2)/Attributes HTTP/1.1
    Accept: application/json
    Content-Type: application/json; charset=utf-8
    OData-MaxVersion: 4.0
    OData-Version: 4.0
    
    {
     "AttributeType": "Money",
     "AttributeTypeName": {
      "Value": "MoneyType"
     },
     "Description": {
      "@odata.type": "Microsoft.Dynamics.CRM.Label",
      "LocalizedLabels": [
       {
        "@odata.type": "Microsoft.Dynamics.CRM.LocalizedLabel",
        "Label": "Enter the balance amount",
        "LanguageCode": 1033
       }
      ]
     },
     "DisplayName": {
      "@odata.type": "Microsoft.Dynamics.CRM.Label",
      "LocalizedLabels": [
       {
        "@odata.type": "Microsoft.Dynamics.CRM.LocalizedLabel",
        "Label": "Balance",
        "LanguageCode": 1033
       }
      ]
     },
     "RequiredLevel": {
      "Value": "None",
      "CanBeChanged": true,
      "ManagedPropertyLogicalName": "canmodifyrequirementlevelsettings"
     },
     "SchemaName": "new_Balance",
     "@odata.type": "Microsoft.Dynamics.CRM.MoneyAttributeMetadata",
     "PrecisionSource": 2
    }
    
  • Réponse

    HTTP/1.1 204 No Content
    OData-Version: 4.0
    OData-EntityId: cc_WebAPI_ServiceURI/EntityDefinitions(402fa40f-287c-e511-80d2-00155d2a68d2)/Attributes(f11bef16-287c-e511-80d2-00155d2a68d2)
    

Créer un attribut de type date et heure

L'exemple suivant utilisera ces propriétés pour créer un attribut de type date et heure.

Propriétés de l'attribut date et heure

Valeurs

SchemaName

new_Checkeddate

DisplayName

Date

Description

La date où le solde de compte a été confirmé pour la dernière fois.

RequiredLevel

Aucune

Format

DateOnly

Notes

Concernant les options valides pour cette propriété, voir DateTimeFormat EnumType.

L'exemple suivant crée un attribut de type date et heure en utilisant les propriétés et l'ajoute à l'entité ayant la valeur MetadataId de 402fa40f-287c-e511-80d2-00155d2a68d2. L'URI pour l'attribut est renvoyée dans la réponse.

  • Requête

    POST cc_WebAPI_ServiceURI/EntityDefinitions(402fa40f-287c-e511-80d2-00155d2a68d2)/Attributes HTTP/1.1
    Accept: application/json
    Content-Type: application/json; charset=utf-8
    OData-MaxVersion: 4.0
    OData-Version: 4.0
    
    {
     "AttributeType": "DateTime",
     "AttributeTypeName": {
      "Value": "DateTimeType"
     },
     "Description": {
      "@odata.type": "Microsoft.Dynamics.CRM.Label",
      "LocalizedLabels": [
       {
        "@odata.type": "Microsoft.Dynamics.CRM.LocalizedLabel",
        "Label": "The date the account balance was last confirmed",
        "LanguageCode": 1033
       }
      ]
     },
     "DisplayName": {
      "@odata.type": "Microsoft.Dynamics.CRM.Label",
      "LocalizedLabels": [
       {
        "@odata.type": "Microsoft.Dynamics.CRM.LocalizedLabel",
        "Label": "Date",
        "LanguageCode": 1033
       }
      ]
     },
     "RequiredLevel": {
      "Value": "None",
      "CanBeChanged": true,
      "ManagedPropertyLogicalName": "canmodifyrequirementlevelsettings"
     },
     "SchemaName": "new_Checkeddate",
     "@odata.type": "Microsoft.Dynamics.CRM.DateTimeAttributeMetadata",
     "Format": "DateOnly"
    }
    
  • Réponse

    HTTP/1.1 204 No Content
    OData-Version: 4.0
    OData-EntityId: cc_WebAPI_ServiceURI/EntityDefinitions(402fa40f-287c-e511-80d2-00155d2a68d2)/Attributes(fe1bef16-287c-e511-80d2-00155d2a68d2)
    

Créer un attribut de recherche client

À la différence d'autres attributs, un attribut de recherche client est créé à l'aide de l'action CreateCustomerRelationships. Les paramètres associés à cette action nécessitent la définition de l'attribut de recherche et une paire de relations un-à-plusieurs. Un attribut de recherche client a deux relations un-à-plusieurs : une à l'entité Compte et l'autre à l'entité Contact.

L'exemple suivant utilisera ces propriétés pour créer un attribut de recherche client.

Propriétés de l'attribut de recherche client

Valeurs

SchemaName

new_CustomerId

DisplayName

Client

Description

Exemple d'attribut de recherche client

L'exemple crée un attribut de recherche client, new_CustomerId, et l'ajoute à l'entité personnalisée : new_bankaccount. La réponse est un type complexe CreateCustomerRelationshipsResponse.

  • Request

    POST 
          [URI de l'organisation]/api/data/v8.2/CreateCustomerRelationships HTTP/1.1
    OData-MaxVersion: 4.0
    OData-Version: 4.0
    Accept: application/json
    Content-Type: application/json; charset=utf-8
    
    {
        "OneToManyRelationships": [{
            "SchemaName": "new_bankaccount_customer_account",
            "ReferencedEntity": "account",
            "ReferencingEntity": "new_bankaccount"
        }, {
            "SchemaName": "new_bankaccount_customer_contact",
            "ReferencedEntity": "contact",
            "ReferencingEntity": "new_bankaccount"
        }],
        "Lookup": {
            "AttributeType": "Lookup",
            "AttributeTypeName": {
                "Value": "LookupType"
            },
            "Description": {
                "@odata.type": "Microsoft.Dynamics.CRM.Label",
                "LocalizedLabels": [{
                    "@odata.type": "Microsoft.Dynamics.CRM.LocalizedLabel",
                    "Label": "Sample Customer Lookup Attribute",
                    "LanguageCode": 1033
                }],
                "UserLocalizedLabel": {
                    "@odata.type": "Microsoft.Dynamics.CRM.LocalizedLabel",
                    "Label": "Sample Customer Lookup Attribute",
                    "LanguageCode": 1033
                }
            },
            "DisplayName": {
                "@odata.type": "Microsoft.Dynamics.CRM.Label",
                "LocalizedLabels": [{
                    "@odata.type": "Microsoft.Dynamics.CRM.LocalizedLabel",
                    "Label": "Customer",
                    "LanguageCode": 1033
                }],
                "UserLocalizedLabel": {
                    "@odata.type": "Microsoft.Dynamics.CRM.LocalizedLabel",
                    "Label": "Customer",
                    "LanguageCode": 1033
                }
            },
            "SchemaName": "new_CustomerId",
            "@odata.type": "Microsoft.Dynamics.CRM.ComplexLookupAttributeMetadata"
        }
    }
    
  • Response

    HTTP/1.1 200 OK
    Content-Type: application/json; odata.metadata=minimal
    OData-Version: 4.0
    
    {
        "@odata.context": "
          [URI de l'organisation]/api/data/v8.2/$metadata#Microsoft.Dynamics.CRM.CreateCustomerRelationshipsResponse",
        "RelationshipIds": [
            "a7d261bc-3580-e611-80d7-00155d2a68de", "aed261bc-3580-e611-80d7-00155d2a68de"
        ],
        "AttributeId": "39a5d94c-e8a2-4a41-acc0-8487242d455e"
    }
    

Mettre à jour un attribut

Comme mentionné dans Mettre à jour des entités, des entités modèles sont mises à jour avec la méthode HTTP PUT avec toute la définition JSON de l'élément actuel. Ceci s'applique aux attributs ainsi qu'aux entités. Comme avec des entités, vous avez la possibilité de remplacer les étiquettes à l'aide de l'en-tête MSCRM.MergeLabels défini avec la valeur false, et vous devez publier les personnalisations avant qu'elles ne soient actives dans le système.

Voir aussi

Utiliser l'API Web avec les métadonnées Dynamics 365
Interroger les métadonnées à l'aide de l'API Web
Récupérer des métadonnées par nom ou MetadataId
Créer et mettre à jour les relations d'entité à l’aide de l'API Web
Utiliser le service d'organisation avec des métadonnées Dynamics 365
Personnaliser les métadonnées d’attribut d’entité

Microsoft Dynamics 365

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