Opciones de la consulta del sistema OData mediante el extremo OData

 

Publicado: noviembre de 2016

Se aplica a: Dynamics CRM 2015

Puede refinar los resultados de la consulta con opciones de consulta del sistema. En la siguiente tabla se enumeran las opciones de cadena de consulta definidas en el protocolo OData que se implementan en el extremo OData para Microsoft Dynamics CRM 2015 y actualización de Microsoft Dynamics CRM Online 2015.

Opción

Descripción

$expand

Establece que los registros relacionados deben recuperarse en el registro o colección que se está recuperando.

$filter

Especifica una expresión o función que se debe evaluar en true para que se devuelva un registro de la colección.

$orderby

Determina qué valores se usan para ordenar una colección de registros.

$select

Especifica un subconjunto de propiedades para devolver.

$skip

Define el número de registros que se omiten antes de recuperar los registros de una colección.

$top

Determina el número máximo de registros que se devuelven.

$expand

Establece que los registros relacionados deben recuperarse en el registro o colección que se está recuperando.

Si desea recuperar los registros relacionados, busque el nombre de la relación entre entidades que define esta relación. Es posible que tenga que ver la información de la relación entre entidades en la aplicación para identificar correctamente la relación o el lenguaje de definición de esquema conceptual (CSDL) para el servicio de datos de la organización.

Por ejemplo, para recuperar los registros de oportunidad relacionados con cuentas, use la relación entre entidades opportunity_customer_accounts. La consulta /AccountSet?$expand=opportunity_customer_accounts devuelve los registros de oportunidad y los registros de cuenta.

Si está limitando las columnas devueltas, también deberá incluir el nombre de la propiedad de navegación en las consultas. Por ejemplo, la consulta /AccountSet?$select=Name,opportunity_customer_accounts&$expand=opportunity_customer_accounts devuelve solo el nombre de cuenta y los registros de oportunidad expandidos.

Microsoft Dynamics CRM 2015 y actualización de Microsoft Dynamics CRM Online 2015 no admite la consulta de una propiedad de relación multinivel. Por ejemplo, esta consulta, prevista para recuperar la información del usuario que posee oportunidades relacionadas con cuentas, no funcionará: /AccountSet?$expand=opportunity_customer_accounts/opportunity_owning_user.

De manera predeterminada, puede definir hasta seis relaciones para ampliación. Esta consulta, que expande las oportunidades y el usuario del sistema propietario de la cuenta, funciona: /AccountSet?$select=Name,opportunity_customer_accounts,user_accounts&$expand=opportunity_customer_accounts,user_accounts.

Nota

El número de registros relacionados devuelto está sujeto a la misma limitación en el número de registros devuelto. Para obtener más información, vea Limitaciones en el número de registros devueltos. Puede aumentar el número de relaciones que se expanden cambiando el valor de configuración ServerSettingsMaxExpandCount.

Más información:OData: opción filtro de consulta del sistema ($expand)

$filter

Especifica una expresión o función que se debe evaluar en true para que se devuelva un registro de la colección.

Si está recuperando conjuntos de datos adicionales mediante el vínculo next, no debe cambiar el valor de opción de la consulta $filter, ya que puede tener resultados imprevisibles.

La especificación OData para la opción de consulta del sistema de filtro describe los operadores usados para crear una expresión para evaluar en el filtro.Microsoft Dynamics 365 usa todos los operadores lógicos y un subconjunto de las funciones disponibles, pero no admite el uso de los operadores aritméticos. Los filtros pueden usar condiciones agrupadas indicadas por paréntesis. Las comparaciones de valores de tiempo deben usar el siguiente formato: datetime’<time value>’, por ejemplo, datetime'2010-07-15' o datetime'2010-07-15T16:19:54Z'.

En la tabla siguiente se muestran los operadores que se admiten en Microsoft Dynamics 365.

Operador

Descripción

Ejemplo

eq

Es igual a

/AccountSet?$filter=Address1_City eq 'Redmond'

ne

No es igual a

/AccountSet?$filter=Address1_City ne null

gt

Mayor que

/AccountSet?$filter=CreditLimit/Value gt 1000

ge

Mayor o igual que

/AccountSet?&$filter=CreditLimit/Value ge 1000

Lt

Menor que

/AccountSet?$filter=CreditLimit/Value lt 1000

le

Menor o igual que

/AccountSet?$filter=CreditLimit/Value le 1000

and

Lógico y

/AccountSet?$filter=CreditLimit/Value ge 1000 and Address1_StateOrProvince eq 'TX'

or

Disyunción lógica

/AccountSet?$filter=AccountCategoryCode/Value eq 2 or AccountRatingCode/Value eq 1

not

Negación lógica

/AccountSet?$filter=(AccountCategoryCode/Value ne null) and not (AccountCategoryCode/Value eq 1)

Puede usar la opción de consulta $filter para filtrar por el valor de un atributo EntityReference. Por ejemplo, si tiene un valor de Id para un registro SystemUser, puede recuperar una lista de todos los registros de cuenta a los que está asignado un usuario con el siguiente filtro:

/AccountSet?$filter=OwnerId/Id eq (guid'" + SystemUserId + "')

En la tabla siguiente se muestran las funciones que se admiten en Microsoft Dynamics 365.

Función

Ejemplo

startswith

/AccountSet?$filter=startswith(Name, 'a')

substringof

/AccountSet?$filter=substringof('store',Name)

endswith

/AccountSet?$filter=endswith(Name, '(sample)')

Más información:OData: opción consulta de filtro del sistema ($expand)

$orderby

Determina qué valores se usan para ordenar una colección de registros. De forma predeterminada, el criterio de ordenación es ascendente. Use desc para invertir el orden o asc para establecer explícitamente el valor predeterminado.

Si está recuperando conjuntos de datos adicionales mediante el vínculo next, no debe cambiar el valor de opción de la consulta $orderby, ya que puede tener resultados imprevisibles.

Nota

Puede seleccionar hasta 12 columnas usando $orderby.

Cuando se ordenan tipos complejos, como EntityReference o OptionSetValue, solo debe especificarse el nombre de atributo. Por ejemplo, para ordenar por el contacto principal de una cuenta, use la consulta $orderby=PrimaryContactId. Especificando $orderby=PrimaryContactId/Name se obtiene un error HTTP de solicitud errónea (HTTP código de error 400).

En el ejemplo siguiente se enumeran los registros de cuenta por país/región en orden ascendente y por ciudad en orden descendente:

/AccountSet?$select=Address1_Country,Address1_City,Name&$orderby=Address1_Country,Address1_City desc&$filter=(Address1_Country ne null) and (Address1_City ne null)

Más información:OData: opción consulta de filtro del sistema ($orderby)

$select

Especifica un subconjunto de propiedades que se devolverán y el orden en que las columnas de datos se organizarán. El valor predeterminado es devolver todas las columnas que corresponden a $select=*.

Si usa $expand para incluir datos relacionados y $select para limitar las columnas devueltas, también debe incluir el nombre de la propiedad de navegación en la consulta. Por ejemplo, la consulta siguiente /AccountSet?$select=Name,opportunity_customer_accounts&$expand=opportunity_customer_accounts devuelve solo el nombre de cuenta y los registros de oportunidad expandidos.

Nota

Existe una ruta de longitud máxima de 2048 caracteres para POST y las solicitudes GET en Internet Explorer. Es muy fácil alcanzar este límite si se incluyera cada atributo de la entidad cuenta en la opción $select. Para obtener más información, consulte el artículo de KB Microsoft KB 208427.

Más información:OData: opción consulta de filtro del sistema ($select)

$skip

Define el número de registros que se omiten antes de recuperar los registros de una colección.

Si está recuperando conjuntos de datos adicionales mediante el vínculo next, no debe cambiar el valor de opción de la consulta $skip, ya que puede tener resultados imprevisibles.

Más información:OData: opción consulta de filtro del sistema ($skip)

$top

Determina un número máximo de registros que se devuelven.

Si está recuperando conjuntos de datos adicionales mediante el vínculo next, no debe cambiar el valor de opción de la consulta $top, ya que podrá tener resultados imprevisibles.

Más información:OData: opción consulta de filtro del sistema ($top)

Opciones de consultas del sistema no admitidas

Microsoft Dynamics CRM 2015 y actualización de Microsoft Dynamics CRM Online 2015 no admite el uso de las siguientes opciones de consulta del sistema:

  • $inlinecount

  • $count

  • $format

Ver también

Consultar datos de Microsoft Dynamics CRM 2015 utilizando el extremo de OData
OData: convenciones de URI

© 2017 Microsoft. Todos los derechos reservados. Copyright