Forum Discussion
Convertir datos binarios
Hay expertos,
Tengo un problema con la conversión de datos binarios a un archivo PDF legible. Lo que he hecho hasta ahora:
En una tabla MS SQL con líneas de transacción financiera, tengo una columna con los datos binarios del documento que se adjunta a la fila con la transacción financiera. La longitud de los datos binarios es de aproximadamente 34.000 posiciones.
En PBI Desktop los datos tienen un máximo de 1024 posiciones en la columna [Documento]. He añadido una nueva columna con la fórmula:
Binary.ToText([documento], BinaryEncoding.base64)
En esta nueva columna (llamada: [Document_Def]) solo tengo errores. Al hacer clic junto a [Error] veo los detalles:
Exression.Error: No se puede convet el valor "JVBERi0xLjQKJeLjz9MN..." a Tipo binario. Después de eso siguió bij el texto completo de este campo y termina con Type=[Type].
¿Hay alguna solución para esto? Al final quiero que los datos se muestren como un documento PDF por PDF Viewer.
Muchas gracias por las respuestas / sugerencias!
Grtz, Alfred
10 Replies
- Syndicate_AdminAdministrator
Consulte este artículo y vea si ayuda
https://customertell.com/displaying-pdf-files-stored-in-sql-server-in-power-bi/
- Syndicate_AdminAdministrator
Hola @sevenhills he comprobado este documento, desafortunadamente no es la solución. Después de importar en PBI la columna [Documento] me da "Binario" y cuando agrego una columna para convertir la columna [Documento] me da los datos binarios. ¿Qué está saliendo mal, cualquier idea(s)?
- Syndicate_AdminAdministrator
¿Intentó habilitar el rastreo en su escritorio PBI y ver el registro, para conocer más detalles?
Seguimiento, registros: https://blog.crossjoin.co.uk/2016/06/09/power-bi-diagnostics-trace-logs-and-query-execution-times-again/
- Syndicate_AdminAdministrator
Hay @AltusTellus,
Compruebe si el tipo de columna [documento] es binario.
O puede probar la siguiente fórmula para ver si funciona.
Binary.ToText(Binary.From([Document]), BinaryEncoding.Base64)Si el problema aún no se resuelve, proporcione información detallada sobre el error o el resultado esperado que espera. Hágamelo saber de inmediato, esperando su respuesta.
Saludos
WinnizSi esta publicación ayuda, considere Aceptarla como la solución para ayudar a los otros miembros a encontrarla más rápidamente.
- Syndicate_AdminAdministrator
Después de la importación en PBI Desktop, de hecho, la columna [Documento] es del tipo binario. También utilicé su fórmula, desafortunadamente con el mismo problema. Aquí puede encontrar los datos originales y los datos en PBI después de la importación.
Ejemplo de documento SQL a PBIVerá que la longitud total del documento original es de aproximadamente 34.000 caracteres. En la columna PBI es de 1.024 caracteres después de su fórmula.
Esperando su respuesta, muchos thnx!
- Syndicate_AdminAdministrator
Hay @AltusTellus,
No puedo reproducir su problema, ¿podría permitir la edición del Excel compartido? De esa manera puedo probarlo en función de sus datos. Actualmente solo puedo leer el excel y no puedo copiar los datos.
Saludos
Winniz
- Syndicate_AdminAdministrator
Hola a todos
Lo siento, no puedo explicar en inglés 😉 Por mi parte, estaba teniendo exactamente el mismo problema porque estaba pasando por "Transformar archivo" y de repente era binario. Encontré una manera de evitarlo no pasando por "Transformar archivo", sino importando el libro de Excel. Aquí está el código M que utilicé para evitar el error:
let Source = SharePoint.Files("xxxxx", [ApiVersion = 15]), #"Lignes filtrées" = Table.SelectRows(Source, let latest = List.Max(Source[Date modified]) in each [Date modified] = latest), #"BDD_Reseau_20240108_PARTAGE xlsm_https://xxxxcom/sites/xxxxx/Documents partages/General/" = #"Lignes filtrées"{[Name="BDD_Reseau_20240108_PARTAGE.xlsm",#"Folder Path"="https://transportsagglomerationde.sharepoint.com/sites/BaseArretTaM/Documents partages/General/"]}[Content], #"Classeur Excel importé" = Excel.Workbook(#"BDD_Reseau_20240108_PARTAGE xlsm_https://xxxx/sites/xxxxx/Documents partages/General/"), #"Lignes filtrées1" = Table.SelectRows(#"Classeur Excel importé", each ([Name] = "Offre")), Offre_Sheet = #"Lignes filtrées1"{[Item="Offre",Kind="Sheet"]}[Data] in Offre_Sheet