Verbindung Clients - Lizenzen
-
Hat sich erledigt, habs in der Tabelle catg_application_list gefunden.
-
isys_cats_lic_item = Lizenzobjekt
isys_catg_lic_list = Lizenz - Anwendungsobjekt
isys_catg_application_list = Anwendung/Dienst - Clientobjekt -
Meine gedachte Verbindung von installierter Software auf Clients und dazugehörigen Lizenzen funktioniert mit dem Importmodul nicht mehr..
Ich dachte, man bekommt die verwendeten Lizenzen raus, indem man zum Beispiel so eine Abfrage erstellt:SELECT isys_obj.isys_obj__title, isys_catg_lic_list.isys_catg_lic_list__isys_cats_lic_item__id, isys_cats_lic_item.isys_cats_lic_item__title, isys_cats_lic_item.isys_cats_lic_item__amount, isys_cats_lic_item.isys_cats_lic_item__cost
FROM isys_obj
INNER JOIN isys_catg_lic_list
ON (isys_obj.isys_obj__id = isys_catg_lic_list.isys_catg_lic_list__isys_catg_lic__id)
INNER JOIN isys_cats_lic_item
ON (isys_catg_lic_list.isys_catg_lic_list__isys_cats_lic_item__id = isys_cats_lic_item.isys_cats_lic_item__id)
INNER JOIN isys_catg_application_list
ON (isys_catg_application_list.isys_catg_application_list__isys_catg_lic_list__id = isys_catg_lic_list.isys_catg_lic_list__id)
WHERE isys_obj__status = 2;Damit kriege ich normalerweise eine Auflistung aller Softwareprodukte mit Lizenz und die Gesamtzahl der Lizenz für die Softwareprodukte. Über einen Zähler kann man dann zählen, wieviele davon installiert sind.
Das funktioniert aber nur, wenn man bei jedem Client händisch und Anwendung / Dienst eine Lizenz zuweist. Es muss aber noch anders gehen, weil unter Software -> Lizenzen ->entsprechende Lizenz -> Lizenzen steht, dass 3 Lizenzen in Benutzung sind. (was auch stimmt) Mit der obigen Abfrage erhalte ich aber nur die, die wirklich auch unter Clients noch zugewiesen worden sind.
Könnt ihr mir da weiterhelfen?
Vielen Dank und viele Grüße
TheNightwish -
Kann mir keiner sagen, wo in der Datenbank die Verknüpfung entsteht zwischen den Clients und den zugeordneten Lizenz, wenn man die Clients importiert und die Clients nicht händisch eingibt und unter Client -> Anwendung/Dienst die Lizenz der entsprechenden Software dort nochmal zuweist????
-
Wie gesagt,
isys_catg_application_list ist die Kategorie Anwendung/Dienst im Clientobjekt. Hier entsteht ein eintrag, wenn dem Client eine Anwendung zugewiesen wird
isys_catg_lic_list ist die Kategorie Lizenz im Anwendungsobjekt. Hier wird die Lizenz zur der Anwendung verknüpft (über isys_cats_lic_item__id)
isys_cats_lic_item ist die Spezifische Kategorie Lizenz (Liste) im eigentlichen LizenzobjektDie Kombination aus diesen Einträgen ist dann die verknüpfte Lizenz zum Client.
Nun zu deiner Frage:
Wenn unter "Client -> Anwendung/Dienst" die Lizenz nochmal zugewiesen wird, wird die Anwendungszuweisung zur Lizenz (isys_cats_lic_item__id; Also die Informationen zu welcher Lizenz die Anwendung gehört) in der Kategorie Lizenzen im Anwendungsobjekt, also unter "Anwendung -> Lizenzen" nochmal hergestellt (Über Fremdschlüssel isys_catg_lic_list__isys_cats_lic_item__id nach isys_cats_lic_item__id)).
Hierfür wird in der Kategorie Lizenz: isys_catg_lic_list eine Verknüpfung zur spezifischen Lizenz: isys_cats_lic_item hergestellt -
Schwierig in Worte zu fassen, ich versuche es mal:
In der Tabelle isys_catg_lic_list befindet sich die Zuweisung von Lizenzen an Objekte (in diesem Fall: Anwendungen). Verknüpft wird über einen Connector (Zum Anwendungsobjekt kommt man über isys_catg_lic_list__isys_catg_lic__id -> isys_catg_distributor__isys_catg_lic__id, im Distributor steht dann die obj__id der Anwendung).
In der Tabelle isys_catg_application_list befindet sich die Zuweisung von Anwendungen zu Objekten (hier: Clients). Verknüpft wird die Anwendung über die obj__id, also isys_catg_application_list__isys_obj__id. Zum Clientobjekt kommt man wieder über den Connector (isys_catg_application_list__isys_catg_application__id -> isys_catg_distributor__isys_catg_application__id).
Das Lizenzobjekt erreicht man über isys_cats_lic_list, indem man von isys_catg_lic_list joint (isys_catg_list_list -> isys_cats_lic_item -> isys_cats_lic_list -> isys_cats_distributor).
-
Da steig ich immernoch nicht dahinter. Ihr sagt was von der Tabelle isys_catg_distributor. Auf die bin ich auch schon gestoßen. Allerdings kann ich aus dieser Tabelle nix weiter lesen, als in jeder Spalte die gleichen Zahlen. Da fehlen mir irgendwie die Beziehungen.. (Bild siehe Anhang)
Um die Verbindung zum Clientobjekt herzustellen (was dbluemer im 3. Absatz gemacht hat) bin ich bisher immer so vorgegangen, dass ich mir aus der Tabelle isys_catg_application_list doe Spalte isys_catg_application_list__isys_catg_application__id genommen habe und mit dieser in die isys_obj Tabelle gegangen bin. Dort ist dann die isys_obj__id des Clients gleich der isys_catg_application_list__isys_catg_application__id. Wie ihr das über die Tabelle isys_catg_distributor macht, erschließt sich mir nicht..
Auch in isys_cats_distributor seh ich nicht viel, abgesehen vom Großteil der Einträge "NULL".
Im Anhang mal ein paar Screenshots. Auch von meiner gewünschten Abfrage, die ja eigentlich nicht viel können muss, außer mir ein lizenziertes Softwareprodukt auszugeben und die Zahl der gekauften Lizenzen zu diesem Produkt.
Vielen Dank schonmal für eure Mühen
Viele Grüße
TheNightwish
-
Um die Verbindung zum Clientobjekt herzustellen (was dbluemer im 3. Absatz gemacht hat) bin ich bisher immer so vorgegangen, dass ich mir aus der Tabelle isys_catg_application_list doe Spalte isys_catg_application_list__isys_catg_application__id genommen habe und mit dieser in die isys_obj Tabelle gegangen bin. Dort ist dann die isys_obj__id des Clients gleich der isys_catg_application_list__isys_catg_application__id. Wie ihr das über die Tabelle isys_catg_distributor macht, erschließt sich mir nicht..
Hier liegt ein Fehler vor: Du kannst NICHT die Tabelle isys_catg_application_list direkt mit der isys_obj joinen. Da kommst Du, wenn überhaupt, nur zufällig auf die richtigen Ergebnisse. Vielmehr musst Du folgendermaßen joinen:
SELECT * FROM isys_catg_application_list INNER JOIN isys_catg_distributor ON isys_catg_application_list__isys_catg_application__id = isys_catg_distributor__isys_catg_application__id INNER JOIN isys_obj ON isys_obj__id = isys_catg_distributor__isys_obj__id
Der Distributor mappt die Objekte auf die Kategorien, beim Anlegen eines Objektes werden auch die DIstributoreinträge generiert. Von daher kommt es häufig vor, dass eine Objekt-ID gleich der isys_catg_application__id ist, weshalb Deine Vorgehensweise auch zu funktionieren scheint. Aber eben nicht immer.
Ich empfehler Dir ren Report-Manager, der enthält einige Standardreports, unter anderem den von Dir gewünschten mit den Lizenzen.
-
Mit dem Report Manager habe ich das schon probiert. Dieser zeigt mir aber jede Lizenz einzeln an, die in Benutzung ist. Ich wöllte gern aus der Abfrage aus dem obigen Bild über ein PHP-Script, dass er mir den Softwarenamen einmal anzeigt, in der nächsten Spalte die gesamten Lizenzen dafür, in der nächsten Spalte die verbrauchten und in der letzten die noch freien Lizenzen.
Da habe ich im Report Modul noch keine Option gefunden das zu realisieren.Danke für die Hilfe mit der isys_catg_distributor Tabelle. Die hilft schonmal um die spätere Zuverlässigkeit der Abfrage von Software auf Clients zu gewährleisten. Leider hilft sie mir in dem Problem der Lizenzverwaltung noch nicht so recht weiter, weil ich da die Verbindung immer noch nicht sehe… So würde er mir ja nur jede Software ausgeben die auf diesem Rechner ist. Ich möchte aber nur die lizenzpflichtigen Softwareprodukte sehen.
Viele Grüße
TheNightwish -
Hallo zusammen,
könnte mir jemand dabei bitte noch helfen??
Vielleicht gleich mal mit einer Datenbankabfrage, mit der ich 2 Spalten sehe (links den Softwarenamen (isys_obj__title) und rechts die Menge der gekauften Lizenzen dafür (isys_cats_lic_item__amount)) aber eben von allen lizenzierten Softwareprodukten, so wie es mir I-doit im Browser anzeigt. Das wäre echt nett. Ohne das komme ich hier nicht weiterDanke und viele Grüße
TheNightwish