Abrufen von Metadaten über den Namen oder die MetadataId

 

Veröffentlicht: Januar 2017

Gilt für: Dynamics 365 (online), Dynamics 365 (on-premises), Dynamics CRM 2016, Dynamics CRM Online

Ihre Anwendungen können durch Abrufen von Metadaten an Konfigurationsänderungen anpassen. Wenn Sie eine der Schlüsseleigenschaften eines Metadatenelements kennen, können Sie Metadatendefinitionen mit der Web-API abrufen.

In diesem Thema

Abrufen von Metadatenelemente per Name

Abrufen von Metadatenelemente über MetadataId

Abrufen von Metadatenelemente per Name

Hinweis

Diese Funktion wurde mit Update für Dynamics 365 (online und lokal), Dezember 2016 hinzugefügt.

Alle abrufbaren Metadatenelemente haben einen MetadataId-Primärschlüssel, der verwendet werden kann, um einzelne Elemente abzurufen. Für die Metadatentypen, die einen definierten Alternativschlüssel haben, können Sie ihn per Name abrufen.

Elemente per Name abzurufen ist im Allgemeinen einfacher, da Sie wahrscheinlich bereits einen Verweis auf den Metadatenelementnamen in Ihrem Code haben. Die folgende Tabelle enthält die Alternativschlüsseleigenschaften für das Abrufen von Metadatenelementen per Name

Metadatenelement

Alternativschlüssel

Beispiel

Entität

LogicalName

GET /api/data/v8.2/EntityDefinitions(LogicalName='account')

Attribut

LogicalName

GET /api/data/v8.2/EntityDefinitions(LogicalName='account')/Attributes(LogicalName='emailaddress1')

Beziehung

SchemaName

GET /api/data/v8.2/RelationshipDefinitions(SchemaName='Account_Tasks')

Globaler Opstionssatz

Name

GET /api/data/v8.2/GlobalOptionSetDefinitions(Name='metric_goaltype')

Beispiel: Abrufen von Metadatenelemente per Name

Ein allgemeines Element von Metadaten das häufig abgerufen wird, sind die Optionen, die für ein bestimmtes Attribut konfiguriert werden. Im folgenden Beispiel wird gezeigt, wie die OptionSet- und GlobalOptionSet-Eigenschaften von PicklistAttributeMetadata EntityType abgerufen werden.

Hinweis

Beim Erweitern der OptionSet- und GlobalOptionSet-Einzelwert-Navigationseigenschaften von PicklistAttributeMetadata EntityType können Sie die Optionsdefinition abrufen ob ein Attribut konfiguriert ist, um globale Optionsets oder das "lokale" Optionset der Entität zu verwenden. Wenn es sich um ein "lokales" Optionset handelt, entspricht die GlobalOptionSet-Eigenschaft dem Wert Null.

Wenn das Attribut ein globales Optionset verwendete, würde die GlobalOptionSet-Eigenschaft die definierten Optionen enthalten und die OptionSet-Eigenschaft wäre Null.

  • Anforderung

    GET cc_WebAPI_ServiceURI/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
    
  • Antwort

    HTTP/1.1 200 OK
    Content-Type: application/json; odata.metadata=minimal
    OData-Version: 4.0
    
    {
        "@odata.context": "cc_WebAPI_ServiceURI/$metadata#EntityDefinitions('account')/Attributes/Microsoft.Dynamics.CRM.PicklistAttributeMetadata(LogicalName,OptionSet,GlobalOptionSet,OptionSet(Options),GlobalOptionSet(Options))/$entity",
        "LogicalName": "accountcategorycode",
        "MetadataId": "118771ca-6fb9-4f60-8fd4-99b6124b63ad",
        "OptionSet@odata.context": "cc_WebAPI_ServiceURI/$metadata#EntityDefinitions('account')/Attributes(118771ca-6fb9-4f60-8fd4-99b6124b63ad)/Microsoft.Dynamics.CRM.PicklistAttributeMetadata/OptionSet(Options)/$entity",
        "OptionSet": {
            "Options": [{
                "Value": 1,
                "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
                },
                "Color": null,
                "IsManaged": true,
                "MetadataId": null,
                "HasChanged": null
            }, {
                "Value": 2,
                "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
                },
                "Color": null,
                "IsManaged": true,
                "MetadataId": null,
                "HasChanged": null
            }],
            "MetadataId": "b994cdd8-5ce9-4ab9-bdd3-8888ebdb0407"
        },
        "GlobalOptionSet": null
    }
    

Abrufen von Metadatenelemente über MetadataId

Da der MetadataId der Primärschlüssel für Metadatenelemente ist, folgt das Abrufen einzelner Elemente demselben Muster, das verwendet wird, um Unternehmensdatenentitäten abzurufen.

Metadatenelement

Beispiel

Entität

GET /api/data/v8.2/EntityDefinitions(<Entity MetadataId>)

Attribut

GET /api/data/v8.2/EntityDefinitions(<Entity MetadataId>)/Attributes(<Attribute MetadataId>)

Beziehung

GET /api/data/v8.2/RelationshipDefinitions(<Relationship MetadataId>)

Globaler Opstionssatz

GET /api/data/v8.2/GlobalOptionSetDefinitions(<OptionSet MetadataId>)

Beispiel: Abrufen von Metadatenelemente per MetadataId

Um das gleiche Ergebnis wie in Beispiel: Abrufen von Metadatenelemente per Name zu erhalten, müssen Sie eine Serie von Abfrageoperationen durchführen, um die MetadataId durch Filtern nach der Entität LogicalName zu erhalten und dann nach Attribut LogicalName filtern.

  • Anforderung

    GET cc_WebAPI_ServiceURI/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
    
  • Antwort

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

    GET cc_WebAPI_ServiceURI/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
    
  • Antwort

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

    GET cc_WebAPI_ServiceURI/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
    
  • Antwort

    HTTP/1.1 200 OK
    Content-Type: application/json; odata.metadata=minimal
    OData-Version: 4.0
    
    {
        "@odata.context": "cc_WebAPI_ServiceURI/$metadata#EntityDefinitions(70816501-edb9-4740-a16c-6a5efbc05d84)/Attributes/Microsoft.Dynamics.CRM.PicklistAttributeMetadata(LogicalName,OptionSet,GlobalOptionSet,OptionSet(Options),GlobalOptionSet(Options))/$entity",
        "LogicalName": "accountcategorycode",
        "MetadataId": "118771ca-6fb9-4f60-8fd4-99b6124b63ad",
        "OptionSet@odata.context": "cc_WebAPI_ServiceURI/$metadata#EntityDefinitions(70816501-edb9-4740-a16c-6a5efbc05d84)/Attributes(118771ca-6fb9-4f60-8fd4-99b6124b63ad)/Microsoft.Dynamics.CRM.PicklistAttributeMetadata/OptionSet(Options)/$entity",
        "OptionSet": {
            "Options": [{
                "Value": 1,
                "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
                },
                "Color": null,
                "IsManaged": true,
                "MetadataId": null,
                "HasChanged": null
            }, {
                "Value": 2,
                "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
                },
                "Color": null,
                "IsManaged": true,
                "MetadataId": null,
                "HasChanged": null
            }],
            "MetadataId": "b994cdd8-5ce9-4ab9-bdd3-8888ebdb0407"
        },
        "GlobalOptionSet": null
    }
    

Siehe auch

Verwenden der Web-API mit Dynamics 365-Metadaten
Metadaten mit Web-API abfragen
Erstellen und Aktualisieren von Entitätsdefinitionen mit der Web-API
Erstellen und Aktualisieren von Entitätsbeziehungen mit der Web-API

Microsoft Dynamics 365

© 2017 Microsoft. Alle Rechte vorbehalten. Copyright