Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Cet article explique comment créer et mettre à jour des choix Microsoft Dataverse (ensembles d’options) à l’aide de l’API Web, afin de conserver des valeurs d’option cohérentes entre les colonnes de table. Utilisez des choix globaux lorsque plusieurs colonnes ont besoin des mêmes options et utilisez des choix locaux pour une colonne spécifique.
Nonte
Vous ne pouvez modifier qu’un jeu d’options managées existant si vous êtes l’éditeur. Pour renommer ou supprimer une option dans ces jeux d’options, vous devez mettre à niveau la solution qui a ajouté le jeu d’options. Pour plus d’informations, consultez Mettre à niveau ou mettre à jour une solution.
Lorsque vous définissez une option globale définie à l’aide d’une POST requête sur [URI de l’organisation],/api/data/v9.2/GlobalOptionSetDefinitions nous vous recommandons de laisser le système attribuer une valeur. Laissez le système attribuer la valeur en transmettant une valeur null lorsque vous créez l’instance OptionMetadata. Lorsque vous définissez une option, elle contient un préfixe de valeur d’option spécifique au contexte du groupe d’éditeurs pour la solution dans laquelle le groupe d’options est créé.
Ce préfixe permet de réduire le risque de création d’ensembles d’options en double pour une solution managée, et dans tous les ensembles d’options que vous définissez dans les environnements où votre solution managée est installée. Pour plus d’informations, voir Fusionner les options d’un groupe d’options.
Opérations d’API web pour les choix
Le tableau suivant répertorie les messages que vous pouvez utiliser avec les groupes d’options globaux.
| Message | Opération de l’API Web |
|---|---|
CreateOptionSet |
Utilisez la demande POST sur [URI de l’organisation]/api/data/v9.2/GlobalOptionSetDefinitions. |
DeleteOptionSet |
Utilisez la demande DELETE sur [URI de l’organisation]/api/data/v9.2/GlobalOptionSetDefinitions(Name='<name>'). |
RetrieveAllOptionSets |
Utilisez la demande GET sur [URI de l’organisation]/api/data/v9.2/GlobalOptionSetDefinitions. |
RetrieveOptionSet |
Utilisez la demande GET sur [URI de l’organisation]/api/data/v9.2/GlobalOptionSetDefinitions(Name='<name>'). |
Le tableau suivant répertorie les messages que vous pouvez utiliser avec des ensembles d’options locaux et globaux.
| Message | Opération de l’API Web |
|---|---|
DeleteOptionValueSupprime une des valeurs dans un groupe d’options global. |
Action DeleteOptionValue Exemple : Option Supprimer |
InsertOptionValueInsère une nouvelle option dans un groupe d’options global. |
Action InsertOptionValue Exemple : Options Insérer |
InsertStatusValueInsère une nouvelle option dans le groupe d’options global utilisé dans la colonne Status. |
Action InsertStatusValue Exemple : Valeur du statut Insérer |
OrderOptionModifie l’ordre relatif des options dans un groupe d’options. |
Action OrderOption Exemple : Options d’ordre |
UpdateOptionSet |
Utilisez la demande PUT avec un OptionSetMetadataBase EntityType vers [URI de l’organisation]/api/data/v9.2/GlobalOptionSetDefinitions(metadataid)Seules les propriétés définies par OptionSetMetadataBase peuvent être mises à jour. Ces propriétés n’incluent pas les options. Utilisez d’autres actions pour modifier les options. |
UpdateOptionValueMet à jour une option dans un groupe d’options. |
Action UpdateOptionValue Exemple : Options Mettre à jour |
UpdateStateValueInsère une nouvelle option dans le groupe d’options utilisé dans la colonne Status. |
Action UpdateStateValue |
Exemples d’API web pour les choix
- Créer un groupe d’options général
- Créer une colonne de choix à l’aide d’un ensemble d’options globales
- Options Insérer
- Options de mise à jour
- Trier les options
- Option Supprimer
- Valeur de statut Insérer
Créer un groupe d’options général
L’exemple suivant utilise ces propriétés pour créer un choix global.
| Propriétés OptionSetMetadata | Valeurs |
|---|---|
Name |
sample_colors |
DisplayName |
Couleurs |
Description |
Choix de la couleur |
OptionSetType |
Picklist |
Options |
valeur : 727000000, étiquette : Rougevaleur : 727000001, étiquette :Jaunevaleur : 727000002, étiquette :Vert |
L’exemple suivant crée un choix global avec ces propriétés.
L’URI pour le choix global est renvoyée dans la réponse. Vous pouvez également faire référence à ce choix global à l’aide du nom : GlobalOptionSetDefinitions(Name='sample_colors').
Demande :
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"
}
Réponse :
HTTP/1.1 204 NoContent
OData-Version: 4.0
OData-EntityId: [Organization Uri]/api/data/v9.2/GlobalOptionSetDefinitions(00aa00aa-bb11-cc22-dd33-44ee44ee44ee)
Créer une colonne de choix à l’aide d’un ensemble d’options globales
L’exemple suivant utilise ces propriétés pour créer une colonne de choix à l’aide d’un choix global.
| Propriétés de l’attribut Liste de sélection | Valeurs |
|---|---|
SchemaName |
sample_Colors |
DisplayName |
Exemple de couleurs |
Description |
Attribut de liste de sélection global de couleurs |
RequiredLevel |
None |
GlobalOptionSet |
Définissez cette propriété de navigation à valeur unique à l’aide de la @odata.bind syntaxe avec une référence au choix global. Cet exemple utilise le MetadataId comme clé, mais il pourrait également utiliser le clé secondaire avec Name : GlobalOptionSetDefinitions(Name='sample_colors') |
L’exemple suivant crée une colonne locale à l’aide des propriétés et l’ajoute à la sample_bankaccount table.
La réponse retourne l’URI de l’attribut.
Demande :
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"
}
Réponse :
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)
Options Insérer
L’exemple suivant utilise l’action InsertOptionValue pour ajouter une nouvelle option avec la valeur 727000005 et l’étiquette Echo à la colonne de choix locale créée par Créer une colonne de choix.
Demande :
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"
}
Réponse :
HTTP/1.1 200 OK
OData-Version: 4.0
{
"@odata.context": "[Organization Uri]/api/data/v9.2/$metadata#Microsoft.Dynamics.CRM.InsertOptionValueResponse",
"NewOptionValue": 727000005
}
Options de mise à jour
Pour mettre à jour des options individuelles, utilisez l’action UpdateOptionValue. L’exemple suivant met à jour l’exemple TrueOption de colonne booléenne dans Créer une colonne booléenne et modifie l’étiquette au Up lieu de True. Étant donné que cet ensemble d’options est local, l’exemple utilise AttributeLogicalName et EntityLogicalName. Pour un groupe d’options global, utilisez le paramètre OptionSetName à la place.
Demande :
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
}
Réponse :
HTTP/1.1 204 NoContent
OData-Version: 4.0
Trier les options
L’exemple suivant montre comment réorganiser les options dans une option locale définie à l’aide de l’action OrderOption. La propriété Value contient les valeurs de l’option dans l’ordre souhaité.
Pour utiliser cette action avec un ensemble d’options globales, spécifiez le OptionSetName paramètre au lieu de EntityLogicalName et AttributeLogicalName.
Utilisez le SolutionUniqueName paramètre pour appliquer les modifications dans le cadre de la solution spécifiée.
Demande :
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"
}
Réponse :
HTTP/1.1 204 NoContent
OData-Version: 4.0
Option Supprimer
L’exemple suivant montre comment supprimer une option dans une colonne de choix local à l’aide de l’action DeleteOptionValue.
Pour utiliser cette action avec un ensemble d’options globales, spécifiez le OptionSetName paramètre au lieu de EntityLogicalName et AttributeLogicalName.
Utilisez le SolutionUniqueName paramètre pour appliquer les modifications dans le cadre de la solution spécifiée.
Demande :
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
}
Réponse :
HTTP/1.1 204 NoContent
OData-Version: 4.0
Valeur de statut Insérer
L’exemple suivant montre comment ajouter une option à une colonne d’état à l’aide de l’action InsertStatusValue.
Utilisez le paramètre StateCode pour spécifier à quelle option de code d’état la valeur d’état s’applique. Le paramètre SolutionUniqueName applique les modifications dans le cadre de la solution spécifiée.
La propriété NewOptionValue renvoyée par InsertStatusValueResponse ComplexType contient la valeur attribuée à l’option.
Demande :
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"
}
Réponse :
HTTP/1.1 200 OK
OData-Version: 4.0
{
"@odata.context": "[Organization Uri]/api/data/v9.2/$metadata#Microsoft.Dynamics.CRM.InsertStatusValueResponse",
"NewOptionValue": 727000000
}
Voir aussi
Personnaliser les options
Présentation de la création et de la modification d’un choix global
Créer un choix