Angepasstes h-inventory skript
-
Hallo,
ich möchte das import Skript so anpassen, das es mir zusätzliche Informationen zu Programmen liefert,
die nicht über das Paketmanagment System installiert worden sind.
Das klappt auch soweit und die Applikationen werden in das xml File geschrieben.Jetzt habe ich noch das Problem, dass ich zu den Programmen gerne die Compiler Flags speichern würde.
Am besten in dem Feld "Description" von den einzelnen Applikationen.Zum Testen habe ich als erstes dafür das "commentaire" Feld im xml File benutzt.
Meine Fragen dazu:
Erscheint das "commentaire" Feld irgendwo in idoit ? Wenn ja wo ?
Und ist es möglich durch ein passendes generiertes xml File bestimmte Felder in idoit mit Werten zu versorgen ?Gruß
Marc -
Hallo,
so ein Problem habe ich schonmal gelöst. Das commentaire Feld wird zwar ausgelesen, aber der Wert dann nicht in die Datenbank
geschrieben. Da mit der Wert des commentaire Felde in der Tabelle isys_catg_application_list im Feld isys_catg_application_list__description landet muss man folgende Datei verändern:isys_cmdb_dao_category_g_application.class.php
Dort in Zeile ca. 54 wo die Funktion create_element aufgerufen wird, bei den Funktionsparametern die übergeben werden,
den Parameter $l_application["commentaire"] hinzufügen.Die Funktionsaufruf sieht dann so aus:
$this->create_element( $l_cat,
$l_list_id,
$l_objid,
C__RECORD_STATUS__NORMAL,
$l_application["name"],
$l_application["commentaire"]);Danach wird der Wert in die Tabelle geschrieben. Das Problem ist jetzt noch das der Wert von der GUI anscheinend nicht
ausgelesen wird. Der für das Feld Description von Application zuständige Wert steht in der Tabelle isys_catg_global_list (dort das Feld description). Werde heute mal versuchen die Datei isys_cmdb_dao_category_g_application.class.php so zu modifizieren,
das dieses Feld beschrieben wird. Wenn es klappt Lösung hier.Gruß
Marc -
Hi,
damit schreibst du das Feld nur in die Beschreibung der verknüpfung zum Server/Client.
Du musst das aber in die Applikation selbst schreibenDas geht ungefähr so (Achtung, ich hab das nicht getestet :-)):
Ebenfalls in der import Methode ->
if (!$l_objid) { $l_objid = $this->insert_new_obj( C__OBJTYPE__APPLICATION, ISYS_FALSE, $l_application["name"], ISYS_NULL, C__RECORD_STATUS__NORMAL ); $l_dist = new isys_cmdb_dao_distributor($this->get_database_component(), $l_objid, C__CMDB__CATEGORY__TYPE_SPECIFIC, null, array(C__CATS__APPLICATION)); $l_dao = $l_dist->get_category(C__CATS__APPLICATION); $_POST["C__CMDB__CAT__COMMENTARY"] = $l_application["commentaire"]; /* Auch verfügbar: */ //$_POST['C__CATS__APPLICATION_SPECIFICATION'] = "" //$_POST['C__CATS__APPLICATION_MANUFACTURER_ID'] = "" //$_POST['C__CATS__APPLICATION_RELEASE'] = "" $l_tmp=0; $l_dao->save_element(null, $l_tmp); }
Und bei Änderungen an den Dateien, backup nicht vergessen, denn beim nächsten Update können alle Änderungen verloren gehen.
-
Hallo,
die hier aufgezeigte Lösung hat so nicht gefunzt.
Ich habe mir jetzt ein Methode geschrieben die das
richtige Description Feld in der Datenbank beschreibt.
Habe jetzt nur noch ein Problem.
Das String $l_application["commentaire"] wird beim
Einlesen irgendwo abgschnitten, d.h. in der Klasse
isys_cmdb_dao_category_g_application.class.php ist der
der String schon zu kurz.Um einen Lösungsvorschlag wäre ich sehr dankbar.
Gruß
Marc -
Hi,
letzten Kommentar bitte ignorieren. Das Problem liegt schon in dem vom h-inventory erzeugten xml File.
Gruß
Marc