Crear y actualizar selecciones (conjuntos de opciones) mediante la API web
Normalmente, usa los conjuntos de opciones global para establecer columnas de tabla de modo que diferentes columnas puedan compartir el mismo conjunto de opciones, que se mantienen en una ubicación. A diferencia de los conjuntos de opciones local que se definen solo para una columna específica, puede reutilizar conjuntos de opciones globales. Estos valores también se usan en los parámetros de solicitudes de manera similar a una enumeración.
Nota
Solo puede cambiar un conjunto de opciones administrado existente si es el editor. Para realizar un cambio, como la opción de cambio de nombre o la opción de eliminación, en estos conjuntos de opciones, se debe realizar una actualización a la solución que agregó el conjunto de opciones. Más información: Actualizar una solución
Cuando define un conjunto de opciones global mediante una solicitud POST
en [URI de organización]/api/data/v9.2/GlobalOptionSetDefinitions
, se recomienda dejar 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 se definan en entornos donde está instalada la solución administrada. Para obtener más información, consulte Combinar opciones del conjunto de opciones.
Mensajes
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>') . |
La siguiente tabla enumera los mensajes que se pueden usar con los conjuntos de opciones globales y locales.
Publicación | Operación de API web |
---|---|
DeleteOptionValue Elimina uno de los valores de un conjunto de opciones globales. |
Acción DeleteOptionValue Ejemplo: Opción de eliminación |
InsertOptionValue Inserta una opción en un conjunto de opciones globales. |
Acción InsertOptionValue Ejemplo: Opciones de inserción |
InsertStatusValue Inserta 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 |
OrderOption Cambia 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. |
UpdateOptionValue Actualiza una opción de un conjunto de opciones. |
Acción UpdateOptionValue Ejemplo: Opciones de actualización |
UpdateStateValue Inserta una nueva opción en el conjunto de opciones usado en la columna Status . |
Acción UpdateStateValue |
Ejemplos
- Creación de un conjunto de opciones global
- Cree una columna de elección usando 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 con 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(1d733907-4d05-ee11-8f6e-000d3a993550)
Cree una columna de elección usando un conjunto de opciones global
El siguiente ejemplo usará estas propiedades para crear una columna de elección usando 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 |
Esta propiedad de navegación de un solo valor debe establecerse utilizando la sintaxis @odata.bind 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') |
El siguiente ejemplo crea una columna local usando las propiedades y la agrega a la tabla sample_bankaccount
.
El URI para el atributo se devuelve en la respuesta.
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(1d733907-4d05-ee11-8f6e-000d3a993550)",
"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(25733907-4d05-ee11-8f6e-000d3a993550)
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 opciones individuales, debe usar la acción Actualizar valor de opción. El siguiente ejemplo actualiza TrueOption
del ejemplo de columna booleana en Crear una columna booleana y cambia la etiqueta para que sea Up
en lugar de True
. Debido a que este es un conjunto de opciones 'local', 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
Este ejemplo siguiente muestra cómo reordenar las opciones en un conjunto de opciones local con la acción OrderOption. La propiedad Value
contiene los valores de la opción en el orden deseado.
Para usar esto con un conjunto de opciones global, especifique el parámetro OptionSetName
en lugar de EntityLogicalName
y AttributeLogicalName
.
El parámetro SolutionUniqueName
aplica 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
Opción Eliminar
El siguiente ejemplo muestra cómo eliminar una opción para una columna de opción local mediante la acción DeleteOptionValue.
Para usar esto con un conjunto de opciones global, especifique el parámetro OptionSetName
en lugar de EntityLogicalName
y AttributeLogicalName
.
El parámetro SolutionUniqueName
aplica 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
El siguiente ejemplo muestra cómo agregar una opción para una columna de estado mediante la acción InsertStatusValue.
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
Nota
¿Puede indicarnos sus preferencias de idioma de documentación? Realice una breve encuesta. (tenga en cuenta que esta encuesta está en inglés)
La encuesta durará unos siete minutos. No se recopilan datos personales (declaración de privacidad).