Diese Woche fragte mich ein Kollege, ob Bilder aus Business Central (vormals Dynamics NAV) auch in einem Power BI Bericht angezeigt werden können und die gute Nachricht vorweg, “Es geht!”
Die besondere Herausforderung dabei ist, dass Business Central das Bild komprimiert mit zusätzlichen 4 Bytes in einem Blob-Datentyp (Binary Large Object) in der SQL Datenbank speichert. Für die Darstellung in einem Power BI Bericht benötigen wir aber einen Base64 Image – String, den wir als Bild URL verwenden.
Thumbnails (Miniaturansichten) der Bilder werden in der Business Central SQL Datenbank in der Tabelle “Tenant Media Thumbnails” gespeichert. Wir verwenden diese kleineren Bilder, um das Dataset nicht unnötig aufzublähen und Limitierungen der Zeichenlänge (32766 Zeichen) in Power BI möglichst zu umgehen.
Data-URI in Power Query generieren
Über eine Benutzerdefinierte Spalte führen wir dann folgende Transformationen durch. (von innen nach außen gelesen)
- Die ersten 4 Bytes von der Spalte Content entfernen
- Das Ergebnis entpacken
- Das entpackte binäre Ergebnis in einen Base64 Text umwandeln
- Den Base64 Text zusammen mit dem Mime Type zu eine Data-URI verknüpfen
= "data:" & [Mime Type] & ";base64,"
& Binary.ToText(
Binary.Decompress(
Binary.Range([Content], 4)
, Compression.Deflate)
, BinaryEncoding.Base64)
Bild-URL im Power BI Bericht
Damit der Base64 Image – String von Power BI als Bild interpretiert und angezeigt wird, muss die Datenkategorie der Spalte auf “Bild-URL” umgestellt werden.
Es empfiehlt sich, die Umstellung vor der Anzeige der Spalte im Power BI vorzunehmen, da sonst das Visual beim Anzeigen des langen Textes sehr lange rendert.