Columnas Seleccionar que utilizan OData
Importante
Cuando consulta datos, es importante limitar la cantidad de datos devueltos para optimizar el rendimiento. Solo seleccione las columnas con datos que necesita.
Utilice la $select
opción de consulta para elegir qué columnas devolver con su consulta. En OData, cada columna se representa como una propiedad ·. Si no incluye una opción de consulta $select
, se devuelven todas las propiedades.
El siguiente ejemplo solicita las propiedades name
y revenue
de la primera fila del recurso accounts
EntitySet:
Solicitud:
GET [Organization URI]/api/data/v9.2/accounts?$select=name,revenue&$top=1
Accept: application/json
OData-MaxVersion: 4.0
OData-Version: 4.0
Respuesta:
HTTP/1.1 200 OK
Content-Type: application/json; odata.metadata=minimal
OData-Version: 4.0
{
"@odata.context": "[Organization URI]/api/data/v9.2/$metadata#accounts(name,revenue)",
"value": [
{
"@odata.etag": "W/\"81052965\"",
"name": "Litware, Inc. (sample)",
"revenue": 20000.0000,
"_transactioncurrencyid_value": "228f42f8-e646-e111-8eb7-78e7d162ced1",
"accountid": "4624eff7-53d3-ed11-a7c7-000d3a993550"
}
]
}
La propiedad de la clave principal siempre se devuelve, por lo que no necesita incluirla en su $select
. En este ejemplo, accountid
ees la clave principal.
También se pueden incluir otros valores de propiedad en respuesta. En este caso, la propiedad de búsqueda _transactioncurrencyid_value
para la referencia de entidad/tabla Moneda (TransactionCurrency) relacionada se incluye porque es una propiedad de moneda. revenue
¿Qué propiedades están disponibles?
Todas las propiedades disponibles para una entidad se encuentran en el documento de servicio $metadata. Más información: Propiedades de la API web
Los tipos de entidad incluidos con Dataverse se describen en Web API Entity Type Reference.
Sugerencia
La forma más fácil de descubrir rápidamente qué propiedades están disponibles es enviar una solicitud mediante la opción de consulta $top
con un valor de 1
sin utilizar $select
.
Valores con formato
Los valores con formato son valores de cadena generados en el servidor que puede usar en su aplicación. Los valores con formato incluyen:
- Las etiquetas localizadas para las columnas elección, opciones, sí/no, estado y razón para el estado
- El valor de nombre principal para las propiedades de búsqueda y propietario
- Valores de moneda con símbolos de moneda
- Valores de fecha con formato en la zona horaria del usuario
Para incluir valores formateados en sus resultados, utilice el encabezado de solicitud Preferir para enviar la preferencia odata.include-annotations ... ...
Prefer: odata.include-annotations="OData.Community.Display.V1.FormattedValue"
Los valores con formato son una de varias anotaciones que puede solicitar. Utilice Prefer: odata.include-annotations="*"
para incluir todas las anotaciones. Más información: Solicitar anotaciones
El valor con formato se devuelve con el registro con una anotación que sigue esta convención:
<property name>@OData.Community.Display.V1.FormattedValue
Por ejemplo:
Solicitud:
GET [Organization URI]/api/data/v9.2/accounts?$select=name,revenue,_primarycontactid_value,customertypecode,modifiedon
&$top=1
Accept: application/json
OData-MaxVersion: 4.0
OData-Version: 4.0
Prefer: odata.include-annotations="OData.Community.Display.V1.FormattedValue"
La siguiente tabla describe los valores y los valores con formato que se devuelven para las propiedades solicitadas.
Property | valor | Valor con formato |
---|---|---|
name |
Litware, Inc. (sample) |
None |
revenue |
20000.0000 |
$20,000.00 |
_primarycontactid_value |
70bf4d48-34cb-ed11-b596-0022481d68cd |
Susanna Stubberod (sample) |
customertypecode |
1 |
Competitor |
modifiedon |
2023-04-07T21:59:01Z |
4/7/2023 2:59 PM |
_transactioncurrencyid_value |
228f42f8-e646-e111-8eb7-78e7d162ced1 |
US Dollar |
accountid |
78914942-34cb-ed11-b596-0022481d68cd |
None |
Respuesta:
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#accounts(name,revenue)",
"value": [
{
"@odata.etag": "W/\"81359849\"",
"name": "Litware, Inc. (sample)",
"revenue@OData.Community.Display.V1.FormattedValue": "$20,000.00",
"revenue": 20000.0000,
"_primarycontactid_value@OData.Community.Display.V1.FormattedValue": "Susanna Stubberod (sample)",
"_primarycontactid_value": "70bf4d48-34cb-ed11-b596-0022481d68cd",
"customertypecode@OData.Community.Display.V1.FormattedValue": "Competitor",
"customertypecode": 1,
"modifiedon@OData.Community.Display.V1.FormattedValue": "4/7/2023 2:59 PM",
"modifiedon": "2023-04-07T21:59:01Z",
"_transactioncurrencyid_value@OData.Community.Display.V1.FormattedValue": "US Dollar",
"_transactioncurrencyid_value": "228f42f8-e646-e111-8eb7-78e7d162ced1",
"accountid": "78914942-34cb-ed11-b596-0022481d68cd"
}
]
}
Datos de propiedades de búsqueda
Cuando una propiedad de búsqueda representa una relación multitabla o polimórfica, es necesario solicitar anotaciones específicas para determinar qué tabla contiene los datos relacionados.
Por ejemplo, muchas tablas tienen registros que pueden ser propiedad de usuarios o equipos. Los datos de propiedad se almacenan en una columna de búsqueda denominada ownerid
. Esta columna es una propiedad de navegación de un solo valor en OData. Podría usar $expand
para crear una combinación para obtener este valor, pero no puede usar $select
. Sin embargo, puede utilizar $select
para obtener la _ownerid_value
propiedad de búsqueda correspondiente.
Cuando incluyes la propiedad de búsqueda _ownerid_value
con su $select
, devuelve un valor GUID. Este valor no indica si el propietario del registro es un usuario o un equipo. Debe solicitar anotaciones para obtener estos datos.
Para incluir estas anotaciones en sus resultados, utilice el encabezado de solicitud Preferir para enviar la preferencia odata.include-annotations con estas configuraciones: ... ...
Prefer: odata.include-annotations="Microsoft.Dynamics.CRM.associatednavigationproperty,Microsoft.Dynamics.CRM.lookuplogicalname"
Sugerencia
O puede usar Prefer: odata.include-annotations="*"
para incluir todas las anotaciones. Más información: Solicitar anotaciones
Solicitud:
GET [Organization URI]/api/data/v9.2/accounts?$select=name,_ownerid_value&$top=2
Accept: application/json
OData-MaxVersion: 4.0
OData-Version: 4.0
Prefer: odata.include-annotations="Microsoft.Dynamics.CRM.associatednavigationproperty,Microsoft.Dynamics.CRM.lookuplogicalname"
La siguiente respuesta devuelve dos registros de cuenta diferentes. El anotación te dice que a es dueño del primero y a es dueño del segundo. _ownerid_value@Microsoft.Dynamics.CRM.lookuplogicalname
team
systemuser
Respuesta:
HTTP/1.1 200 OK
Content-Type: application/json; odata.metadata=minimal
OData-Version: 4.0
Preference-Applied: odata.include-annotations="Microsoft.Dynamics.CRM.associatednavigationproperty,Microsoft.Dynamics.CRM.lookuplogicalname"
{
"@odata.context": "[Organization URI]/api/data/v9.2/$metadata#accounts(name,_ownerid_value)",
"value": [
{
"@odata.etag": "W/\"81550512\"",
"name": "Adventure Works (sample)",
"_ownerid_value@Microsoft.Dynamics.CRM.associatednavigationproperty": "ownerid",
"_ownerid_value@Microsoft.Dynamics.CRM.lookuplogicalname": "team",
"_ownerid_value": "39e0dbe4-131b-e111-ba7e-78e7d1620f5e",
"accountid": "1adef0b8-54d3-ed11-a7c7-000d3a993550"
},
{
"@odata.etag": "W/\"81359849\"",
"name": "Litware, Inc. (sample)",
"_ownerid_value@Microsoft.Dynamics.CRM.associatednavigationproperty": "ownerid",
"_ownerid_value@Microsoft.Dynamics.CRM.lookuplogicalname": "systemuser",
"_ownerid_value": "4026be43-6b69-e111-8f65-78e7d1620f5e",
"accountid": "78914942-34cb-ed11-b596-0022481d68cd"
}
]
}
<lookup property name>@Microsoft.Dynamics.CRM.lookuplogicalname
es el nombre lógico de la tabla relacionada.<lookup property name>@Microsoft.Dynamics.CRM.associatednavigationproperty
es el nombre de la propiedad de navegación de un solo valor correspondiente. Puede utilizar$expand
utilizando este valor en otra solicitud para obtener más datos del registro relacionado.
Alias de columna
Para la API web, use fetchxml para especificar alias personalizados para las columnas.
Actualmente no hay forma de especificar alias de columnas usando la API web usando OData. Dataverse OData 4.0 no incluye la opción de consulta del sistema $compute introducida en OData 4.01, que se requiere para proporcionar esta capacidad. ...
Pasos siguientes
Más información sobre cómo unir tablas.
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).