Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Anpasser können eine Auswahlspalte definieren, die die Auswahl mehrerer Optionen ermöglicht. In diesem Artikel wird erläutert, wie Sie Auswahlspalten mithilfe der Web-API und des SDK für .NET festlegen, abfragen und erstellen. Die MultiSelectPicklistAttributeMetadata Klasse definiert einen Spaltentyp, der von der EnumAttributeMetadata Klasse erbt. Genau wie die PicklistAttributeMetadata Klasse enthält diese Spalte eine OptionSetMetadata.Options-Eigenschaft , die die gültigen Optionen für die Spalte enthält. Der Unterschied besteht darin, dass die Werte, die Sie erhalten oder einstellen, ein OptionSetValueCollection-Typ sind, der ein Array von ganzen Zahlen enthält, die für die ausgewählten Optionen stehen. Formatierte Werte für diese Spalte sind eine durch Semikolons getrennte Zeichenfolge, die die Beschriftungen der ausgewählten Optionen enthält.
Mit der Web-API definieren Sie diese Spalte mithilfe des MultiSelectPicklistAttributeMetadata-Entitätstyps.
Genau wie auswahlspalten gibt es technisch keine Obergrenze für die Anzahl der Optionen, die Sie definieren können. Berücksichtigen Sie Benutzerfreundlichkeitsaspekte als begrenzenden Faktor. Sie können jedoch nur 150 Optionen für eine einzelne Spalte auswählen. Außerdem können Sie keinen Standardwert festlegen.
Werte der Auswahllistenspalte festlegen
Die folgenden Beispiele zeigen, wie Sie Auswahlwerte für eine Spalte sample_outdooractivities festlegen, die Sie der contact Tabelle hinzufügen.
Legen Sie mithilfe der Web-API die Werte fest, indem Sie eine Zeichenfolge übergeben, die durch Kommas getrennte Zahlenwerte enthält:
Anforderung:
POST [organization uri]/api/data/v9.2/contacts 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.contact",
"firstname": "Wayne",
"lastname": "Yarborough",
"sample_outdooractivities": "1, 9"
}
Antwort:
HTTP/1.1 204 No Content
OData-Version: 4.0
OData-EntityId: [organization uri]/api/data/v9.2/contacts(00aa00aa-bb11-cc22-dd33-44ee44ee44ee)
Daten aus Auswahllisten-Spalten abfragen
Zwei Bedingungsoperatoren unterstützen das Abfragen von Werten in Auswahlmöglichkeiten:
| Web-API | FetchXml | ConditionOperator |
|---|---|---|
| ContainValues | contain-values |
ContainValues |
| DoesNotContainValues | not-contain-values |
DoesNotContainValues |
Hinweis
Diese Operatoren hängen von der Volltextindizierung ab, die auf die Datenbanktabellen angewendet werden soll, in denen die mehrere Werte gespeichert werden. Es gibt eine Latenz, nachdem neue Datensätze erstellt wurden und der Volltextindex wirksam wird. Möglicherweise müssen Sie mehrere Sekunden warten, nachdem neue Datensätze erstellt wurden, bevor Filter mit diesen Operatoren die Werte auswerten können.
Andere vorhandene Bedingungsoperatoren, die mit diesem Spaltentyp verwendet werden können, umfassen Folgendes:
| Web-API | FetchXml | ConditionOperator |
|---|---|---|
eq |
eq |
Equal |
ne |
neq |
NotEqual |
not null |
not-null |
NotNull |
eq null |
null |
Null |
| In | in |
In |
| NotIn | not-in |
NotIn |
Die folgenden Beispiele zeigen die Verwendung der ContainValues und DoesNotContainValues Operatoren gegen die folgende Datenmenge auf der Auswahlspalte namens sample_outdooractivities auf der contact Tabelle.
Auswahlwerte sample_outdooractivities
| Wert | Etikett |
|---|---|
| 1 | Schwimmen |
| 2 | Wandern |
| 3 | Bergsteigen |
| 4 | Angeln |
| 5 | Hunting |
| 6 | Laufen |
| 7 | Bootfahren |
| 8 | Skifahren |
| 9 | Camping |
Siehe Erstellen von Auswahlspalten mit Code für Beispielcode zum Erstellen dieser Spalte.
Werte der Kontakttabelle
fullname |
sample_outdooractivities |
|---|---|
| Wayne Yarborough | 1, 9 |
| Monte Orton | 2 |
| Randale Maple | 4 |
| Hiram Mundy | 2, 3, 8, 9 |
| Barbara Weber | 1,4,7 |
| Georgette Sullivan | 4, 5, 9 |
| Verna Kennedy | 2, 4, 9 |
| Marvin Bracken | 1, 2, 8, 9 |
In diesem Beispiel wird gezeigt, wie Sie die ContainValues Abfragefunktion verwenden, um alle Kontakte zurückzugeben, die gern wandern. Die Antwort enthält den Text der Optionen als Anmerkungen aufgrund der angewendeten odata.include-annotations="OData.Community.Display.V1.FormattedValue" Präferenz.
Anforderung:
GET [organization uri]/api/data/v9.2/contacts?$select=fullname,sample_outdooractivities&$filter=Microsoft.Dynamics.CRM.ContainValues(PropertyName='sample_outdooractivities',PropertyValues=%5B'2'%5D) HTTP/1.1
Accept: application/json
Content-Type: application/json; charset=utf-8
OData-MaxVersion: 4.0
OData-Version: 4.0
Prefer: odata.include-annotations="OData.Community.Display.V1.FormattedValue"
Antwort:
HTTP/1.1 200 OK
Content-Type: application/json; odata.metadata=minimal
OData-Version: 4.0
Preference-Applied: odata.include-annotations="OData.Community.Display.V1.FormattedValue"
Content-Length: 1092
{
"@odata.context": "[organization uri]/api/data/v9.2/$metadata#contacts(fullname,sample_outdooractivities)",
"value": [{
"@odata.etag": "W/\"529811\"",
"fullname": "Monte Orton",
"sample_outdooractivities@OData.Community.Display.V1.FormattedValue": "Hiking",
"sample_outdooractivities": "2",
"contactid": "cdbcc48e-0b8d-e711-811c-000d3a75bdf1"
}, {
"@odata.etag": "W/\"529823\"",
"fullname": "Hiram Mundy",
"sample_outdooractivities@OData.Community.Display.V1.FormattedValue": "Hiking; Mountain Climbing; Skiing; Camping",
"sample_outdooractivities": "2,3,8,9",
"contactid": "d7bcc48e-0b8d-e711-811c-000d3a75bdf1"
}, {
"@odata.etag": "W/\"529838\"",
"fullname": "Verna Kennedy",
"sample_outdooractivities@OData.Community.Display.V1.FormattedValue": "Hiking; Fishing; Camping",
"sample_outdooractivities": "2,4,9",
"contactid": "e6bcc48e-0b8d-e711-811c-000d3a75bdf1"
}, {
"@odata.etag": "W/\"529843\"",
"fullname": "Marvin Bracken",
"sample_outdooractivities@OData.Community.Display.V1.FormattedValue": "Swimming; Hiking; Skiing; Camping",
"sample_outdooractivities": "1,2,8,9",
"contactid": "ebbcc48e-0b8d-e711-811c-000d3a75bdf1"
}]
}
Beispielcode mit FetchXml
Der folgende Code zeigt die Verwendung von FetchXml mit Web-API und SDK für .NET.
In diesem Beispiel wird die Verwendung des not-contain-values Operators in der folgenden FetchXml Abfrage mithilfe der Web-API veranschaulicht.
<fetch>
<entity name='contact'>
<attribute name='fullname' />
<attribute name='sample_outdooractivities' />
<filter type='and'>
<condition attribute='sample_outdooractivities' operator='not-contain-values'>
<value>2</value>
</condition>
</filter>
</entity>
</fetch>
Anforderung:
GET [organization uri]/api/data/v9.2/contacts?fetchXml=%253Cfetch%2520distinct%253D'false'%2520no-lock%253D'false'%2520mapping%253D'logical'%253E%253Centity%2520name%253D'contact'%253E%253Cattribute%2520name%253D'fullname'%2520%252F%253E%253Cattribute%2520name%253D'sample_outdooractivities'%2520%252F%253E%253Cfilter%2520type%253D'and'%253E%253Ccondition%2520attribute%253D'sample_outdooractivities'%2520operator%253D'not-contain-values'%253E%253Cvalue%253E2%253C%252Fvalue%253E%253C%252Fcondition%253E%253C%252Ffilter%253E%253C%252Fentity%253E%253C%252Ffetch%253E HTTP/1.1
Accept: application/json
Content-Type: application/json; charset=utf-8
OData-MaxVersion: 4.0
OData-Version: 4.0
Prefer: odata.include-annotations="OData.Community.Display.V1.FormattedValue"
Antwort:
HTTP/1.1 200 OK
Content-Type: application/json; odata.metadata=minimal
OData-Version: 4.0
Preference-Applied: odata.include-annotations="OData.Community.Display.V1.FormattedValue"
{
"@odata.context": "[organization uri]/api/data/v9.2/$metadata#contacts(fullname,sample_outdooractivities,contactid)",
"value": [{
"@odata.etag": "W/\"529806\"",
"fullname": "Wayne Yarborough",
"sample_outdooractivities@OData.Community.Display.V1.FormattedValue": "Swimming; Camping",
"sample_outdooractivities": "1,9",
"contactid": "c8bcc48e-0b8d-e711-811c-000d3a75bdf1"
}, {
"@odata.etag": "W/\"529816\"",
"fullname": "Randal Maple",
"sample_outdooractivities@OData.Community.Display.V1.FormattedValue": "Fishing",
"sample_outdooractivities": "4",
"contactid": "d2bcc48e-0b8d-e711-811c-000d3a75bdf1"
}, {
"@odata.etag": "W/\"529828\"",
"fullname": "Barbara Weber",
"sample_outdooractivities@OData.Community.Display.V1.FormattedValue": "Swimming; Fishing; Boating",
"sample_outdooractivities": "1,4,7",
"contactid": "dcbcc48e-0b8d-e711-811c-000d3a75bdf1"
}, {
"@odata.etag": "W/\"529833\"",
"fullname": "Georgette Sullivan",
"sample_outdooractivities@OData.Community.Display.V1.FormattedValue": "Fishing; Hunting; Camping",
"sample_outdooractivities": "4,5,9",
"contactid": "e1bcc48e-0b8d-e711-811c-000d3a75bdf1"
}]
}
Erstellen von Auswahlspalten mit Code
Die einfachste Möglichkeit zum Erstellen von Auswahlmöglichkeiten besteht darin, den Spalten-Editor in den Anpassungstools zu verwenden. Erfahren Sie, wie Sie Spalten erstellen und bearbeiten.
Wenn Sie die Erstellung dieser Art von Spalte automatisieren müssen, verwenden Sie die folgenden Beispiele mit der Web-API oder dem SDK für .NET. Beide Beispiele erstellen eine Auswahlspalte für Outdoor-Aktivitäten in der contact Tabelle.
Erfahren Sie mehr über das Erstellen von Spalten.
Sendet eine POST Anforderung mit MultiSelectPicklistAttributeMetadata-Entitätstypnutzlast an die /Attributes Auflistung der contact Tabelle, um eine Spalte als Teil einer Lösung mit dem eindeutigen Namen mySampleSolutionUniqueNamezu erstellen.
Erfahren Sie, wie Sie eine Lösungskomponente einer Lösung zuordnen
Anforderung:
POST [organization uri]/api/data/v9.2/EntityDefinitions(LogicalName='contact')/Attributes HTTP/1.1
Accept: application/json
MSCRM.SolutionUniqueName: mySampleSolutionUniqueName
Content-Type: application/json; charset=utf-8
OData-MaxVersion: 4.0
OData-Version: 4.0
{
"@odata.type": "Microsoft.Dynamics.CRM.MultiSelectPicklistAttributeMetadata",
"SchemaName": "sample_OutdoorActivities",
"DisplayName": {
"LocalizedLabels": [
{
"Label": "Outdoor activities",
"LanguageCode": 1033
}
]
},
"RequiredLevel": {
"Value": "None"
},
"Description": {
"LocalizedLabels": [
{
"Label": "Outdoor activities that the contact likes.",
"LanguageCode": 1033
}
]
},
"OptionSet": {
"IsGlobal": false,
"OptionSetType": "Picklist",
"Options": [
{
"Value": 1,
"Label": {
"LocalizedLabels": [
{ "Label": "Swimming", "LanguageCode": 1033 }
]
}
},
{
"Value": 2,
"Label": {
"LocalizedLabels": [
{ "Label": "Hiking", "LanguageCode": 1033 }
]
}
},
{
"Value": 3,
"Label": {
"LocalizedLabels": [
{ "Label": "Mountain Climbing", "LanguageCode": 1033 }
]
}
},
{
"Value": 4,
"Label": {
"LocalizedLabels": [
{ "Label": "Fishing", "LanguageCode": 1033 }
]
}
},
{
"Value": 5,
"Label": {
"LocalizedLabels": [
{ "Label": "Hunting", "LanguageCode": 1033 }
]
}
},
{
"Value": 6,
"Label": {
"LocalizedLabels": [
{ "Label": "Running", "LanguageCode": 1033 }
]
}
},
{
"Value": 7,
"Label": {
"LocalizedLabels": [
{ "Label": "Boating", "LanguageCode": 1033 }
]
}
},
{
"Value": 8,
"Label": {
"LocalizedLabels": [
{ "Label": "Skiing", "LanguageCode": 1033 }
]
}
},
{
"Value": 9,
"Label": {
"LocalizedLabels": [
{ "Label": "Camping", "LanguageCode": 1033 }
]
}
}
]
}
}
Antwort:
HTTP/1.1 204 No Content
OData-Version: 4.0
OData-EntityId: [organization uri]/api/data/v9.2/EntityDefinitions(LogicalName='contact')/Attributes(00aa00aa-bb11-cc22-dd33-44ee44ee44ee)
Siehe auch
Spaltendefinitionen
Erstellen einer Tabellenzeile mithilfe der Web-API
Datenabfrage mit Web-API
Arbeiten mit Spaltendefinitionen
Beispiel: Arbeiten mit Spaltendefinitionen