Dokumente-Modul: Handbuch für Switch



  • Hallo,

    nachdem ich die Switch in unserem Netz in i-doit eingepflegt habe, möchte ich nun mit dem Dokumentemodul eine automatisierte Vorlage erstellen, in welcher die Konfiguration des Switches anezeigt wird.
    Ich habe Probleme damit wie ich eine Tabelle mit Verbindungen bekomme
    Beispiel was ich will:

    | Port | Zielgerät | ZielportPort |
    | Port 1 | HP 1910 2. OG | Port 4 |
    | Port 2 | HP 1910 3. OG | Port 5 |

    weiß jemand welche "Bausteine" ich auswählen muss?



  • Hallo Herr Fischer,

    Netzwerk Port -> Bezeichnung
    Netzwerk Port -> Verbunden mit
    die Gegenstelle (Gerät 2) kann ich auch nicht finden.



  • Danke für die Antwort. aber genau der Zielport wäre wichtig für die Dokumentation



  • Moin,

    hab mir das nochmal angeschaut, mit dieser Konfiguration im Report Manager sollte es gehen.

    Grüße!

    Bildschirmfoto 2017-03-21 um 10.39.15.png
    Bildschirmfoto 2017-03-21 um 10.38.30.png



  • Danke es funktioniert schon ganz gut, nur zwei Sachen noch: Die Optionen sehen bei mir anders aus und er hat falsche Verbindungen.
    In dem Beispiel sind nur Switch Port 21 mit Server ETHERNET 1 und Switch Port 22 mit ETHERNET 2 verbunden.

    table_options.PNG
    tabelle.PNG
    verkabelung.PNG


  • i-doit Kenner

    Hallo M-Fischer,

    kannst Du das SQL von dem Report mal posten? Es fehlt scheinbar eine Abfrage, bei der kontrolliert wird, ob die beiden Ports tatsaechlich miteinander verbunden sind.

    Gruss,
    jkondek



  • also ich habe es so aufgebaut, wie pbluhm es zuvor gezeigt hat.
    das SQL sieht so aus im Report Manager:

    SELECT 
    obj_main.isys_obj__id AS '__id__', 
    obj_main.isys_obj__title AS 'LC__UNIVERSAL__TITLE###1', 
    j10.isys_catg_port_list__title AS 'LC__CMDB__CATG__TITLE###39', 
    j14.isys_obj__title AS 'LC__UNIVERSAL__TITLE#LC__CMDB__CONNECTED_WITH###1', 
    j15.isys_catg_port_list__title AS 'LC__CMDB__CATG__TITLE#LC__CMDB__CONNECTED_WITH###39' 
    
    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_port_list AS j10 ON j10.isys_catg_port_list__isys_obj__id = obj_main.isys_obj__id 
    LEFT JOIN isys_catg_connector_list AS j6 ON j6.isys_catg_connector_list__id = j10.isys_catg_port_list__isys_catg_connector_list__id 
    LEFT JOIN isys_catg_connector_list AS j4 ON j4.isys_catg_connector_list__isys_cable_connection__id = j6.isys_catg_connector_list__isys_cable_connection__id AND j4.isys_catg_connector_list__id != j6.isys_catg_connector_list__id  
    LEFT JOIN isys_obj AS j5 ON j5.isys_obj__id = j4.isys_catg_connector_list__isys_obj__id 
    LEFT JOIN isys_obj AS j14 ON j14.isys_obj__id = j5.isys_obj__id 
    LEFT JOIN isys_catg_port_list AS j15 ON j15.isys_catg_port_list__isys_obj__id = j5.isys_obj__id 
    LEFT JOIN isys_obj AS j16 ON j16.isys_obj__id = j5.isys_obj__id 
    LEFT JOIN isys_obj_type AS j17 ON j17.isys_obj_type__id = obj_main.isys_obj__isys_obj_type__id 
    
    WHERE TRUE 
    
     AND  ( (j17.isys_obj_type__id != '60' ) AND (j17.isys_obj_type__id != '60' ) AND (j17.isys_obj_type__id != '63' ) ) ORDER BY obj_main.isys_obj__title DESC;
    

    Ich dachte auch man könnte dies rein mit dem Dokumente Modul erreichen



  • Hallo M-Fischer,

    ich hab mir die Problematik mal angeschaut und konnte auch feststellen wo das Problem ist. Das Problem ist dieser Join:

    
    LEFT JOIN isys_catg_port_list AS j15 ON j15.isys_catg_port_list__isys_obj__id = j5.isys_obj__id
    
    

    Dieser veranlasst das alle Ports des verbundenen Objekts geholt werden anstatt nur den verbundenen Port. Man müsste diesen Join wie folgt umändern:

    
    LEFT JOIN isys_catg_port_list AS j15 ON j15.isys_catg_port_list__isys_catg_connector_list__id = j4.isys_catg_connector_list__id
    
    

    Momentan ist eine Darstellung wie du die gerne haben willst nur über die Reports möglich wenn man den genannten Join abändert.
    So würde die Query am Ende aussehen:

    
    SELECT 
    obj_main.isys_obj__id AS '__id__', 
    obj_main.isys_obj__title AS 'LC__UNIVERSAL__TITLE###1', 
    j10.isys_catg_port_list__title AS 'LC__CMDB__CATG__TITLE###39', 
    j14.isys_obj__title AS 'LC__UNIVERSAL__TITLE#LC__CMDB__CONNECTED_WITH###1', 
    j15.isys_catg_port_list__title AS 'LC__CMDB__CATG__TITLE#LC__CMDB__CONNECTED_WITH###39' 
    
    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_port_list AS j10 ON j10.isys_catg_port_list__isys_obj__id = obj_main.isys_obj__id 
    LEFT JOIN isys_catg_connector_list AS j6 ON j6.isys_catg_connector_list__id = j10.isys_catg_port_list__isys_catg_connector_list__id 
    LEFT JOIN isys_catg_connector_list AS j4 ON j4.isys_catg_connector_list__isys_cable_connection__id = j6.isys_catg_connector_list__isys_cable_connection__id AND j4.isys_catg_connector_list__id != j6.isys_catg_connector_list__id  
    LEFT JOIN isys_obj AS j5 ON j5.isys_obj__id = j4.isys_catg_connector_list__isys_obj__id 
    LEFT JOIN isys_obj AS j14 ON j14.isys_obj__id = j5.isys_obj__id 
    LEFT JOIN isys_catg_port_list AS j15 ON j15.isys_catg_port_list__isys_catg_connector_list__id = j4.isys_catg_connector_list__id
    LEFT JOIN isys_obj AS j16 ON j16.isys_obj__id = j5.isys_obj__id 
    LEFT JOIN isys_obj_type AS j17 ON j17.isys_obj_type__id = obj_main.isys_obj__isys_obj_type__id 
    
    WHERE TRUE 
    
     AND  ( (j17.isys_obj_type__id != '60' ) AND (j17.isys_obj_type__id != '60' ) AND (j17.isys_obj_type__id != '63' ) ) ORDER BY obj_main.isys_obj__title DESC;
    
    

    Was du an der Stelle machen könntest ist diesen Report über den Report-Manager zu erstellen und diesen kannst du dann im Dokumente Modul einbetten. Um diesen Report nur für das ausgewählte Objekt auszuführen muss du in der WHERE-Bedingung diesen Zusatz hinzufügen:

    
    AND obj_main.isys_obj__id = 'OBJEKT-ID'
    
    

    Beispiel:

    
    SELECT 
    obj_main.isys_obj__id AS '__id__', 
    obj_main.isys_obj__title AS 'LC__UNIVERSAL__TITLE###1', 
    j10.isys_catg_port_list__title AS 'LC__CMDB__CATG__TITLE###39', 
    j14.isys_obj__title AS 'LC__UNIVERSAL__TITLE#LC__CMDB__CONNECTED_WITH###1', 
    j15.isys_catg_port_list__title AS 'LC__CMDB__CATG__TITLE#LC__CMDB__CONNECTED_WITH###39' 
    
    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_port_list AS j10 ON j10.isys_catg_port_list__isys_obj__id = obj_main.isys_obj__id 
    LEFT JOIN isys_catg_connector_list AS j6 ON j6.isys_catg_connector_list__id = j10.isys_catg_port_list__isys_catg_connector_list__id 
    LEFT JOIN isys_catg_connector_list AS j4 ON j4.isys_catg_connector_list__isys_cable_connection__id = j6.isys_catg_connector_list__isys_cable_connection__id AND j4.isys_catg_connector_list__id != j6.isys_catg_connector_list__id  
    LEFT JOIN isys_obj AS j5 ON j5.isys_obj__id = j4.isys_catg_connector_list__isys_obj__id 
    LEFT JOIN isys_obj AS j14 ON j14.isys_obj__id = j5.isys_obj__id 
    LEFT JOIN isys_catg_port_list AS j15 ON j15.isys_catg_port_list__isys_catg_connector_list__id = j4.isys_catg_connector_list__id
    LEFT JOIN isys_obj AS j16 ON j16.isys_obj__id = j5.isys_obj__id 
    LEFT JOIN isys_obj_type AS j17 ON j17.isys_obj_type__id = obj_main.isys_obj__isys_obj_type__id 
    
    WHERE TRUE 
    AND  ( (j17.isys_obj_type__id != '60' ) AND (j17.isys_obj_type__id != '60' ) AND (j17.isys_obj_type__id != '63' ) ) 
    AND obj_main.isys_obj__id = 469560
    ORDER BY obj_main.isys_obj__title DESC;
    
    

    Ich hoffe das ich dir damit etwas helfen konnte.

    Gruß,
    vqh



  • Danke vqh,

    Die Abfrage funktioniert soweit und ich kann den Report im Dokumente Modul einbetten. Ich benötige zwar für jeden Switch einen eigenen Report, aber das ist ja kein Problem.

    Grüße,
    M-Fischer


 


Datenschutz / Privacy Policy