Erstellen und Aktualisieren von Auswahlmöglichkeiten (Optionssätze) mithilfe der Web-API

In diesem Artikel wird erläutert, wie Sie Microsoft Dataverse Auswahlmöglichkeiten (Optionssätze) mithilfe der Web-API erstellen und aktualisieren, sodass Sie einheitliche Optionswerte über Tabellenspalten hinweg verwalten können. Verwenden Sie globale Auswahlmöglichkeiten, wenn mehrere Spalten dieselben Optionen benötigen, und verwenden Sie lokale Auswahlmöglichkeiten für eine bestimmte Spalte.

Anmerkung

Sie können einen vorhandenen verwalteten Optionssatz nur ändern, wenn Sie der Herausgeber sind. Um eine Option in diesen Optionssätzen umzubenennen oder zu löschen, müssen Sie die Lösung aktualisieren, die den Optionssatz hinzugefügt hat. Weitere Informationen finden Sie unter Upgrade oder Aktualisieren einer Lösung.

Wenn Sie eine globale Option definieren, die mithilfe einer POST Anforderung an [Organisations-URI]/api/data/v9.2/GlobalOptionSetDefinitions festgelegt wird, empfehlen wir, dem System das Zuweisen eines Werts zu ermöglichen. Lassen Sie das System den Wert zuweisen, indem Sie einen null Wert übergeben, wenn Sie die neue OptionMetadata-Instanz erstellen. Wenn Sie eine Option definieren, enthält sie ein Präfix für den Optionswert, das spezifisch für den Kontext des Publisher-Sets für die Lösung ist, in der das Optionsset erstellt wird. Dieses Präfix reduziert die Wahrscheinlichkeit, dass doppelte Optionssätze für eine verwaltete Lösung erstellt werden, und in allen Optionssätzen, die Sie in Umgebungen definieren, in denen Ihre verwaltete Lösung installiert ist. Weitere Informationen finden Sie unter Zusammenführung von Optionssatz-Optionen.

Web-API-Vorgänge für Auswahlmöglichkeiten

Die folgende Tabelle enthält die Meldungen, die Sie mit globalen Optionssätzen verwenden können.

Nachricht Web-API-Vorgang
CreateOptionSet Verwenden Sie POST-Anfragen an [Organisations-URI]/api/data/v9.2/GlobalOptionSetDefinitions.
DeleteOptionSet Verwenden Sie DELETE-Anfragen an [Organisations-URI]/api/data/v9.2/GlobalOptionSetDefinitions(Name='<name>').
RetrieveAllOptionSets Verwenden Sie GET-Anfragen an [Organisations-URI]/api/data/v9.2/GlobalOptionSetDefinitions.
RetrieveOptionSet Verwenden Sie GET-Anfragen an [Organisations-URI]/api/data/v9.2/GlobalOptionSetDefinitions(Name='<name>').

In der folgenden Tabelle sind die Nachrichten aufgeführt, die Sie mit lokalen und globalen Optionssätzen verwenden können.

Nachricht Web-API-Vorgang
DeleteOptionValue
Löscht einen der Werte in einem globalen Optionssatz.
DeleteOptionValue Aktion
Beispiel: Option Löschen
InsertOptionValue
Fügt eine neue Option in einen globalen Optionssatz ein.
InsertOptionValue Aktion
Beispiel: Optionen einfügen
InsertStatusValue
Fügt eine neue Option in das globale Optionssatz ein, das in der Status Spalte verwendet wird.
InsertStatusValue Aktion
Beispiel: Statuswert Einfügen
OrderOption
Ändert die relative Reihenfolge der Optionen in einem Optionssatz.
OrderOption Aktion
Beispiel: Sortiertoptionen
UpdateOptionSet Verwenden Sie eine PUT-Anfrage mit einem OptionSetMetadataBase EntityType zu [Organisation URI]/api/data/v9.2/GlobalOptionSetDefinitions(Metadatenid)
Nur die durch OptionSetMetadataBase definierten Eigenschaften können aktualisiert werden. Diese Eigenschaften enthalten nicht die Optionen. Verwenden Sie andere Aktionen, um Änderungen an Optionen vorzunehmen.
UpdateOptionValue
Aktualisiert eine Option in einem Optionssatz.
Aktion UpdateOptionValue
Beispiel: Optionen aktualisieren
UpdateStateValue
Fügt eine neue Option in den globalen Optionssatz ein, der in der Status Spalte verwendet wird.
Aktion UpdateStateValue

Web-API-Beispiele für Auswahlmöglichkeiten

Erstellen eines globalen Optionssatzes

Im folgenden Beispiel werden diese Eigenschaften verwendet, um eine globale Auswahl zu erstellen.

OptionSetMetadata Eigenschaften Werte
Name sample_colors
DisplayName Farben
Description Farbauswahl
OptionSetType Picklist
Options Wert: 727000000, Label:Red
Wert: 727000001, Label:Yellow
Wert: 727000002, Label:Green

Das folgende Beispiel erstellt eine globale Auswahl unter Verwendung der Eigenschaften.

Die URI für die globale Auswahl wird in der Antwort zurückgegeben. Sie können auch auf diese globale Auswahl verweisen, indem Sie den Namen verwenden: GlobalOptionSetDefinitions(Name='sample_colors').

Anforderung:

POST [Organization Uri]/api/data/v9.2/GlobalOptionSetDefinitions
MSCRM.SolutionUniqueName: examplesolution
OData-MaxVersion: 4.0
OData-Version: 4.0
If-None-Match: null
Accept: application/json
Content-Type: application/json; charset=utf-8
Content-Length: 2769

{
  "@odata.type": "Microsoft.Dynamics.CRM.OptionSetMetadata",
  "Options": [
    {
      "Value": 727000000,
      "Label": {
        "@odata.type": "Microsoft.Dynamics.CRM.Label",
        "LocalizedLabels": [
          {
            "@odata.type": "Microsoft.Dynamics.CRM.LocalizedLabel",
            "Label": "Red",
            "LanguageCode": 1033,
            "IsManaged": false
          }
        ],
        "UserLocalizedLabel": {
          "@odata.type": "Microsoft.Dynamics.CRM.LocalizedLabel",
          "Label": "Red",
          "LanguageCode": 1033,
          "IsManaged": false
        }
      }
    },
    {
      "Value": 727000001,
      "Label": {
        "@odata.type": "Microsoft.Dynamics.CRM.Label",
        "LocalizedLabels": [
          {
            "@odata.type": "Microsoft.Dynamics.CRM.LocalizedLabel",
            "Label": "Yellow",
            "LanguageCode": 1033,
            "IsManaged": false
          }
        ],
        "UserLocalizedLabel": {
          "@odata.type": "Microsoft.Dynamics.CRM.LocalizedLabel",
          "Label": "Yellow",
          "LanguageCode": 1033,
          "IsManaged": false
        }
      }
    },
    {
      "Value": 727000002,
      "Label": {
        "@odata.type": "Microsoft.Dynamics.CRM.Label",
        "LocalizedLabels": [
          {
            "@odata.type": "Microsoft.Dynamics.CRM.LocalizedLabel",
            "Label": "Green",
            "LanguageCode": 1033,
            "IsManaged": false
          }
        ],
        "UserLocalizedLabel": {
          "@odata.type": "Microsoft.Dynamics.CRM.LocalizedLabel",
          "Label": "Green",
          "LanguageCode": 1033,
          "IsManaged": false
        }
      }
    }
  ],
  "Description": {
    "@odata.type": "Microsoft.Dynamics.CRM.Label",
    "LocalizedLabels": [
      {
        "@odata.type": "Microsoft.Dynamics.CRM.LocalizedLabel",
        "Label": "Color Choice",
        "LanguageCode": 1033,
        "IsManaged": false
      }
    ],
    "UserLocalizedLabel": {
      "@odata.type": "Microsoft.Dynamics.CRM.LocalizedLabel",
      "Label": "Color Choice",
      "LanguageCode": 1033,
      "IsManaged": false
    }
  },
  "DisplayName": {
    "@odata.type": "Microsoft.Dynamics.CRM.Label",
    "LocalizedLabels": [
      {
        "@odata.type": "Microsoft.Dynamics.CRM.LocalizedLabel",
        "Label": "Colors",
        "LanguageCode": 1033,
        "IsManaged": false
      }
    ],
    "UserLocalizedLabel": {
      "@odata.type": "Microsoft.Dynamics.CRM.LocalizedLabel",
      "Label": "Colors",
      "LanguageCode": 1033,
      "IsManaged": false
    }
  },
  "Name": "sample_colors",
  "OptionSetType": "Picklist"
}

Antwort:

HTTP/1.1 204 NoContent
OData-Version: 4.0
OData-EntityId: [Organization Uri]/api/data/v9.2/GlobalOptionSetDefinitions(00aa00aa-bb11-cc22-dd33-44ee44ee44ee)

Erstellen einer Auswahlspalte mithilfe eines globalen Optionssatzes

Im folgenden Beispiel werden diese Eigenschaften verwendet, um eine Auswahlspalte mithilfe einer globalen Auswahl zu erstellen.

Eigenschaften von Attributen Werte
SchemaName sample_Colors
DisplayName Farbbeispiele
Description Attribut Globale Auswahlliste Farben
RequiredLevel None
GlobalOptionSet Legen Sie diese einzelwertige Navigationseigenschaft mithilfe der @odata.bind Syntax mit einem Verweis auf die globale Auswahl fest. Dieses Beispiel verwendet die MetadataId als Schlüssel, könnte aber auch den alternativen Schlüssel mit Name verwenden: GlobalOptionSetDefinitions(Name='sample_colors')

Im folgenden Beispiel wird eine lokale Spalte mithilfe der Eigenschaften erstellt und der sample_bankaccount Tabelle hinzugefügt.

Die Antwort gibt den URI für das Attribut zurück.

Anforderung:

POST [Organization Uri]/api/data/v9.2/EntityDefinitions(LogicalName='sample_bankaccount')/Attributes
MSCRM.SolutionUniqueName: examplesolution
OData-MaxVersion: 4.0
OData-Version: 4.0
If-None-Match: null
Accept: application/json
Content-Type: application/json; charset=utf-8
Content-Length: 1465

{
  "@odata.type": "Microsoft.Dynamics.CRM.PicklistAttributeMetadata",
  "AttributeType": "Picklist",
  "AttributeTypeName": {
    "Value": "PicklistType"
  },
  "SourceTypeMask": 0,
  "GlobalOptionSet@odata.bind": "/GlobalOptionSetDefinitions(00aa00aa-bb11-cc22-dd33-44ee44ee44ee)",
  "Description": {
    "@odata.type": "Microsoft.Dynamics.CRM.Label",
    "LocalizedLabels": [
      {
        "@odata.type": "Microsoft.Dynamics.CRM.LocalizedLabel",
        "Label": "Colors Global Picklist Attribute",
        "LanguageCode": 1033,
        "IsManaged": false
      }
    ],
    "UserLocalizedLabel": {
      "@odata.type": "Microsoft.Dynamics.CRM.LocalizedLabel",
      "Label": "Colors Global Picklist Attribute",
      "LanguageCode": 1033,
      "IsManaged": false
    }
  },
  "DisplayName": {
    "@odata.type": "Microsoft.Dynamics.CRM.Label",
    "LocalizedLabels": [
      {
        "@odata.type": "Microsoft.Dynamics.CRM.LocalizedLabel",
        "Label": "Sample Colors",
        "LanguageCode": 1033,
        "IsManaged": false
      }
    ],
    "UserLocalizedLabel": {
      "@odata.type": "Microsoft.Dynamics.CRM.LocalizedLabel",
      "Label": "Sample Colors",
      "LanguageCode": 1033,
      "IsManaged": false
    }
  },
  "RequiredLevel": {
    "Value": "None",
    "CanBeChanged": false,
    "ManagedPropertyLogicalName": "canmodifyrequirementlevelsettings"
  },
  "SchemaName": "sample_Colors"
}

Antwort:

HTTP/1.1 204 NoContent
OData-Version: 4.0
OData-EntityId: [Organization Uri]/api/data/v9.2/EntityDefinitions(LogicalName='sample_bankaccount')/Attributes(11bb11bb-cc22-dd33-ee44-55ff55ff55ff)

Optionen zum Einfügen

Das folgende Beispiel verwendet die InsertOptionValue Aktion, um eine neue Option mit dem Wert 727000005 und dem Label Echo zu der lokalen Auswahlspalte hinzuzufügen, die mit Erstelle eine Auswahlspalte erstellt wurde.

Anforderung:

POST [Organization Uri]/api/data/v9.2/InsertOptionValue
OData-MaxVersion: 4.0
OData-Version: 4.0
If-None-Match: null
Accept: application/json
Content-Type: application/json; charset=utf-8
Content-Length: 612

{
  "AttributeLogicalName": "sample_choice",
  "EntityLogicalName": "sample_bankaccount",
  "Value": 727000005,
  "Label": {
    "@odata.type": "Microsoft.Dynamics.CRM.Label",
    "LocalizedLabels": [
      {
        "@odata.type": "Microsoft.Dynamics.CRM.LocalizedLabel",
        "Label": "Echo",
        "LanguageCode": 1033,
        "IsManaged": false
      }
    ],
    "UserLocalizedLabel": {
      "@odata.type": "Microsoft.Dynamics.CRM.LocalizedLabel",
      "Label": "Echo",
      "LanguageCode": 1033,
      "IsManaged": false
    }
  },
  "SolutionUniqueName": "examplesolution"
}

Antwort:

HTTP/1.1 200 OK
OData-Version: 4.0

{
  "@odata.context": "[Organization Uri]/api/data/v9.2/$metadata#Microsoft.Dynamics.CRM.InsertOptionValueResponse",
  "NewOptionValue": 727000005
}

Optionen aktualisieren

Verwenden Sie zum Aktualisieren einzelner Optionen die UpdateOptionValue-Aktion. Im folgenden Beispiel wird das TrueOption Beispiel für boolesche Spalten in "Erstellen einer booleschen Spalte " aktualisiert und die Beschriftung Up anstelle von True. Da dieser Optionssatz lokal ist, wird das Beispiel verwendet AttributeLogicalName und EntityLogicalName. Verwenden Sie für einen globalen Optionssatz stattdessen den Parameter OptionSetName.

Anforderung:

POST [Organization Uri]/api/data/v9.2/UpdateOptionValue HTTP/1.1
OData-MaxVersion: 4.0
OData-Version: 4.0
If-None-Match: null
Accept: application/json

{
  "AttributeLogicalName": "new_boolean",
  "EntityLogicalName": "new_bankaccount",
  "Value": 1,
  "Label": {
    "@odata.type": "Microsoft.Dynamics.CRM.Label",
    "LocalizedLabels": [
      {
        "@odata.type": "Microsoft.Dynamics.CRM.LocalizedLabel",
        "Label": "Up",
        "LanguageCode": 1033,
        "IsManaged": false
      }
    ],
    "UserLocalizedLabel": {
      "@odata.type": "Microsoft.Dynamics.CRM.LocalizedLabel",
      "Label": "Up",
      "LanguageCode": 1033,
      "IsManaged": false
    }
  },
  "MergeLabels": true
}

Antwort:

HTTP/1.1 204 NoContent
OData-Version: 4.0

Anordnen von Optionen

Das folgende Beispiel zeigt, wie Sie Optionen in einer lokalen Option neu anordnen, die mithilfe der OrderOption-Aktion festgelegt ist. Die Eigenschaft Value enthält die Werte der Option in der gewünschten Reihenfolge.

Wenn Sie diese Aktion mit einem globalen Optionssatz verwenden möchten, geben Sie den OptionSetName Parameter anstelle von EntityLogicalName und .AttributeLogicalName

Verwenden Sie den SolutionUniqueName Parameter, um die Änderungen als Teil der angegebenen Lösung anzuwenden.

Anforderung:

POST [Organization Uri]/api/data/v9.2/OrderOption
OData-MaxVersion: 4.0
OData-Version: 4.0
If-None-Match: null
Accept: application/json
Content-Type: application/json; charset=utf-8
Content-Length: 253

{
  "EntityLogicalName": "sample_bankaccount",
  "AttributeLogicalName": "sample_choice",
  "Values": [
    727000002,
    727000000,
    727000003,
    727000001,
    727000005,
    727000004
  ],
  "SolutionUniqueName": "examplesolution"
}

Antwort:

HTTP/1.1 204 NoContent
OData-Version: 4.0

Option „Löschen“

Das folgende Beispiel zeigt, wie Sie eine Option in einer lokalen Auswahlspalte mithilfe der DeleteOptionValue-Aktion löschen.

Wenn Sie diese Aktion mit einem globalen Optionssatz verwenden möchten, geben Sie den OptionSetName Parameter anstelle von EntityLogicalName und .AttributeLogicalName

Verwenden Sie den SolutionUniqueName Parameter, um die Änderungen als Teil der angegebenen Lösung anzuwenden.

Anforderung:

POST [Organization Uri]/api/data/v9.2/DeleteOptionValue
OData-MaxVersion: 4.0
OData-Version: 4.0
If-None-Match: null
Accept: application/json
Content-Type: application/json; charset=utf-8
Content-Length: 116

{
  "AttributeLogicalName": "sample_choice",
  "EntityLogicalName": "sample_bankaccount",
  "Value": 727000004
}

Antwort:

HTTP/1.1 204 NoContent
OData-Version: 4.0

Statuswert einfügen

Das folgende Beispiel zeigt, wie Sie einer Statusspalte mithilfe der InsertStatusValue-Aktion eine Option hinzufügen.

Verwenden Sie den Parameter StateCode, um anzugeben, für welche StateCode-Option der Statuswert gilt. Der Parameter SolutionUniqueName wendet die Änderungen als Teil der angegebenen Lösung an.

Die Eigenschaft NewOptionValue, die vom InsertStatusValueResponse ComplexType zurückgegeben wird, enthält den der Option zugewiesenen Wert.

Anforderung:

POST [Organization Uri]/api/data/v9.2/InsertStatusValue
OData-MaxVersion: 4.0
OData-Version: 4.0
If-None-Match: null
Accept: application/json
Content-Type: application/json; charset=utf-8
Content-Length: 609

{
  "AttributeLogicalName": "statuscode",
  "EntityLogicalName": "sample_bankaccount",
  "Label": {
    "@odata.type": "Microsoft.Dynamics.CRM.Label",
    "LocalizedLabels": [
      {
        "@odata.type": "Microsoft.Dynamics.CRM.LocalizedLabel",
        "Label": "Frozen",
        "LanguageCode": 1033,
        "IsManaged": false
      }
    ],
    "UserLocalizedLabel": {
      "@odata.type": "Microsoft.Dynamics.CRM.LocalizedLabel",
      "Label": "Frozen",
      "LanguageCode": 1033,
      "IsManaged": false
    }
  },
  "StateCode": 1,
  "SolutionUniqueName": "examplesolution"
}

Antwort:

HTTP/1.1 200 OK
OData-Version: 4.0

{
  "@odata.context": "[Organization Uri]/api/data/v9.2/$metadata#Microsoft.Dynamics.CRM.InsertStatusValueResponse",
  "NewOptionValue": 727000000
}

Siehe auch

Passen Sie die Auswahl an
Erstellen und Bearbeiten globaler Auswahlmöglichkeiten – Übersicht
Eine Auswahl erstellen