Note
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier les répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de changer de répertoire.
Vous pouvez effectuer toutes les mêmes opérations sur les définitions de table à l’aide de l’API web que vous pouvez avec le SDK pour .NET. Cet article se concentre sur l’utilisation des définitions de tables (métadonnées) à l’aide de l’API web. Pour plus d’informations sur les propriétés de définition de table, consultez Personnaliser les définitions de table et EntityMetadata EntityType.
Conseil / Astuce
Les entités, les attributs et les ensembles d’options globaux (également appelés tables, colonnes et choix) sont tous les composants de solution. Lorsque vous les créez, vous pouvez les associer à une solution à l’aide de l’en-tête MSCRM.SolutionUniqueName de demande et définir la valeur sur le nom unique de la solution dont elle doit faire partie.
Créer des définitions de table
Pour créer une définition de table, utilisez la représentation POST et JSON des données de définition d’entité dans le chemin d’accès à l’ensemble d’entités EntityDefinitions. L’entité doit inclure la définition de l’attribut de nom principal. Vous n’avez pas besoin de définir des valeurs pour toutes les propriétés. Les éléments de cette liste, à l’exception de la 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 sont définies sur les valeurs par défaut. Pour comprendre les valeurs par défaut, examinez l’exemple dans la section Mettre à jour les définitions de table . L’exemple de cet article utilise les propriétés d’entité suivantes.
| Propriété EntityMetadata | Valeur |
|---|---|
SchemaName |
new_BankAccount
Note: Vous devez inclure le préfixe de personnalisation qui correspond à l’éditeur de solution. Ici, la valeur par défaut « new_ » est utilisée, mais vous devez choisir le préfixe qui fonctionne pour votre solution. |
DisplayName |
Compte bancaire |
DisplayCollectionName |
Comptes bancaires |
Description |
Entité permettant de stocker des informations sur les comptes bancaires des clients. |
OwnershipType |
UserOwned
Note: Pour connaître les valeurs que vous pouvez définir ici, consultez PropriétéTypes EnumType. |
IsActivity |
false |
HasActivities |
false |
HasNotes |
false |
Outre les propriétés répertoriées précédemment, la EntityMetadataAttributes propriété doit contenir un tableau qui inclut un EntityType StringAttributeMetadata pour représenter l’attribut de nom principal de 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é d’attribut principal | Valeur |
|---|---|
SchemaName |
new_AccountName |
RequiredLevel |
Aucun Note: Pour connaître les valeurs que vous pouvez définir ici, consultez AttributeRequiredLevelManagedProperty ComplexType et AttributeRequiredLevel EnumType. |
MaxLength |
100 |
FormatName |
Text Note: L’attribut de nom principal doit utiliser le format Texte. Pour connaître les options de format disponibles pour d’autres attributs de chaîne, consultez Formats de chaîne. |
DisplayName |
Nom du compte |
Description |
Tapez le nom du compte bancaire. |
IsPrimaryName |
true |
Note
Lorsque vous créez ou mettez à jour des étiquettes à l’aide du ComplexType d’étiquette, vous devez uniquement définir la LocalizedLabels propriété. La UserLocalizedLabel valeur retournée est basée sur la préférence de langue de l’utilisateur et est en lecture seule.
L'exemple suivant montre la création d'une table personnalisée avec les propriétés 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).
Requête :
POST [Organization URI]/api/data/v9.2/EntityDefinitions HTTP/1.1
MSCRM.SolutionUniqueName: examplesolution
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: [Organization URI]/api/data/v9.2/EntityDefinitions(00aa00aa-bb11-cc22-dd33-44ee44ee44ee)
Mettre à jour les définitions de table
Important
Vous ne pouvez pas utiliser la PATCH méthode pour mettre à jour les entités de modèle de données. Les définitions de table ont une parité avec le SDK pour la classe .NET UpdateEntityRequest qui remplace la définition d’entité par celle incluse.
Par conséquent, vous devez utiliser la méthode lors de la PUT mise à jour des entités de modèle de données et veillez à inclure toutes les propriétés existantes que vous n’avez pas l’intention de modifier.
Vous ne pouvez pas mettre à jour les propriétés individuelles.
Lorsque vous mettez à jour les définitions de table avec des étiquettes, vous devez inclure un en-tête de requête personnalisé MSCRM.MergeLabels pour contrôler la façon dont les étiquettes de la mise à jour doivent être gérées. Si une étiquette pour un élément comporte déjà des étiquettes pour d’autres langues et que vous la mettez à jour avec une étiquette qui contient une seule étiquette pour une langue spécifique, l’en-tête MSCRM.MergeLabels contrôle s’il faut remplacer les étiquettes existantes ou fusionner votre nouvelle étiquette avec des étiquettes de langue existantes. Avec MSCRM.MergeLabels défini à true, toutes les nouvelles étiquettes ne remplacent les étiquettes existantes que lorsque le code de langue correspond. Si vous souhaitez remplacer les étiquettes existantes pour inclure uniquement vos propres étiquettes, configurez MSCRM.MergeLabels sur false.
Important
Si vous n’incluez pas d’en-tête MSCRM.MergeLabels , le comportement par défaut est comme si la valeur était false et si les étiquettes localisées non incluses dans votre mise à jour seront perdues.
Lorsque vous mettez à jour une définition de table ou de colonne, vous devez utiliser l’action PublishXml ou l’actionPublishAllXml avant que les modifications que vous apportez soient appliquées à l’application. Plus d’informations : Publier des personnalisations
En règle générale, vous allez récupérer la définition JSON de l’attribut d’entité et modifier les propriétés avant de le renvoyer. L’exemple suivant contient toutes les propriétés de définition de la table créées dans l’exemple Créer des définitions de table , mais avec la DisplayName modification apportée à « Nom commercial de la banque ». Il peut être utile de noter que le json fournit ici les valeurs par défaut pour les propriétés non définies dans l’exemple Créer des définitions de table .
Note
Certains exemples ci-dessous utilisent la MetadataId valeur de clé primaire. Toutefois, vous pouvez également utiliser la LogicalName clé de remplacement pour référencer des entités de schéma. Plus d’informations : Récupérer des définitions de table par nom ou MetadataId
Requête :
PUT [Organization URI]/api/data/v9.2/EntityDefinitions(00aa00aa-bb11-cc22-dd33-44ee44ee44ee) HTTP/1.1
MSCRM.SolutionUniqueName: examplesolution
Accept: application/json
Content-Type: application/json; charset=utf-8
OData-MaxVersion: 4.0
OData-Version: 4.0
MSCRM.MergeLabels: true
{
"@odata.context": "[Organization URI]/api/data/v9.2/$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": "00aa00aa-bb11-cc22-dd33-44ee44ee44ee",
"HasChanged": null
}
Réponse:
HTTP/1.1 204 No Content
OData-Version: 4.0
Voir aussi
Utiliser l’API web avec les métadonnées Microsoft Dataverse
Créer et mettre à jour des définitions de colonnes à l’aide de l’API web
Requête des définitions de table à l’aide de l’API web
Récupérer les définitions de table par nom ou MetadataId
Relations de table de modèles à l’aide de l’API web
Utiliser des définitions de table à l’aide du Kit de développement logiciel (SDK) pour .NET
Définitions de colonne (attribut)
Exemple d’opérations de schéma de table de l’API Web
Exemple d’opérations de schéma de table de l’API Web (C#)