Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
En este artículo se explica cómo crear y actualizar opciones de Microsoft Dataverse (conjuntos de opciones) mediante la API web, por lo que puede mantener valores de opción coherentes entre columnas de tabla. Use opciones globales cuando varias columnas necesiten las mismas opciones y use opciones locales para una columna específica.
Nota
Solo puede cambiar un conjunto de opciones administradas existente si es el publicador. Para cambiar el nombre o eliminar una opción en estos conjuntos de opciones, debe actualizar la solución que agregó el conjunto de opciones. Para obtener más información, consulte Mejorar o actualizar una solución.
Al definir un conjunto de opciones globales mediante una POST solicitud a [URI de la organización],/api/data/v9.2/GlobalOptionSetDefinitions se recomienda permitir que el sistema asigne un valor. Deje que el sistema asigne el valor pasando un valor null cuando cree la nueva instancia OptionMetadata. Al definir una opción, contiene un determinada prefijo de valor de opción específico del contexto del editor establecido para la solución en la que se crea el conjunto de opciones.
Este prefijo ayuda a reducir la posibilidad de crear conjuntos de opciones duplicados para una solución administrada y, en cualquier conjunto de opciones que defina en entornos en los que está instalada la solución administrada. Para obtener más información, consulte Combinar opciones del conjunto de opciones.
Operaciones de API web para opciones
La siguiente tabla enumera los mensajes que se pueden usar con los conjuntos de opciones globales.
| Publicación | Operación de API web |
|---|---|
CreateOptionSet |
Use la solicitud POST para URI de organización/api/data/v9.2/GlobalOptionSetDefinitions. |
DeleteOptionSet |
Use la solicitud DELETE para URI de organización/api/data/v9.2/GlobalOptionSetDefinitions(Name='<name>'). |
RetrieveAllOptionSets |
Use la solicitud GET para URI de organización/api/data/v9.2/GlobalOptionSetDefinitions. |
RetrieveOptionSet |
Use la solicitud GET para URI de organización/api/data/v9.2/GlobalOptionSetDefinitions(Name='<name>'). |
En la tabla siguiente se enumeran los mensajes que puede usar con conjuntos de opciones locales y globales.
| Publicación | Operación de API web |
|---|---|
DeleteOptionValueElimina uno de los valores de un conjunto de opciones globales. |
Acción DeleteOptionValue Ejemplo: Opción de eliminación |
InsertOptionValueInserta una opción en un conjunto de opciones globales. |
Acción InsertOptionValue Ejemplo: Opciones de inserción |
InsertStatusValueInserta una nueva opción en el conjunto de opciones global usado en la columna Status. |
Acción InsertStatusValue Ejemplo: Insertar un nuevo valor de estado |
OrderOptionCambia el orden relativo de las opciones de un conjunto de opciones. |
Acción OrderOption Ejemplo: Opciones de pedido |
UpdateOptionSet |
Use la solicitud PUT con OptionSetMetadataBase EntityType para [Organization URI]/api/data/v9.2/GlobalOptionSetDefinitions(metadataid)Solo aquellas propiedades definidas por OptionSetMetadataBase se pueden actualizar. Estas propiedades no incluyen las opciones. Utilice otras acciones para realizar cambios en las opciones. |
UpdateOptionValueActualiza una opción de un conjunto de opciones. |
Acción UpdateOptionValue Ejemplo: Opciones de actualización |
UpdateStateValueInserta una nueva opción en el conjunto de opciones usado en la columna Status. |
Acción UpdateStateValue |
Ejemplos de API web para opciones
- Creación de un conjunto de opciones global
- Creación de una columna de elección mediante un conjunto de opciones global
- Insertar opciones
- Opciones de actualización
- Ordenar opciones
- Opción Eliminar
- Insertar valor de estado
Creación de un conjunto de opciones global
El siguiente ejemplo usará estas propiedades para crear una opción global.
| Propiedades de OptionSetMetadata | Valores |
|---|---|
Name |
sample_colors |
DisplayName |
Colores |
Description |
Opción de color |
OptionSetType |
Picklist |
Options |
valor:727000000, etiqueta:Rojovalor: 727000001, etiqueta:Amarillovalor: 727000002, etiqueta:Verde |
El siguiente ejemplo crea una opción global usando las propiedades.
El URI para la opción global se devuelve en la respuesta. También puede hacer referencia a esta opción global mediante el nombre : GlobalOptionSetDefinitions(Name='sample_colors').
Solicitud:
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"
}
Respuesta:
HTTP/1.1 204 NoContent
OData-Version: 4.0
OData-EntityId: [Organization Uri]/api/data/v9.2/GlobalOptionSetDefinitions(00aa00aa-bb11-cc22-dd33-44ee44ee44ee)
Creación de una columna de elección mediante un conjunto de opciones global
En el ejemplo siguiente se usan estas propiedades para crear una columna de elección mediante una opción global.
| Propiedades de atributo de lista de selección | Valores |
|---|---|
SchemaName |
sample_Colors |
DisplayName |
Colores de muestra |
Description |
Atributo de lista de selección global de colores |
RequiredLevel |
None |
GlobalOptionSet |
Establezca esta propiedad de navegación con un solo valor mediante la @odata.bind sintaxis con una referencia a la opción global. Este ejemplo usa MetadataId como clave, pero también podría usar clave alternativa con Name: GlobalOptionSetDefinitions(Name='sample_colors') |
En el ejemplo siguiente se crea una columna local mediante las propiedades y se agrega a la sample_bankaccount tabla.
La respuesta devuelve el URI del atributo .
Solicitud:
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"
}
Respuesta:
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)
Insertar opciones
El siguiente ejemplo usa la acción InsertOptionValue para agregar una nueva opción con el valor 727000005 y la etiqueta Echo a la columna de elección local creada por Cree una columna de elección.
Solicitud:
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"
}
Respuesta:
HTTP/1.1 200 OK
OData-Version: 4.0
{
"@odata.context": "[Organization Uri]/api/data/v9.2/$metadata#Microsoft.Dynamics.CRM.InsertOptionValueResponse",
"NewOptionValue": 727000005
}
Opciones de actualización
Para actualizar las opciones individuales, use la acción UpdateOptionValue. En el ejemplo siguiente se actualiza desde TrueOption el ejemplo de columna booleana en Creación de una columna booleana y se cambia la etiqueta a Up en lugar de True. Dado que este conjunto de opciones es local, en el ejemplo se usa AttributeLogicalName y EntityLogicalName. Para un conjunto de opciones globales, use el parámetro OptionSetName en su lugar.
Solicitud:
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
}
Respuesta:
HTTP/1.1 204 NoContent
OData-Version: 4.0
Ordenar opciones
En el ejemplo siguiente se muestra cómo reordenar las opciones en un conjunto de opciones locales mediante la acción OrderOption. La propiedad Value contiene los valores de la opción en el orden deseado.
Para usar esta acción con un conjunto de opciones global, especifique el OptionSetName parámetro en lugar de EntityLogicalName y AttributeLogicalName.
Use el SolutionUniqueName parámetro para aplicar los cambios como parte de la solución especificada.
Solicitud:
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"
}
Respuesta:
HTTP/1.1 204 NoContent
OData-Version: 4.0
Eliminar opción
En el ejemplo siguiente se muestra cómo eliminar una opción en una columna de opción local mediante la acción DeleteOptionValue.
Para usar esta acción con un conjunto de opciones global, especifique el OptionSetName parámetro en lugar de EntityLogicalName y AttributeLogicalName.
Use el SolutionUniqueName parámetro para aplicar los cambios como parte de la solución especificada.
Solicitud:
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
}
Respuesta:
HTTP/1.1 204 NoContent
OData-Version: 4.0
Insertar valor de estado
En el ejemplo siguiente se muestra cómo agregar una opción a una columna de estado mediante la acción InsertarStatusValue.
Utilice el parámetro StateCode para especificar a qué opción de código de estado se aplica el valor de estado. El parámetro SolutionUniqueName aplica los cambios como parte de la solución especificada.
La propiedad NewOptionValue devuelta por InsertStatusValueResponse ComplexType contiene el valor asignado a la opción.
Solicitud:
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"
}
Respuesta:
HTTP/1.1 200 OK
OData-Version: 4.0
{
"@odata.context": "[Organization Uri]/api/data/v9.2/$metadata#Microsoft.Dynamics.CRM.InsertStatusValueResponse",
"NewOptionValue": 727000000
}
Consulte también
Personalizar opciones
Información general para crear y editar opciones globales
Crear una opción