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