Report Server mit Betriebssystem != Windows



  • Hallo,

    wir versuchen schon seit geraumer Zeit die Report Funktion in Version 1.0.1 Pro zu benutzen um sich alle Server anzeigen zu lassen die kein Windows Betriebssystem haben.

    Gibt es eine Möglichkeit die Abfrage auf mehrere Kategorien zu beschränken (Server+virtuelle Server)?
    Ebenso wäre es hilfreich die Kategorie Bedingung Softwarezuweisung dann zu wählen mit !=LIKE%Windows%, anstelle von "!=Microsoft Windows Server 2008 R2 AND !=Microsoft Windows Server 2003 R2 Standard" etc.

    Gibt es da eine einfache Möglichkeit das umzusetzen? Die Reports sind eine sehr gute Funktion die wir auch sehr gerne nutzen würden.
    Danke schonmal.



  • Hallo Oda,

    die Idee mit "NOT LIKE" und "NOT LIKE %…%" ist sehr gut, diese nehme ich gerne in das Tool auf!

    Mit den "mehrfachen" Objekt-Typ Beschränkungen ist es dagegen etwas aufwändiger. Der Report Editor bietet ja quasi ein Tool um auf generische Art und Weise SQL Statements zu erstellen. Erstellte Reports können daher auch nicht über die GUI sondern nur als "nacktes" SQL bearbeitet werden - Hier könntet ihr eure Änderungen 'direkt' eingeben.

    Aber Achtung: Bei Objekt-Referenzen wie z.B. beim Attribut "Anwendung" in der Kategorie "Softwarezuweisung" wird nach Objekten (bzw. deren ID) geprüft, nicht nach deren Titeln - Hier wird der workaround mit LIKE nicht funktionieren.

    VG Leo



  • Wir haben nun den Report erstellt und alle Windows Betriebssysteme ausgeschlossen.
    Der Report zeigt aber nun auch Server die Windows installiert haben, was er ja eigentlich nicht soll.
    Desweiteren sind da viele doppelte Einträge.

    
    SELECT 
    obj_main.isys_obj__id AS '__id__', 
    (CASE obj_main.isys_obj__status WHEN 1 THEN 'LC__CMDB__RECORD_STATUS__BIRTH' WHEN 2 THEN 'LC__CMDB__RECORD_STATUS__NORMAL' WHEN 3 THEN 'LC__CMDB__RECORD_STATUS__ARCHIVED' WHEN 4 THEN 'LC__CMDB__RECORD_STATUS__DELETED' END) AS 'LC__UNIVERSAL__CONDITION' , 
    jn1.isys_ip_assignment__title AS 'LC__CATP__IP__ASSIGN_IPV4###47', 
    ip_list.isys_catg_ip_list__hostname AS 'LC__CATP__IP__HOSTNAME###47' 
    
    FROM isys_obj AS obj_main 
    LEFT JOIN isys_catg_ip_list AS ip_list ON ip_list.isys_catg_ip_list__isys_obj__id = obj_main.isys_obj__id LEFT JOIN isys_cats_net_ip_addresses_list AS ip ON ip.isys_cats_net_ip_addresses_list__id = ip_list.isys_catg_ip_list__isys_cats_net_ip_addresses_list__id 
    LEFT JOIN isys_cmdb_status AS obj_main_status ON obj_main_status.isys_cmdb_status__id = obj_main.isys_obj__isys_cmdb_status__id 
    LEFT JOIN isys_ip_assignment AS jn1 ON jn1.isys_ip_assignment__id = ip_list.isys_catg_ip_list__isys_ip_assignment__id 
    LEFT JOIN isys_catg_application_list AS j5 ON j5.isys_catg_application_list__isys_obj__id = obj_main.isys_obj__id 
    LEFT JOIN isys_connection AS jn4 ON jn4.isys_connection__id = j5.isys_catg_application_list__isys_connection__id 
    LEFT JOIN isys_obj AS job4 ON jn4.isys_connection__isys_obj__id = job4.isys_obj__id 
    
    WHERE TRUE 
    AND jn4.isys_connection__isys_obj__id != '5536' 
    AND jn4.isys_connection__isys_obj__id != '9292' 
    AND jn4.isys_connection__isys_obj__id != '5535' 
    AND jn4.isys_connection__isys_obj__id != '5565' 
    AND jn4.isys_connection__isys_obj__id != '5534' 
    AND jn4.isys_connection__isys_obj__id != '5537' 
    AND jn4.isys_connection__isys_obj__id != '5541' 
    AND jn4.isys_connection__isys_obj__id != '5539' 
    AND jn4.isys_connection__isys_obj__id != '8016' 
    AND jn4.isys_connection__isys_obj__id != '5538' 
    AND jn4.isys_connection__isys_obj__id != '7843' 
    AND jn4.isys_connection__isys_obj__id != '5540' 
    AND jn4.isys_connection__isys_obj__id != '7947' 
    AND obj_main.isys_obj__status = 2 
    AND (obj_main.isys_obj__isys_obj_type__id = 59 OR obj_main.isys_obj__isys_obj_type__id = 5);
    
    

    Was machen wir falsch?


  • i-doit Kenner

    Hallo Oda,

    wie habt ihr die Betriebssysteme in der CMDB gepflegt?
    Ich habe unter "Software" > "Betriebssystem" fuer jeden Hersteller ein eigenes Betriebssystem (z.B. "Windows") und in diesem Betriebssystem in der Kategorie "Anwendungen" > "Varianten" die unterschiedlichen Varianten eingepflegt (z.B. 2003 Standard, 2008 Standard, 2008 R2).

    Bei den Servern wird das Betriebssystem weiter unter "Softwarezuweisung" eingetragen, bei "Anwendung" wird "Windows" und bei "Variante" eine der moeglichen Varianten ausgewaehlt.

    Durch dieses Vorgehen ist es moeglich, bei einem Report folgende Kategorie-Bedingung auszuwaehlen:
    Kategorie: Softwarezuweisung
    Attribut: Anwendung != Windows (ueber den Objekt-Browser)

    Damit ist auf einfache Weise abgedeckt, dass tatsaechlich nur die geforderten Objekte ausgegeben werden.
    Vielleicht hilft Dir das weiter.

    Gruss,
    jkondek



  • Hallo,

    danke für den Hinweiß. Ist dies denn "im Sinne des Erfinders"? Die Punkte wie Software Version kann dann ja nicht vernünftig gepflegt werden.
    Trägt man da nicht Dinge ein wie x64 etc. ein oder kommt das in die Spezifikation?

    Verwirrend!?


  • i-doit Kenner

    Du kannst Dir ja auch unterschiedliche Spezifikationen mit eintragen. Ob im Sinne des Entwicklers oder nicht, Dir ist es ueberlassen, wie Du es fuer Dich realisierst. Ich habe keine konkreteren Spezifikationen, und in der Demo sind auch keine Beispiele dafuer, deswegen habe ich die fuer mich beste Loesung gewaehlt.


 


Datenschutz / Privacy Policy