Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 

Register now to learn Fabric in free live sessions led by the best Microsoft experts. From Apr 16 to May 9, in English and Spanish.

Reply
Anonymous
Not applicable

API REST - GET - DataFormat.Error: encontramos un carácter inesperado en la entrada JSON.

¡Hola!

Tengo algunos problemas para conectarme a SERVICENOW API REST.

Cuando hago una llamada con 1500 líneas (sysparm_limit-1500) puedo obtener los datos de esta llamada correctamente, pero si sumo el número de líneas sobre 2000 recibo este error: DataFormat.Error: Encontramos un carácter inesperado en la entrada JSON.

¿Existe una limitación con el número de líneas recuperadas o un problema de análisis?

let
    Fonte = Json.Document(Web.Contents("https://YYYYYYYYYYYYYYYYY.service-now.com//api//now//table//u_fcu?sysparm_limit=2000"), 65001)
in
    Fonte

kendiaka09n_1-1608053755291.png

13 REPLIES 13
Syndicate_Admin
Administrator
Administrator

Esta es la única publicación que he encontrado con este error específico. Tengo el mismo problema con una llamada REST a SharePoint. Ya estoy usando una instrucción "select" para obtener solo columnas específicas. ¿Alguna idea?

john_colvin_0-1681398947032.png

Hi,

 

Try to limit the number of rows retrieved by the request. This was the problem that I had with the ServiceNow API and there is a huge possible to be your problem too.

 

**

Google Translate

 

Intente limitar el número de filas recuperadas por la solicitud. Este fue el problema que tuve con la API de ServiceNow y existe una gran posibilidad de que también sea su problema.

Syndicate_Admin
Administrator
Administrator

Hola

Me gustaría proponerle una solución alternativa, es posible que desee probar nuestra aplicación: Power BI Connector for ServiceNow:

Tenemos unas prácticas guías de usuario y administración para su conveniencia, pero no dude en comunicarse con el equipo de soporte en support@alpha-serve.com si necesita ayuda.

Gracias.

Saludos

Antón

===

Si esta publicación ayuda, considere Aceptarla como la solución para ayudar a los otros miembros a encontrarla más rápidamente.

Anonymous
Not applicable

¡Hola!

Encontramos una solución alternativa para este problema de análisis. Usamos el sysparm_fields para obtener solo las columnas que se necesitaban. De esta manera podríamos recuperar todas las líneas de la tabla.

Dejar
Source á Json.Document(Web.Contents("https: //YYYYYYYYYYYYY.service-now. com/api/now/ table/tablename?sysparm_fields-column1,column2,column3,column4,column5"))
En
Fuente

No se encontró ningún problema al obtener todas las columnas en grupos separados.

Desafortunadamente, todavía se desconoce por qué devuelve un problema de análisis cuando intento recuperar todas las columnas sin especificarlas.

Hey,

 

My Spanish is worse than my English (lol), so I willl try to help.

 

The problem happens because the number of rows, but you can add filters to your request easyly. This link on Service Now documentation will help you.

 

https://developer.servicenow.com/dev.do#!/learn/learning-plans/quebec/servicenow_application_develop...

mahoneypat
Employee
Employee

Le sugerí separar El Web.Contents de Json.Document para solucionar problemas y asegurarse de que está recibiendo una respuesta Web. Ahora que lo está, puede solucionar los problemas de la parte Json. Si envolverlo en Json.Document no da como resultado Listas o Registros para expandir, intente lo siguiente:

- Deje su paso con sólo Web.Contents( ) y debería ver un icono de documento con "JSON" en él (o algún otro texto)

- Haga clic derecho en ese icono y elija texto en lugar de JSON para que pueda ver el texto real devuelto

- ver si es valor JSON, y, si es necesario, pegarlo aquí para que otros puedan ayudar

saludos

palmadita





Did I answer your question? Mark my post as a solution! Kudos are also appreciated!

To learn more about Power BI, follow me on Twitter or subscribe on YouTube.


@mahoneypa HoosierBI on YouTube


Anonymous
Not applicable

No @mahoneypat

Intenté tu enfoque, pero desafortunadamente, me devuelve sólo unas pocas líneas. Menos de lo esperado.
Mientras que mi posición de error es 35.523.241, la posición máxima que obtengo de la tabla de copia de PBI es 35.844 y la última línea recupera solo una parte de las columnas seleccionadas.

PhilipTreacy
Super User
Super User

No @kendiaka09n

Si obtiene una respuesta JSON cuando solo usa Web.Contents, copie y pegue esa respuesta en un validador JSON para comprobar que está formada correctamente JSON

https://jsonlint.com/?code

saludos

Phil



Did I answer your question? Then please mark my post as the solution.
If I helped you, click on the Thumbs Up to give Kudos.


Blog :: YouTube Channel :: Connect on Linkedin


Proud to be a Super User!


Anonymous
Not applicable

Hay @PhilipTreacy

Hmmm, lo intentaré.

Pero, ¿es seguro comprobar en este sitio web? Una vez que voy a probar algunos datos confidenciales de una empresa....

mahoneypat
Employee
Employee

¿Qué es el "65001" en la función Json.Document? ¿Obtiene un documento json con solo la parte Web.Contents? Vea lo que obtiene y luego ábralo con la función correcta. Es posible que deba especificar el formato json en la llamada web.

saludos

palmadita





Did I answer your question? Mark my post as a solution! Kudos are also appreciated!

To learn more about Power BI, follow me on Twitter or subscribe on YouTube.


@mahoneypa HoosierBI on YouTube


Anonymous
Not applicable

hola @mahoneypat !
Gracias por su tiempo y ayuda!

El "65001" está relacionado con la codificación UTF-8. Pero no es necesario debido al método GET de Servicenow trae automáticamente la codificación UTF-8.

Cuando intenté obtener los datos solo a través de Web.Content, devuelve un documento JSON que no puedo analizar después de él.

Analizar por texto, devuelve una cantidad limitada de datos y Parse by JSON devuelve el problema con DataFormat.Error.

saludos

Su

PhilipTreacy
Super User
Super User

No @kendiaka09n

No estoy familiarizado con esa API, pero esperaría que haya un límite a la cantidad de datos que se pueden devolver en una solicitud. Puede consultar la documentación de la API para averiguarlo.

https://docs.servicenow.com/bundle/geneva-servicenow-platform/page/integrate/inbound_rest/concept/c_...

Ese error que recibe normalmente indica que JSON no se ha devuelto, normalmente es un mensaje de error HTML.

BTW sólo necesita single/ en la URL, por ejemplo, /api/now/table

saludos

Phil



Did I answer your question? Then please mark my post as the solution.
If I helped you, click on the Thumbs Up to give Kudos.


Blog :: YouTube Channel :: Connect on Linkedin


Proud to be a Super User!


Anonymous
Not applicable

No @PhilipTreacy!

¡Gracias por su tiempo!

Usando el sysparm_limit obtengo los números de línea predeterminados de 10.000 y mi consulta no puede ir más allá de las líneas 1990.

sysparm_limit Límite para aplicar en la paginación. El valor predeterminado es 10.000.
Los valores de sysparm_limit inusualmente grandes pueden afectar al rendimiento del sistema.

https://docs.servicenow.com/bundle/geneva-servicenow-platform/page/integrate/inbound_rest/reference/...

Cuando intento obtener la información a través de python (solicitud) obtengo el contenido completo. Mirando la Posición señalada por el mensaje de error PBI no puedo encontrar nada malo, como un ?

encabezados á "Aceptar":"aplicación/xml"
response - requests.get(url, auth-(user, pwd), headers-headers)

Gracias por el consejo "/"!

saludos

Su

Helpful resources

Announcements
Microsoft Fabric Learn Together

Microsoft Fabric Learn Together

Covering the world! 9:00-10:30 AM Sydney, 4:00-5:30 PM CET (Paris/Berlin), 7:00-8:30 PM Mexico City

PBI_APRIL_CAROUSEL1

Power BI Monthly Update - April 2024

Check out the April 2024 Power BI update to learn about new features.

April Fabric Community Update

Fabric Community Update - April 2024

Find out what's new and trending in the Fabric Community.