Hauptmenü

Migration KIX17 -> KIX18 / Bilder in FAQ-Einträgen

Begonnen von sh7696, 03.08.2021 16:37:36

⏪ vorheriges - nächstes ⏩

sh7696

Nach der Migration von KIX17 nach KIX18 bleiben nur Bilder erhalten, die direkt Base64-encoded eingebunden sind, Beispiel:

<img alt="" src="data:image/png;base64,iVBO......
Bilder, die als Anlage hinzugefügt wurden und mittels Link eingebunden sind, gehen jedoch verloren, Beispiel:

<img alt="" src="/kix/index.pl?Action=AgentFAQZoom;Subaction=DownloadAttachment;ItemID=21;FileID=1657" />
Im zweiten Fall werden die Bilder in der Tabelle faq_attachment gespeichert, die nicht migriert wird.
Meine Fragen sind nun:

       
  • Wo kann eingestellt werden, wie Bilder in einem FAQ-Eintrag abgespeichert werden (als Attachment oder Base64-encoded)? In neuen FAQ-Einträgen werden die Bilder generell als Attachment abgelegt.
  • Gibt es eine Möglichkeit, die Tabelle faq_attachment nach KIX18 zu migrieren, so dass die Bilder wieder verfügbar sind?


Torsten Thau

Hi sh7696,


wir werden das versuchen zu reproduzieren. Die FAQ-Anhänge sollten in jedem Fall aber mit transferiert werden und zumindest am Artikel anhängen. Das mit den Inline-Verweisen schauen wir uns aber auch nochmal an.


CU, Torsten

Torsten Thau

Hi sh7696,

ich konnte das Verhalten nur in Teilen reproduzieren.

(1) reguläre FAQ-Anhänge am Quell-FAQ-Artikel waren auch nach der Migration vorhanden
(2) Bilder die im Quellsystem via "Subaction=DownloadAttachment" eingebunden sind, waren nur teilweise nach der Migration vorhanden

...im Anhang ein Screenshot dazu. Die gezeigten Bilder sind im Quellsystem so eingebunden (HTML-Quelle des FAQ-Inhalts):


<p><img alt="" height="123" src="/kix/index.pl?Action=AgentFAQZoom;Subaction=DownloadAttachment;ItemID=1;FileID=3" width="175" /><br />
...




<br />
<img alt="" height="291" src="/kix/index.pl?Action=AgentFAQZoom;Subaction=DownloadAttachment;ItemID=1;FileID=3" width="413" /></p>
...




<img alt="" height="375" src="/kix/index.pl?Action=AgentFAQZoom;Subaction=DownloadAttachment;ItemID=1;FileID=4" width="500" /><br />
...


Wir sind dran, sind für weitere Hinweise dankbar.

CU, T.

sh7696

Hi Torsten,
vielen Dank für die Info.
Soweit ich das richtig überblicke sind Bilder bei uns direkt als Base64-encoded nur in FAQ-Artikeln aus einem kurzen Zeitraum im April 2016.

Alle Bilder in FAQ-Artikeln, die mittels "Subaction=DownloadAttachment" eingebunden sind, fehlen jedoch. In der Tabelle faq_attachment im KIX18-System kommen auch keinerlei Daten an.

Ich habe auch mal probiert, einen neuen FAQ-Eintrag unter KIX17 anzulegen und diesen neu zu migrieren. Auch hier verhält es sich so. Aufgefallen ist mir jedoch, dass die Migration diesen Fehler im kix.log protokolliert:
[Fri Aug  6 14:19:13 2021][Error][Kernel::System::JSON::Decode][139] Decoding the JSON string failed:

Ob er mit diesem Problem etwas zu tun hat, ist mir unklar.

CUJ

René Böhm

Hi sh7696,
wir können das Ganze aktuell nicht nachstellen, bei unseren Test werden die eingefügten Bilder und auch die Attachments mit migriert. Kannst du mal bitte mehr aus dem Log schicken, rund um den JSON-Decode-Fehler ? Die Links verweisen intern auf die Tabelle "faq_attachment". Da wir bei der Migration direkt mit den low-level-Daten arbeiten, vermute ich ein Problem beim Quoting bestimmter Daten aus deiner Tabelle für die Übertragung an KIX18. Das könnte der Grund für den JSON-Fehler im Log sein. Da müsste im Log auch ein Stack-Trace zu finden sein.

Viele Grüße
René

sh7696

Hi René,
Im KIX18-Log nicht mehr als folgende Einträge:
[Fri Aug  6 13:57:24 2021][Error][Kernel::System::JSON::Decode][139] Decoding the JSON string failed: malformed JSON string, neither tag, array, object, number, string or atom, at character offset 1 (before "<?xml version="1.0" ...") at /opt/kix/Kernel/System/JSON.pm line 137.

oder teilweise auch nur folgende.

[Wed Aug 11 13:04:16 2021][Error][Kernel::System::JSON::Decode][139] Decoding the JSON string failed:


Im Apache-Error-Log auf dem KIX-17-Quell-System findet sich dann aber beispielsweise folgendes:
[Wed Aug 11 13:04:17.426005 2021] [:error] [pid 23181] malformed or illegal unicode character in string [\x89PNG\r\n\x1a\n], cannot convert to JSON at /opt/kix/Kernel/System/JSON.pm line 100.\n


Kann das Problem eventuell mit einem notwendigen Updaten von JSON:XS auf dem Quellsystem zusammenhängen? Wir haben Version 3.04--41.

Viele Grüße


sh7696

Hallo René,
ich konnte die Ursache des Problems nun soweit ermitteln. KIX18 erwartet die Bilder wohl Base64-encoded, in der Quelldatenbank sind sie jedoch im Binärformat abgespeichert. Ich konnte das Problem nun dadurch umgehen, dass ich durch ein "update kix17.faq_attachment set content = to_base64( content )" auf der Quelldatenbank vor der Migration manuell Base64 encode. Nach der Migration wandele ich sie natürlich wieder ins Binärformat um ("update kix17.faq_attachment set content = from_base64( content )" ).
CU

Torsten Thau

Hallo sh7696,


vielen Dank für den Tipp und Workaround! Ist das Quellsystem ist ein Maria- oder MySQL-DBMS und konntest Du das Attachmentproblem ggf. auch an Tickets oder Config Items beobachten? DAnke schonmal für die Antwort.


CU, Torsten

sh7696

Hallo Torsten,
wir nutzen im Quellsystem MariaDb.
Bei Tickets und ConfigItems ist mir das Problem übrigens nicht aufgefallen.
CU

René Böhm

Hi sh7696,
wir konnten den Bug lokalisieren und fixen. Der Bugfix ist in der v18 enthalten. Das Problem war nicht das base64, sondern ein Copy&Paste des Inhaltes des FAQ-Eintrages. Damit war der gleiche Image-Link mehrfach im FAQ-Artikel enthalten. In der Anzeige macht das an sich keine Probleme, aber die Migration ging davon aus, immer pro Referenz ein eigenes Inline-Bild vorzufinden und nicht mehrere Referenzen auf das gleiche Bild.
VG
René

Torsten Thau

...also zumindest war das bei meinem Nachstellversuch das Problem.

sh7696

Hallo,
wir haben die Migration inzwischen abgeschlossen und soweit hat nun alles geklappt.
Allerdings ist uns nun ein weiteres Problem aufgefallen, das in diesen Kontext passt. Antwortet man einem Kunden und will in die Antwort auch ein Bild mittels Copy&Paste einfügen, fügt der CKEditor das Bild als base64-encoded ein:
"<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAALQAAAB......"
Unter unserer KIX17-Installation mit CKEditor-Version 4.5.6 war dies anders. Hier der Quelltext vor dem Speichern des Textes:
<img alt="" height="80" src="/kix/index.pl?Action=PictureUpload;FormID=1633632694.2197295.84344096;ContentID=inline731823.268623673.1633632694.2197295.84344096@kix17.abc.de" width="177" />
Das Problem hierbei ist, dass Outlook in den meisten Versionen base64-encoded Inline-Images nicht supported und der Empfänger der Nachricht in diesem Fall das Bild nicht sehen kann.
Ist es möglich, das Verhalten, wie wir es unter KIX17 kannten, wiederherzustellen?
Viele Grüße

Torsten Thau

#12
Hi sh7696,

wenn ich das richtig verstehe geht es nicht mehr um die Migration der FAQ-Artikel, sondern um die Verwendung derer in Email-Antworten?

Die Beschreibung wie es in KIX17 funktioniert hat einen Haken: sie verweist auf eine URL die nur mit einer Anmeldung einen Inhalt liefert. Jeder der die Mail liest und nicht angemeldet ist, wird keine Bilder sehen. Das ist der Grund für die inline-Bilder. Dass Outlook das nicht kann hatten wir tatsächlich nicht angenommen - das erschien uns als "basic".


Ich habe das mal als Anforderung aufgenommen, wir werden das in eines der nächsten Releases aufnehmen um eine alternative Lösung für Outlook anbieten zu können. Wahrscheinlich muss es als Attachment mitgeliefert werden.

CU, Torsten