services atomsvc excel reporting-services powerpivot excel-2016 ssrs-2014

services - atomsvc excel



"Error al analizar XML en la línea xxx, columna 36: carácter xml ilegal" al importar a Power Pivot del informe de SSRS (2)

Excel 2016 (16.0.6965.2076)

SQL Server 2014 (12.0.4213.0)

Tengo un informe de SSRS con 10 parámetros: dos son fechas y los otros 8 son listas desplegables de texto que usan una consulta para rellenar las opciones. Si trato de buscar este informe en Power Pivot Data Model en Excel (Power Pivot -> Manage -> From Other Sources -> Report), al completar el Asistente de importación de tablas (después de especificar con éxito mi informe y los valores de los parámetros y ver el informe) renderizar correctamente en el asistente) haciendo clic en el botón Finalizar en la página Seleccionar tablas y vistas, recibo un mensaje de error:

El análisis XML falló en la línea 1345, columna 36: carácter xml ilegal.

La línea dada varía según los valores de parámetros que especifique para el informe, pero la columna siempre es 36. He inspeccionado mi informe y estos números de línea y columna no parecen relacionarse con mi informe, ya que con frecuencia ambos son mayores que el número total de filas / columnas que se devuelve en el informe.

He buscado en línea y he encontrado algunos recursos que tratan este problema, pero no he podido encontrar una solución a mi problema:

Este blog y este ticket de Microsoft Connect asociado sugieren que puedo hacer que esto funcione exportando mi informe como Data Feed y haciendo referencia a eso desde el asistente de Power Pivot, pero esto tampoco funciona, obtengo un error diferente :

No se puede obtener el esquema para la alimentación de datos ''[Nombre del feed de informes]''. Por favor, asegúrese de que este feed exista.

He encontrado sugerencias en otros sitios en línea que indican que este error posterior (o el problema original) puede deberse a que la URL del informe es demasiado larga (incluidos los parámetros / valores). Lamentablemente, no veo ninguna otra forma de reducir la longitud de la URL (actualmente más de 700 caracteres), ya que he minimizado mis nombres de parámetros y el nombre del informe, pero todavía tengo este problema (no creo que pueda reducir los valores de los parámetros, ya que obtenido de una base de datos de aplicaciones que no podemos cambiar).

También he visto sugerencias para reemplazar mis parámetros "Obtener valores de una consulta" por parámetros "Especificar valores", pero esto no es viable, ya que los valores de los parámetros deben obtenerse de la base de datos de la aplicación mencionada anteriormente y cambiarán con el tiempo, por lo que es necesario ser captado dinámicamente

¿Alguien puede sugerir una solución o pasos de solución de problemas adicionales que pueda seguir para este problema?


La primera investigación que sugiero es tratar de descartar el problema de la URL como una posible causa. Solo para fines de prueba, ¿es posible copiar el informe y modificarlo para que la mayoría de los parámetros estén codificados de forma rígida con ejemplos válidos? A continuación, puede intentar obtener el informe con una URL mucho más pequeña, utilizando solo uno o dos parámetros.

Si el informe copiado funciona, confirmando que la longitud de la URL es el problema, entonces no tienes más opción que investigar otras posibilidades para reducir la longitud de la URL.

Si la longitud de la URL es el problema, puede agregar parámetros de forma incremental para determinar la longitud de la URL objetivo que funciona correctamente.

¿Es posible reducir la longitud de los parámetros de entrada? Si los parámetros necesitan coincidir con los valores de los datos o el código que no se pueden modificar fácilmente, ¿es posible modificar el informe para incorporar una tabla de búsqueda, de modo que las variables pasadas en cortas se asignen a sus versiones completas?

Alternativamente, ¿tiene varios parámetros de texto con solo 2 o 3 opciones? O, ¿hay algunos parámetros que solo son válidos en combinaciones específicas? Si es así, le da otra opción, aunque es una práctica extremadamente mala y resultará en un gran esfuerzo para mantener los informes si algo tiene que cambiar ... Podría crear varias copias del informe, codificando los parámetros que tienen un límite número de combinaciones válidas. Luego, en función de los parámetros de entrada almacenados en Excel, llama al informe relevante que coincide con esos parámetros y pasa los parámetros restantes en la URL.

Sin embargo, si la longitud de la URL no es el problema, entonces puede esforzarse más para investigar la causa y, con suerte, las soluciones más limpias.


Para reducir su problema, exportaría el informe (usando sus parámetros) al formato XML. Esto es efectivamente una reproducción manual de lo que Power Pivot está haciendo cuando llama a su informe.

Luego, abriría ese archivo en un editor XML (por ejemplo, Visual Studio) y buscaría "línea 1345, columna 36: Illegal xml character".

Si esto se desencadena por un nombre de cuadro de texto, puede anularlos para exportación XML estableciendo la propiedad DataElementName.

Si se desencadena por un valor de datos, usaría una expresión de SSRS para tratar de evitarlo. ¡Puede realizar la prueba de Globals!RenderFormat.Name = "XML" para manipular únicamente el valor de los datos en ese escenario.