Community
    • Categories
    • Recent
    • Popular
    • Users
    • Search
    • Register
    • Login
    1. Home
    2. amc
    A
    Offline
    • Profile
    • Following 0
    • Followers 0
    • Topics 1
    • Posts 1
    • Groups 0

    amc

    @amc

    0
    Reputation
    2
    Profile views
    1
    Posts
    0
    Followers
    0
    Following
    Joined
    Last Online

    amc Unfollow Follow

    Latest posts made by amc

    • 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:
      i-doit-1.png

      Für die Benachrichtigung per E-Mail wird ein Report verwendet, welcher alle Lizenzschlüssel auflisten soll, die
      a) den Status in 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):
      i-doit-2.png

      In der zugehörigen E-Mail kommt nun der Bug. Es werden alle Lizenzen des Eintrags aufgeführt:
      i-doit-3.png
      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

      posted in Entwicklung
      A
      amc