Référencer les définitions de schéma Dataverse par nom ou MetadataId

Découvrez comment référencer Microsoft Dataverse définitions de schéma par nom ou MetadataId via l’API web. Ces requêtes aident les applications à récupérer les métadonnées et à s’adapter aux modifications de configuration de table et de colonne.

Note

Cet article illustre la récupération des définitions de schéma par nom. Vous pouvez également utiliser les noms lors de l’exécution d’autres opérations pour créer, mettre à jour et supprimer des entités de schéma.

Récupérer les définitions de schéma par nom

Tous les éléments de définition récupérables ont une MetadataId clé primaire que vous pouvez utiliser pour récupérer des éléments individuels. Pour les définitions qui ont une autre clé, vous pouvez les récupérer par nom.

La récupération d’éléments de définition par nom est plus facile, car vous disposez probablement déjà d’une référence au nom de l’élément dans votre code. Le tableau suivant répertorie les autres propriétés de clé pour récupérer ces éléments par nom.

Élément de définition Autre clé Example
Entité LogicalName GET /api/data/v9.2/EntityDefinitions(LogicalName='account')
Caractéristique LogicalName GET /api/data/v9.2/EntityDefinitions(LogicalName='account')/Attributes(LogicalName='emailaddress1')
Relation SchemaName GET /api/data/v9.2/RelationshipDefinitions(SchemaName='Account_Tasks')
Ensemble d’options globales Nom GET /api/data/v9.2/GlobalOptionSetDefinitions(Name='metric_goaltype')

Exemple : Récupérer les définitions de schéma par nom

Un élément de définition courant que les utilisateurs souhaitent récupérer est les options configurées pour un attribut particulier. L’exemple suivant montre comment récupérer les propriétés OptionSet et GlobalOptionSet d’un PicklistAttributeMetadata EntityType.

Note

Vous n’avez pas besoin de développer les OptionSetGlobalOptionSet propriétés de navigation à valeur unique de PicklistAttributeMetadata EntityType. Vous pouvez obtenir la définition d’option à partir de l’une ou l’autre propriété, que l’attribut soit configuré pour utiliser des ensembles d’options globaux ou l’ensemble d’options locales dans l’entité.

Requête :

GET [Organization URI]/api/data/v9.2/EntityDefinitions(LogicalName='account')/Attributes(LogicalName='accountcategorycode')/Microsoft.Dynamics.CRM.PicklistAttributeMetadata?$select=LogicalName&$expand=OptionSet($select=Options),GlobalOptionSet($select=Options) HTTP/1.1  
OData-MaxVersion: 4.0  
OData-Version: 4.0  
Accept: application/json  
Content-Type: application/json; charset=utf-8  

Réponse:

HTTP/1.1 200 OK  
Content-Type: application/json; odata.metadata=minimal  
OData-Version: 4.0  
  
{
  "@odata.context": "[Organization URI]/api/data/v9.2/$metadata#EntityDefinitions('account')/Attributes/Microsoft.Dynamics.CRM.PicklistAttributeMetadata(LogicalName,OptionSet(Options),GlobalOptionSet(Options))/$entity",
  "MetadataId": "118771ca-6fb9-4f60-8fd4-99b6124b63ad",
  "LogicalName": "accountcategorycode",
  "OptionSet": {
    "MetadataId": "b994cdd8-5ce9-4ab9-bdd3-8888ebdb0407",
    "Options": [
      {
        "Value": 1,
        "Color": null,
        "IsManaged": true,
        "ExternalValue": null,
        "ParentValues": [],
        "Tag": null,
        "IsHidden": false,
        "MetadataId": null,
        "HasChanged": null,
        "Label": {
          "LocalizedLabels": [
            {
              "Label": "Preferred Customer",
              "LanguageCode": 1033,
              "IsManaged": true,
              "MetadataId": "0bd8a218-2341-db11-898a-0007e9e17ebd",
              "HasChanged": null
            }
          ],
          "UserLocalizedLabel": {
            "Label": "Preferred Customer",
            "LanguageCode": 1033,
            "IsManaged": true,
            "MetadataId": "0bd8a218-2341-db11-898a-0007e9e17ebd",
            "HasChanged": null
          }
        },
        "Description": {
          "LocalizedLabels": [],
          "UserLocalizedLabel": null
        }
      },
      {
        "Value": 2,
        "Color": null,
        "IsManaged": true,
        "ExternalValue": null,
        "ParentValues": [],
        "Tag": null,
        "IsHidden": false,
        "MetadataId": null,
        "HasChanged": null,
        "Label": {
          "LocalizedLabels": [
            {
              "Label": "Standard",
              "LanguageCode": 1033,
              "IsManaged": true,
              "MetadataId": "0dd8a218-2341-db11-898a-0007e9e17ebd",
              "HasChanged": null
            }
          ],
          "UserLocalizedLabel": {
            "Label": "Standard",
            "LanguageCode": 1033,
            "IsManaged": true,
            "MetadataId": "0dd8a218-2341-db11-898a-0007e9e17ebd",
            "HasChanged": null
          }
        },
        "Description": {
          "LocalizedLabels": [],
          "UserLocalizedLabel": null
        }
      }
    ]
  },
  "GlobalOptionSet": {
    "MetadataId": "b994cdd8-5ce9-4ab9-bdd3-8888ebdb0407",
    "Options": [
      {
        "Value": 1,
        "Color": null,
        "IsManaged": true,
        "ExternalValue": null,
        "ParentValues": [],
        "Tag": null,
        "IsHidden": false,
        "MetadataId": null,
        "HasChanged": null,
        "Label": {
          "LocalizedLabels": [
            {
              "Label": "Preferred Customer",
              "LanguageCode": 1033,
              "IsManaged": true,
              "MetadataId": "0bd8a218-2341-db11-898a-0007e9e17ebd",
              "HasChanged": null
            }
          ],
          "UserLocalizedLabel": {
            "Label": "Preferred Customer",
            "LanguageCode": 1033,
            "IsManaged": true,
            "MetadataId": "0bd8a218-2341-db11-898a-0007e9e17ebd",
            "HasChanged": null
          }
        },
        "Description": {
          "LocalizedLabels": [],
          "UserLocalizedLabel": null
        }
      },
      {
        "Value": 2,
        "Color": null,
        "IsManaged": true,
        "ExternalValue": null,
        "ParentValues": [],
        "Tag": null,
        "IsHidden": false,
        "MetadataId": null,
        "HasChanged": null,
        "Label": {
          "LocalizedLabels": [
            {
              "Label": "Standard",
              "LanguageCode": 1033,
              "IsManaged": true,
              "MetadataId": "0dd8a218-2341-db11-898a-0007e9e17ebd",
              "HasChanged": null
            }
          ],
          "UserLocalizedLabel": {
            "Label": "Standard",
            "LanguageCode": 1033,
            "IsManaged": true,
            "MetadataId": "0dd8a218-2341-db11-898a-0007e9e17ebd",
            "HasChanged": null
          }
        },
        "Description": {
          "LocalizedLabels": [],
          "UserLocalizedLabel": null
        }
      }
    ]
  }
}

Récupérer des définitions de schéma par MetadataId

Comme il MetadataId s’agit de la clé primaire des éléments de définition, la récupération d’éléments individuels suit le même modèle que celui utilisé pour récupérer des tables de données métiers.

Élément de définition Example
Entité GET /api/data/v9.2/EntityDefinitions(<Entity MetadataId>)
Caractéristique GET /api/data/v9.2/EntityDefinitions(<Entity MetadataId>)/Attributes(<Attribute MetadataId>)
Relation GET /api/data/v9.2/RelationshipDefinitions(<Relationship MetadataId>)
Ensemble d’options globales GET /api/data/v9.2/GlobalOptionSetDefinitions(<OptionSet MetadataId>)

Exemple : récupérer des définitions de schéma par MetadataId

Pour obtenir le même résultat que l’exemple : récupérer des éléments de définition par nom, effectuez une série d’opérations de requête pour obtenir le MetadataId filtrage par l’entité LogicalName , puis par l’attribut LogicalName.

Requête :

GET [Organization URI]/api/data/v9.2/EntityDefinitions?$filter=LogicalName%20eq%20'account'&$select=MetadataId HTTP/1.1  
OData-MaxVersion: 4.0  
OData-Version: 4.0  
Accept: application/json  
Content-Type: application/json; charset=utf-8  

Réponse:

HTTP/1.1 200 OK  
Content-Type: application/json; odata.metadata=minimal  
OData-Version: 4.0  
  
{  
  "@odata.context":"[Organization URI]/api/data/v9.2/$metadata#EntityDefinitions(MetadataId)","value":[  
    {  
      "MetadataId":"70816501-edb9-4740-a16c-6a5efbc05d84"  
    }  
  ]  
}  

Requête :

GET [Organization URI]/api/data/v9.2/EntityDefinitions(70816501-edb9-4740-a16c-6a5efbc05d84)/Attributes?$filter=LogicalName%20eq%20'accountcategorycode'&$select=MetadataId HTTP/1.1  
OData-MaxVersion: 4.0  
OData-Version: 4.0  
Accept: application/json  
Content-Type: application/json; charset=utf-8  

Réponse:

HTTP/1.1 200 OK  
Content-Type: application/json; odata.metadata=minimal  
OData-Version: 4.0  
  
{  
    "@odata.context": "[Organization URI]/api/data/v9.2/$metadata#EntityDefinitions(70816501-edb9-4740-a16c-6a5efbc05d84)/Attributes(MetadataId)","value":[  
    {  
        "@odata.type": "#Microsoft.Dynamics.CRM.PicklistAttributeMetadata",  
        "MetadataId": "118771ca-6fb9-4f60-8fd4-99b6124b63ad"  
    }  
    ]  
}  

Requête :

GET [Organization URI]/api/data/v9.2/EntityDefinitions(70816501-edb9-4740-a16c-6a5efbc05d84)/Attributes(118771ca-6fb9-4f60-8fd4-99b6124b63ad)/Microsoft.Dynamics.CRM.PicklistAttributeMetadata?$select=LogicalName&$expand=OptionSet($select=Options),GlobalOptionSet($select=Options) HTTP/1.1  
OData-MaxVersion: 4.0  
OData-Version: 4.0  
Accept: application/json  
Content-Type: application/json; charset=utf-8  

Réponse:

HTTP/1.1 200 OK  
Content-Type: application/json; odata.metadata=minimal  
OData-Version: 4.0  
  
{
  "@odata.context": "[Organization URI]/api/data/v9.2/$metadata#EntityDefinitions('account')/Attributes/Microsoft.Dynamics.CRM.PicklistAttributeMetadata(LogicalName,OptionSet(Options),GlobalOptionSet(Options))/$entity",
  "MetadataId": "118771ca-6fb9-4f60-8fd4-99b6124b63ad",
  "LogicalName": "accountcategorycode",
  "OptionSet": {
    "MetadataId": "b994cdd8-5ce9-4ab9-bdd3-8888ebdb0407",
    "Options": [
      {
        "Value": 1,
        "Color": null,
        "IsManaged": true,
        "ExternalValue": null,
        "ParentValues": [],
        "Tag": null,
        "IsHidden": false,
        "MetadataId": null,
        "HasChanged": null,
        "Label": {
          "LocalizedLabels": [
            {
              "Label": "Preferred Customer",
              "LanguageCode": 1033,
              "IsManaged": true,
              "MetadataId": "0bd8a218-2341-db11-898a-0007e9e17ebd",
              "HasChanged": null
            }
          ],
          "UserLocalizedLabel": {
            "Label": "Preferred Customer",
            "LanguageCode": 1033,
            "IsManaged": true,
            "MetadataId": "0bd8a218-2341-db11-898a-0007e9e17ebd",
            "HasChanged": null
          }
        },
        "Description": {
          "LocalizedLabels": [],
          "UserLocalizedLabel": null
        }
      },
      {
        "Value": 2,
        "Color": null,
        "IsManaged": true,
        "ExternalValue": null,
        "ParentValues": [],
        "Tag": null,
        "IsHidden": false,
        "MetadataId": null,
        "HasChanged": null,
        "Label": {
          "LocalizedLabels": [
            {
              "Label": "Standard",
              "LanguageCode": 1033,
              "IsManaged": true,
              "MetadataId": "0dd8a218-2341-db11-898a-0007e9e17ebd",
              "HasChanged": null
            }
          ],
          "UserLocalizedLabel": {
            "Label": "Standard",
            "LanguageCode": 1033,
            "IsManaged": true,
            "MetadataId": "0dd8a218-2341-db11-898a-0007e9e17ebd",
            "HasChanged": null
          }
        },
        "Description": {
          "LocalizedLabels": [],
          "UserLocalizedLabel": null
        }
      }
    ]
  },
  "GlobalOptionSet": {
    "MetadataId": "b994cdd8-5ce9-4ab9-bdd3-8888ebdb0407",
    "Options": [
      {
        "Value": 1,
        "Color": null,
        "IsManaged": true,
        "ExternalValue": null,
        "ParentValues": [],
        "Tag": null,
        "IsHidden": false,
        "MetadataId": null,
        "HasChanged": null,
        "Label": {
          "LocalizedLabels": [
            {
              "Label": "Preferred Customer",
              "LanguageCode": 1033,
              "IsManaged": true,
              "MetadataId": "0bd8a218-2341-db11-898a-0007e9e17ebd",
              "HasChanged": null
            }
          ],
          "UserLocalizedLabel": {
            "Label": "Preferred Customer",
            "LanguageCode": 1033,
            "IsManaged": true,
            "MetadataId": "0bd8a218-2341-db11-898a-0007e9e17ebd",
            "HasChanged": null
          }
        },
        "Description": {
          "LocalizedLabels": [],
          "UserLocalizedLabel": null
        }
      },
      {
        "Value": 2,
        "Color": null,
        "IsManaged": true,
        "ExternalValue": null,
        "ParentValues": [],
        "Tag": null,
        "IsHidden": false,
        "MetadataId": null,
        "HasChanged": null,
        "Label": {
          "LocalizedLabels": [
            {
              "Label": "Standard",
              "LanguageCode": 1033,
              "IsManaged": true,
              "MetadataId": "0dd8a218-2341-db11-898a-0007e9e17ebd",
              "HasChanged": null
            }
          ],
          "UserLocalizedLabel": {
            "Label": "Standard",
            "LanguageCode": 1033,
            "IsManaged": true,
            "MetadataId": "0dd8a218-2341-db11-898a-0007e9e17ebd",
            "HasChanged": null
          }
        },
        "Description": {
          "LocalizedLabels": [],
          "UserLocalizedLabel": null
        }
      }
    ]
  }
}

Voir aussi

Utiliser l’API Web avec les définitions de table
Requête des définitions de table à l’aide de l’API web
Créer et mettre à jour les définitions de table à l’aide de l’API Web
Créer et mettre à jour des relations de table à l’aide de l’API web
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#)