Compartir a través de


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).