Error en el procesamiento de XML. Error interno: ‘ b’, valor hexadecimal 0x08, es un carácter no válido.

Un usuario Pregunto ✅

DucLuong

Hola a todos,

Tengo un panel de Power BI que obtiene datos de una fuente RSS de un proveedor de servicios (Request Tracker).

Normalmente, la conexión funciona bien, pero recientemente, debido a que algunos clientes agregan por error un valor hexadecimal a su correo electrónico, la actualización daría como resultado un error de la siguiente manera:

Capture.PNG

Intenté especificar la codificación con varios tipos Unicode como se muestra en este hilo, pero eso daría como resultado otro error.

La fuente RSS siempre incluirá el contenido del primer correo electrónico de nuestro cliente (esto es por defecto del proveedor). Esto significa que los caracteres no válidos seguirán apareciendo en el futuro.

Las mejores soluciones permanentes que puedo pensar son de alguna manera:

(1) Ayude a Power Query a comprender o ignorar estos caracteres.

(2) Elimine todos los caracteres no válidos del archivo xml mientras realiza el análisis en Power Query. Si va de esta manera, hay otro problema ya que el enlace RSS no apunta a un archivo xml sino a una solicitud de búsqueda para recopilar tickets de los últimos 12 días, esta solicitud generará un archivo xml. Soy consciente de que puedo descargar el archivo, arreglarlo y luego publicarlo en Power BI, pero hacerlo significa que la actualización del panel ya no funcionará automáticamente. Tenemos el tablero que se muestra en una gran pantalla de TV y la actualización está programada cada hora para contar el número de solicitudes de tickets.

Por favor, indíqueme la dirección correcta. Cualquier ayuda será muy apreciada.

DucLuong

Estoy publicando una solución que encontré aquí en caso de que alguien se encuentre con el mismo problema. La belleza de esto es que puedes hacerlo sin muchos conocimientos de programación como yo.

Lo que funcionó para mí es usar Power Automate para obtener el archivo xml, mirar su contenido, eliminar los caracteres no válidos antes de guardar el archivo en SharePoint. Después de eso, solo necesito establecer una conexión de datos entre Power BI y el archivo xml desinfectado en SharePoint.

La solución se puede encontrar aquí. Pertenece a AlanPs1 y se le deben dar todos los créditos por una solución muy ordenada.

DucLuong

Estoy publicando una solución que encontré aquí en caso de que alguien se encuentre con el mismo problema. La belleza de esto es que puedes hacerlo sin muchos conocimientos de programación como yo.

Lo que funcionó para mí es usar Power Automate para obtener el archivo xml, mirar su contenido, eliminar los caracteres no válidos antes de guardar el archivo en SharePoint. Después de eso, solo necesito establecer una conexión de datos entre Power BI y el archivo xml desinfectado en SharePoint.

La solución se puede encontrar aquí. Pertenece a AlanPs1 y se le deben dar todos los créditos por una solución muy ordenada.

lbendlin

(1) Familiarícese con el concepto «intente … de lo contrario …» en Power Query.

DucLuong

En respuesta a lbendlin

Gracias por su aporte

Por lo que sé, Power Query se niega a analizar el archivo xml en primer lugar. Si los datos pudieran leerse, incluso con registros de error, simplemente habría eliminado toda la columna «contenido del correo electrónico» que contiene los caracteres no válidos porque solo se necesitan recuentos de solicitudes y se pueden usar otras columnas. Desafortunadamente, no importa lo que intenté, siempre estoy atascado en el primer paso.

Como mencioné en la publicación original, de forma predeterminada, el enlace RSS siempre contendrá el contenido del primer correo electrónico que se nos envíe.

Como no soy desarrollador y soy muy nuevo en Power BI, es posible que no haya entendido bien su punto. ¿Podría por favor ser más específico?

lbendlin

En respuesta a DucLuong

Publique una versión desinfectada de su código de Power Query y le mostraré cómo incluir el manejo de errores.

DucLuong

En respuesta a lbendlin

let
    Source = Xml.Tables(Web.Contents("https://................../?Order=ASC%7CASC%7CASC%7CASC&OrderBy=id%7C%7C%7C&Query=Queue+%3D+%27Property%27+AND+Created+%3E+%2712+DAYS+AGO%27")),
    ......
in
    #"Filtered Rows"

No sé programación, por lo que lo que ve arriba lo genera en su totalidad Power Query. Hay otras líneas, pero no las incluí, ya que son solo comandos para expandir tablas, eliminar, filtrar, etc.

Deja un comentario

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