Compartir a través de


Consultar datos de Microsoft Dynamics CRM 2015 utilizando el extremo de OData

 

Publicado: noviembre de 2016

Se aplica a: Dynamics CRM 2015

Para buscar y recuperar datos del OData extremo, manipule la URI. Todas las acciones requieren comenzar con la URI raíz de servicio. En Microsoft Dynamics CRM 2015 y actualización de Microsoft Dynamics CRM Online 2015 la URI raíz de servicio aparece en el siguiente ejemplo.

[Your Organization Root URL]/XRMServices/2011/OrganizationData.svc

Nota

La URL raíz de la organización debe incluir el nombre de la organización. Haga referencia a la raíz de servicio mediante la función de getClientUrl en el objeto de contexto. Si un recurso web se hospeda en un formulario, puede hacer referencia a Xrm.Page.context para llamar a getClientUrl. En caso contrario, debe incluir una referencia a la página ClientGlobalContext.js.aspx para poder usar Función GetGlobalContext y obtener el objeto de contexto.

A partir de la URI raíz de servicio puede identificar recursos específicos mediante una ruta de recursos y refine aún más su consulta mediante las opciones de consulta del sistema.

En este tema

Acceso a datos de entidad de Microsoft Dynamics CRM

Limitaciones en el número de registros devueltos

Propiedades de entidad

Tipos complejos de Microsoft Dynamics CRM

  • EntityReference

  • OptionSetValue

  • Dinero

  • BooleanManagedProperty

Entidades relacionadas

Acceso a datos de entidad de Microsoft Dynamics CRM

Cada entidad de Microsoft Dynamics 365 se representa en el lenguaje de definición de esquemas conceptuales (CSDL) como una recopilación con el elemento <EntitySet>. El nombre de cada recopilación sigue la convención de nomenclatura [Nombre de esquema de la entidad] + Set. Este nombre se usa en la URL para tener acceso a una colección de registros de entidad. Una lista de todas las colecciones disponibles se muestra al ver la URI raíz de servicio. Para crear una consulta se deben agregar los criterios en la ruta de recursos.

Por ejemplo, en su explorador puede ver los registros de entidad de la cuenta ATOM (denominados ”entradas”) usando la ruta del siguiente ejemplo.

[Your Organization Root URL]/XRMServices/2011/OrganizationData.svc/AccountSet

Después de ver la lista de registros de cuentas, podrá ver cómo cada una de ellas puede usarse como referencia de forma individual mediante la sintaxis de la dirección URL del siguiente ejemplo.

[Your Organization Root URL]/XRMServices/2011/OrganizationData.svc/AccountSet(guid'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx')

Nota

Para ver los datos en Internet Explorer, primero debe asegurarse de que Internet Explorer no está habilitado para dar formato a las fuentes RSS. En la pestaña Contenido de Opciones de Internet. seleccione Configuración en el grupo Fuentes y Web Slices . A continuación, haga clic en Activar la vista de lectura de fuentes para borrar la opción. Cierre y vuelva a abrir Internet Explorer.

Limitaciones en el número de registros devueltos

Cada vez que se recuperan registros, solo se devuelven los 50 registros principales de la consulta. Si hay más de 50 registros, habrá un nodo <link rel="next" href="<url to next set of records>" > en XML o una propiedad JSON**__next** al final del conjunto de resultados. Puede usar el valor URL en ese nodo o propiedad para continuar con el siguiente conjunto de registros. La dirección URL contiene un parámetro $skiptoken que proporciona información sobre el límite de la paginación.

Para recuperar registros adicionales debe crear un método que detecta la existencia de este nodo o propiedad, y usa la dirección URL proporcionada para recuperar el siguiente conjunto de registros. Para obtener más información, consulte: Ejemplo: recuperar varios registros mediante el extremo de OData con JavaScript

Propiedades de entidad

Cada lenguaje de definición de esquemas conceptuales (CSDL <EntitySet> hace referencia a un elemento <EntityType> que describe las propiedades y las relaciones de una entidad. Dentro de los elementos <EntityType>, los elementos <Property> se corresponden con los atributos de entidad de Microsoft Dynamics 365. Cada propiedad se asigna a un tipo de datos que corresponde a uno de los tipos de datos primitivos de Entity Data Model (EDM) o a un elemento <ComplexType> definido específicamente para Microsoft Dynamics 365. La siguiente tabla muestra una lista de tipos de datos.

Tipo OData

Tipo de datos de Microsoft Dynamics 365

Edm.Boolean

Boolean

Edm.DateTime

DateTime

Edm.Decimal

Decimal

Edm.Double

Double

Edm.Guid

UniqueIdentifier

Edm.Int32

Integer

Edm.Int64

BigInt

Edm.String

String
EntityName

Microsoft.Crm.Sdk.Data.Services.EntityReference

EntityReference
CustomerOwner

Microsoft.Crm.Sdk.Data.Services.OptionSetValue

OptionSetValue
State
Status

Microsoft.Crm.Sdk.Data.Services.Dinero

Money

Microsoft.Crm.Sdk.Data.Services.BooleanManagedProperty

BooleanManagedProperty

Tipos complejos de Microsoft Dynamics CRM

Determinados tipos de datos que Microsoft Dynamics 365 utiliza no pueden usar los tipos de datos simples de EDM.

Nota

Para establecer valores de tipo complejo de Microsoft Dynamics 365 en null, establezca cada propiedad del tipo complejo en null. Para obtener más información, vea Establecer tipos complejos en null.

EntityReference

El tipo Microsoft.Crm.Sdk.Data.Services.EntityReference representa una búsqueda. Corresponde a EntityReference. La tabla siguiente enumera las propiedades.

Nombre

Tipo

Descripción

Id

GUID

El identificador único del registro asociado en la búsqueda.

LogicalName

String

El nombre de la entidad.

Name

String

El valor del atributo principal del registro asociado en la búsqueda.

El siguiente ejemplo es un EntityReference en formato ATOM XML:

<d:PrimaryContactId m:type="Microsoft.Crm.Sdk.Data.Services.EntityReference">
   <d:Id m:type="Edm.Guid">76713858-5e81-df11-afdb-00155dba380a</d:Id>
   <d:LogicalName>contact</d:LogicalName> 
   <d:Name>Cat Francis (sample)</d:Name> 
</d:PrimaryContactId>

El siguiente ejemplo es un EntityReference en formato JSON:

"PrimaryContactId" :{
    "__metadata": {"type": "Microsoft.Crm.Sdk.Data.Services.EntityReference" },
    "Id": "78713858-5e81-df11-afdb-00155dba380a",
    "LogicalName": "contact",
    "Name": "Cathan Cook (sample)"}

OptionSetValue

El tipo Microsoft.Crm.Sdk.Data.Services.OptionSetValue representa un atributo de lista desplegable. Corresponde a OptionSetValue. La siguiente tabla muestra las propiedades.

Nombre

Tipo

Descripción

Value

Number

El valor seleccionado del atributo OptionSet.

El siguiente ejemplo es un ATOMXMLOptionSetValue.

<d:PreferredContactMethodCode m:type="Microsoft.Crm.Sdk.Data.Services.OptionSetValue">
   <d:Value m:type="Edm.Int32">1</d:Value>
</d:PreferredContactMethodCode>

El siguiente ejemplo es un OptionSetValue en formato JSON:

"PreferredContactMethodCode" :{
    "__metadata": {"type": "Microsoft.Crm.Sdk.Data.Services.OptionSetValue" },
    "Value": 1}

Dinero

El tipo Microsoft.Crm.Sdk.Data.Services.Money representa un atributo monetario. Corresponde a Money. La tabla siguiente enumera las propiedades.

Nombre

Tipo

Descripción

Value

Number

La cantidad de dinero.

El siguiente ejemplo es un ATOMXMLMoney.

<d:CreditLimit m:type="Microsoft.Crm.Sdk.Data.Services.Money">
  <d:Value m:type="Edm.Decimal">500.0000</d:Value> 
</d:CreditLimit>

El siguiente ejemplo es un Money en formato JSON:

"CreditLimit" :{
    "__metadata": {"type": "Microsoft.Crm.Sdk.Data.Services.Money" },
    "Value": 500.0000}

BooleanManagedProperty

Determinadas entidades de propiedad de la organización tienen registros que se pueden incluir en una solución, por ejemplo, WebResource. Los ejemplos de propiedades administradas incluyen IsCustomizable, IsHidden y CanBeDeleted. Corresponde a BooleanManagedProperty. Estas propiedades Boolean controlan el comportamiento de los componentes de la solución administrada. Para obtener más información, vea Usar propiedades administradas. La siguiente tabla muestra BooleanManagedProperty.

Nombre

Tipo

Descripción

Value

Boolean

Indica si la propiedad administrada está en vigor.

CanBeChanged

Boolean

Indica si el valor de la propiedad administrada se puede cambiar.

ManagedPropertyLogicalName

String

Especifica el nombre de la propiedad administrada.

Esta propiedad es de solo lectura.

El siguiente ejemplo es un ATOMXMLBooleanManagedProperty.

<d:IsCustomizable m:type="Microsoft.Crm.Sdk.Data.Services.BooleanManagedProperty">
  <d:Value m:type="Edm.Boolean">true</d:Value>
   <d:CanBeChanged m:type="Edm.Boolean">true</d:CanBeChanged>
   <d:ManagedPropertyLogicalName>iscustomizableanddeletable</d:ManagedPropertyLogicalName>   
</d:IsCustomizable>

El siguiente ejemplo es un BooleanManagedProperty en formato JSON:

"IsCustomizable" :{
    "__metadata": { "type": "Microsoft.Crm.Sdk.Data.Services.BooleanManagedProperty" },
    "CanBeChanged": true,
    "ManagedPropertyLogicalName": "iscustomizableanddeletable",
    "Value": true}

Entidades relacionadas

El elemento <NavigationProperty> de lenguaje de definición de esquemas conceptuales (CSDL) incluye todas las relaciones 1:N y N:N de la entidad. Si la relación representan una relación que hace referencia a sí misma, habrá dos elementos <NavigationProperty> para esta relación. El nombre de la relación usa el prefijo Referenced y Referencing para distinguir el rol que un registro determinado desempeña en la relación. Para obtener más información, vea Tipos de relaciones entre entidades.

Use <NavigationProperty> si desea crear una consulta para recuperar registros relacionados. En el siguiente ejemplo, si desea recuperar una lista de oportunidades en la que una cuenta determinada es el cliente, use la relación de entidades opportunity_customer_accounts en el contexto de una cuenta determinada:

/AccountSet(guid'[GUID value]')/opportunity_customer_accounts

Si necesita únicamente la dirección de URL en los registros relacionados, puede usar la opción de consulta $links que aparece en el siguiente ejemplo.

/AccountSet(guid'[GUID value]')/$links/opportunity_customer_accounts

Esto devolverá solo a las direcciones URL a los datos de cada registro relacionado. Los resultados cuando se visualizan en el explorador se asemejarían al siguiente ejemplo.

<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<links xmlns="https://schemas.microsoft.com/ado/2007/08/dataservices">
   <uri>[Your Organization Root URL]/xrmservices/2011/OrganizationData.svc/OpportunitySet(guid'a6713858-5e81-df11-afdb-00155dba380a')</uri>
   <uri>[Your Organization Root URL]/xrmservices/2011/OrganizationData.svc/OpportunitySet(guid'1224342F-D024-4B47-A3F5-FB22D236E655')</uri>
   <uri>[Your Organization Root URL]/xrmservices/2011/OrganizationData.svc/OpportunitySet(guid'7AF675A8-4FBE-42E7-8279-C32605D2B49B')</uri>
   <uri>[Your Organization Root URL]/xrmservices/2011/OrganizationData.svc/OpportunitySet(guid'2DD9BA88-2A37-4F53-8946-68ABBDC73FC1')</uri>
</links>

Si desea incluir datos de los registros relacionados cuando se crea un registro, use la opción de consulta del sistema $expand.

Ver también

Usar el extremo de OData con recursos web
Opciones de la consulta del sistema OData mediante el extremo OData
Realizar las operaciones básicas de datos mediante el extremo de OData
Realice las operaciones adicionales de datos mediante el extremo de OData
Usar el extremo de OData con recursos web Ajax y JScript
Ejemplo: crear, recuperan, actualizar y eliminar el uso del extremo de OData con JavaScript y jQuery
Ejemplo: crear, recuperar, actualizar y eliminar el uso del extremo de OData con JavaScript
Ejemplo: editor de contactos de jQuery del extremo OData
Abra el protocolo de datos (OData)
Artículo técnico: Uso del conjunto de opciones con el extremo de REST - JScript

© 2017 Microsoft. Todos los derechos reservados. Copyright