Error de ODATA en el informe Dynamics CRM API 9.1 for Sales Manager del paquete de contenido de Power BI

Un usuario Pregunto ✅


0


Votar

Hola,

Estaba jugando con Service Manager .PBIX descargado de Comenzar a usar Power BI con aplicaciones basadas en modelos en Dynamics 365.

El primer paso es cambiar el CRMServiceUrl como se describe en Personalizar los paquetes de contenido de Power BI de las aplicaciones de Dynamics 365.

¿Por qué si el conector está configurado para

Source = "https://contoso.crm.dynamics.com/api/data/v8.0/"

está funcionando, pero si está configurado en mi conector api adecuado, la versión 9.1 ya no funciona

Source = "https://contoso.crm.dynamics.com/api/data/v9.1/"

Encontré una «solución alternativa» para permitir que la versión 9.1 modifique manualmente las consultas y agregue el Implementación=»2.0″ opción para que funcione:

Source = OData.Feed(CRMServiceUrl, null, [Concurrent = true, ODataVersion = 4, Implementation="2.0"]),

Esto es normal»?

Saludos cordiales,

Luciano

Estado: Aceptado

5 comentarios (5 nuevos)

Luciano

Actualización: el problema parece ser similar a este: la conexión a Dynamics 365 arroja un error sobre metadatos OData no válidos.

También he probado la prueba recomendada por @v-yuezhe-msft

let
    Source = OData.Feed("https://<tenant>.api.crm.dynamics.com/api/data/v9.1/")
in
    Source

y da error

DataSource.Error: OData: The feed's metadata document appears to be invalid. Error: The metadata document could not be read from the message content.
UnexpectedXmlElement : The schema element 'NavigationProperty' was not expected in the given context. : (1, 5649375)
UnexpectedXmlElement : The schema element 'NavigationProperty' was not expected in the given context. : (1, 5671810)
UnexpectedXmlElement : The schema element 'NavigationProperty' was not expected in the given context. : (1, 5671885)

solo funcionará con

Source = OData.Feed("https://<tenant>.api.crm.dynamics.com/api/data/v8.2/")

Hola @Lucian,

Informé este problema internamente: CRI 163917232. Actualizaré aquí una vez que obtenga información.

Atentamente,
qiuyun yu

Estado cambiado a: Aceptado

Sí, debe incluir la opción Implementación=»2.0″ al usar el extremo de la API de Dynamics 365 v9.1.

Este extremo de la API usa una versión posterior de ODataLib, que rompió la compatibilidad con la versión de ODataLib que usaba la implementación original de OData.Feed. Para mantener la compatibilidad con las consultas existentes, agregamos un indicador de implementación que le indica a Power Query que use las bibliotecas más nuevas. Al crear una nueva consulta de OData, el código generado tendrá como valor predeterminado Implementación=»2.0″. Al editar consultas que se crearon sin el indicador de implementación, debe agregarlo usted mismo.

Luciano

Hola @mattmasson

Gracias por su confirmación, lamentablemente no funcionó para una de las consultas: la «cuenta».

Para todas las demás tablas, la «implementación» funcionó, excepto para la consulta «cuenta» que tiene un «buscarXml» parte de que parece interferir con esta opción, por lo que tengo que volver al punto final de la API v 8.2 en lugar de 9.1 con la opción «implementación».

La consulta original sin modificar generará el siguiente error con el extremo de la API v9.1:

DataSource.Error: OData: The feed's metadata document appears to be invalid. Error: The metadata document could not be read from the message content.
UnexpectedXmlElement : The schema element 'NavigationProperty' was not expected in the given context. : (1, 5659011)
UnexpectedXmlElement : The schema element 'NavigationProperty' was not expected in the given context. : (1, 5681446)
UnexpectedXmlElement : The schema element 'NavigationProperty' was not expected in the given context. : (1, 5681521)

Con la opción de «implementación», arrojará el siguiente error con el punto final de API v 9.1:

Account
OData: The feed's metadata document appears to be invalid. Error: The metadata document could not be read from the message content.
 XmlError : For security reasons DTD is prohibited in this XML document. To enable DTD processing set the DtdProcessing property on XmlReaderSettings to Parse and pass the settings into XmlReader.Create method. : (0, 0)

Entonces, por el momento, tengo que ceñirme al punto final de la API v 8.2.

Atentamente,

Luciano

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *