Bugs in E-Mail zu Lizenzablauf
-
Hallo,
ich habe 2 Bugs in der E-Mailerstellung für ablaufende Lizenzen festgestellt.
Als erstes wird der Report, welcher die Auswahl der Lizenzen trifft, die in der E-Mail erscheinen sollen, nicht richtig ausgewertet.
Hier ein Beispiel:Es existiert folgender Lizenzeintrag:
Für die Benachrichtigung per E-Mail wird ein Report verwendet, welcher alle Lizenzschlüssel auflisten soll, die
a) den Statusin operation
haben und
b) abgelaufen sind oder innerhalb der nächsten 14 Tage ablaufen und
c) nicht'NOEMAIL
' in der Beschreibung stehen haben.(Wenn jemanden zu Punkt c) etwas besseres einfällt einzelne Einträge auszuschlißen, wäre ich für Vorschläge offen)
Der Report sieht in SQL so aus:
SELECT obj_main.isys_obj__id AS '__id__', obj_main.isys_obj__title AS 'LC__UNIVERSAL__TITLE###1', j2.isys_cats_lic_list__key AS 'LC__CMDB__CATS__LICENCE_KEY###26', j2.isys_cats_lic_list__serial AS 'LC__CMDB__CATS__LICENCE_SERIAL###26', j2.isys_cats_lic_list__expire AS 'LC__CMDB__CATS__LICENCE_EXPIRE###26' FROM isys_obj AS obj_main INNER JOIN isys_cmdb_status AS obj_main_status ON obj_main_status.isys_cmdb_status__id = obj_main.isys_obj__isys_cmdb_status__id INNER JOIN isys_cats_lic_list AS j2 ON j2.isys_cats_lic_list__isys_obj__id = obj_main.isys_obj__id AND j2.isys_cats_lic_list__status IN (2) INNER JOIN isys_cmdb_status AS j1 ON j1.isys_cmdb_status__id = obj_main.isys_obj__isys_cmdb_status__id WHERE TRUE AND ( (j2.isys_cats_lic_list__expire IS NOT NULL AND j2.isys_cats_lic_list__expire != '' ) ) AND ( j1.isys_cmdb_status__id = '6' ) AND ( obj_main.isys_obj__status = '2' ) AND ( j2.isys_cats_lic_list__expire <= NOW() + INTERVAL 14 DAY ) AND ( j2.isys_cats_lic_list__description NOT LIKE 'NOEMAIL%' OR j2.isys_cats_lic_list__description IS NULL ) ORDER BY obj_main.isys_obj__title ASC;
Wenn der Report nun über die Weboberfläche ausgeführt und angezeigt wird, passt das auch soweit wie erwartet (Ausführungsdatum ist 2023-09-14):
In der zugehörigen E-Mail kommt nun der Bug. Es werden alle Lizenzen des Eintrags aufgeführt:
Das ist insbesondere bei Lizenzen in denen 10+ Keys drin stehen echt nervig, die rauszusuchen die auch wirklich abgelaufen sind.Die E-Mail bringt mich dann auch zum 2. Bug. Was eher ein Schönheitsfehler ist. Wie im Screenshot zu erkennen (Key 5), werden die aufrückenden Leerzeichen um die Tabellenstruktur zu generieren offensichtlich dadurch generiert, dass der Speicherbedarf des Strings in Byte gleich gesetzt wird mit Anzahl der Zeichen. Dieser Ansatz scheitert leider sobald man die englische Sprache verlässt und auch mal Zeichen verwendet die UTF-8 Codiert 2 Byte oder mehr benötigen. z.B. ä ö ü ß
Grüße
amc