Report - Geräte im Schrank
Ziel ist es, Objekte (Geräte) anhand spezifischer Eigenschaften zu suchen und deren Einbauort zu finden. Anders herum kann man eine Liste aller im Schrank eingebauten Objekte ausgeben. Der Ausgangspunkt ist nicht der Schrank, sondern das Objekt als solches. Im Anschluss muss also noch ein Filter eingetragen werden, denn sonst werden auch Einschübe (Module) aus Chassis (Switch, Blade) ausgegeben. Über die Filterung holen wir uns alle Objekte, die vertikal in einem anderen Objekt (Schrank) enthalten sind. Reicht das nicht, müssen weitere Filter-Kriterien gesucht und eingetragen werden.
Einfacher Bericht
Der einfache Bericht ist schnell konfiguriert. Aus den globalen Kategorien (z.B. Allgemein, Standort, Formfaktor, Model) werden die entsprechenden Einträge ausgewählt. Die Reihenfolge der Spalten kann geändert werden, indem man den Eintrag mit der Maus “verschiebt”. Im
Bei der späteren Ausgabe kann nach einem Kriterium gesucht und auch nur nach einem Kriterium sortiert werden. Sucht man einen konkreten Schrank, dann sollte man im Anschluss nach der Position im Schrank sortieren, um eine 1:1 Abbildung des tatsächlichen Aufbaus zu erhalten.
Komplexer Bericht
Reichen die in einem einfachen Bericht vorhanden Möglichkeiten nicht aus, dann gibt es die Möglichkeit, einen komplexen Bericht zu erstellen. Für die Definition sind SQL Kenntnisse (Maria-DB) erforderlich und man sollte das i-doit Datenmodell kennen. Als Grundlage wird dazu am Besten ein vorher erstellter einfacher Bericht verwendet. Dieser wird dupliziert und im Anschluss mit dem SQL Editor bearbeitet.
Nach dem Aufruf und der ersten Speicherung kann dieser Bericht nicht mehr mit dem Abfrage-Editor bearbeitet werden.
Im folgenden Beispiel wurde für den oben angelegten Schrankinhalt-Report nur die Standardsortierung angepasst:
Zuerst wird nach Option (Horizontal/Vertikal), dann nach Einbau (vorn oder hinten) und zum Schluss nach Einbau-HE sortiert. Das erhöht die Übersichtlichkeit für Schränke, in denen beide Seiten befüllt werden. Mit dem ersten Klick auf eine Kopfspalte wird diese Sortierung natürlich aufgehoben und wieder nur nach der einen Spalte sortiert.
Vollständiges Beispiel:
SELECT obj_main.isys_obj__id AS 'id'
, j11.isys_obj__title AS 'LC__CMDB__CATG__LOCATION###26'
, obj_main.isys_obj__title AS 'LC__UNIVERSAL__TITLE###1'
, j10.isys_catg_location_list__id AS 'isys_cmdb_dao_category_g_location::retrievePositionInRack::isys_catg_location_list__id::LC__CMDB__CATG__LOCATION_POS'
, j8.isys_catg_formfactor_list__rackunits AS 'LC__CMDB__CATG__RACKUNITS###3'
, (CASE j2.isys_catg_smview_patch_formfactor_list__half_he WHEN '1' THEN 'Ja' WHEN '0' THEN 'Nein' END) AS 'LC__CMDB__CATG__SMVIEW_PATCH_FORMFACTOR__HALF_HE###193'
, (CASE j10.isys_catg_location_list__insertion WHEN '1' THEN 'Vorderseite' WHEN '0' THEN 'Rückseite' WHEN '2' THEN 'Vorder- und Rücks.' END) AS 'LC__CMDB__CATG__LOCATION_FRONTSIDE###26'
, (CASE j10.isys_catg_location_list__option WHEN '3' THEN 'Horizontal' END) AS 'LC__CMDB__CATG__LOCATION_OPTION###26'
, j4.isys_model_manufacturer__title AS 'LC__CATG__STORAGE_MANUFACTURER###2'
, j7.isys_model_title__title AS 'LC__CMDB__CATG__MODEL###2'
, j12.isys_catg_accounting_list__inventory_no AS 'LC__CMDB__CATG__ACCOUNTING_INVENTORY_NO###38'
, j14.isys_catg_ip_list__isys_obj__id AS 'isys_cmdb_dao_category_g_ip::dynamic_property_callback_primary_ip::isys_catg_ip_list__isys_obj__id::LC__CATG__IP__PRIMARY_ADDRESS'
, j10.isys_catg_location_list__id as 'isys_cmdb_dao_category_g_location::retrievePositionInRack::DYNAMIC_PROPERTY::0'
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
LEFT JOIN isys_catg_smview_patch_formfactor_list AS j2 ON j2.isys_catg_smview_patch_formfactor_list__isys_obj__id = obj_main.isys_obj__id
LEFT JOIN isys_catg_model_list AS j5 ON j5.isys_catg_model_list__isys_obj__id = obj_main.isys_obj__id
LEFT JOIN isys_model_manufacturer AS j4 ON j4.isys_model_manufacturer__id = j5.isys_catg_model_list__isys_model_manufacturer__id
LEFT JOIN isys_model_title AS j7 ON j7.isys_model_title__id = j5.isys_catg_model_list__isys_model_title__id
LEFT JOIN isys_catg_formfactor_list AS j8 ON j8.isys_catg_formfactor_list__isys_obj__id = obj_main.isys_obj__id
LEFT JOIN isys_catg_location_list AS j10 ON obj_main.isys_obj__id = j10.isys_catg_location_list__isys_obj__id
LEFT JOIN isys_obj AS j11 ON j10.isys_catg_location_list__parentid = j11.isys_obj__id
LEFT JOIN isys_catg_accounting_list AS j12 ON j12.isys_catg_accounting_list__isys_obj__id = obj_main.isys_obj__id
LEFT JOIN isys_catg_ip_list AS j14 ON j14.isys_catg_ip_list__isys_obj__id = obj_main.isys_obj__id AND j14.isys_catg_ip_list__primary=1
LEFT JOIN isys_obj_type AS j16 ON j16.isys_obj_type__id = obj_main.isys_obj__isys_obj_type__id
WHERE (j16.isys_obj_type__id != '60') AND (j16.isys_obj_type__id != '63')
ORDER BY j10.isys_catg_location_list__option, j10.isys_catg_location_list__insertion, j10.isys_catg_location_list__id
(c) 2024 SHD System-Haus-Dresden GmbH | Impressum https://www.shd-online.de/impressum/