Modell - Hersteller Zuordnung über die API
-
Hallo,
ich experimentiere gerade ein wenig mit der API und bin mir gerade nicht sicher ob die Dinge die ich vor habe nicht möglich sind, oder ich es nur falsch probiere. Ich würde gerne neue Objekte anlegen und dabei dann natürlich auch in der Modell Kategorie den entsprechenden Hersteller und den zugehörigen Modelltyp dokumentieren.
Wenn die Modelle schon existieren ist das auch erstmal kein Problem. Mein Problem bezieht sich auf die Erstellung von noch nicht existierenden Modellen die ich gerne den Herstellern zuordnen möchte. Wenn ich die Modelle über die API nur mit Ihrem Titel anlege, sind diese unfertig und es fehlt die Zuordnung zum Hersteller.
Über ein cmd.dialog.read der entsprechenden Modelle bekomme ich leider nur die spalten "id, const, title".{ "jsonrpc":"2.0", "result": [ ..., { "id": "7", "const": "", "title": "Modelltitel" } ], "id":null }
Für den API connect verwende ich die Powershell und für die Erstellung der Modelle folgenden body:
{ "jsonrpc": "2.0", "method": "cmdb.dialog.create", "params": { "apikey": "xy", "category": "C__CATG__MODEL", "property": "title", "value": "Modelltitel" } }
In i-doit sieht dies dann so aus:
Kann ich über die API Modelle korrekt zuordnen und wenn ja wie mache ich dies?
-
Hallo,
bereits beim Erstellen von Kategorie-Einträgen kann man Dialog-Felder ergänzen. D. h., es spricht erst einmal nichts dagegen, beim Ausfüllen der Modell-Kategorie mit der Methode
cmdb.category.create
den Hersteller- und Modell-Namen als String mitzugeben, auch wenn dieses Pärchen noch nicht existiert. In der i-doit Knowledge Base gibt es dazu ein passendes Beispiel.Über die Methode
cmdb.dialog.create
kann das Attribut-Pärchen aus Hersteller- und Modellnamen derzeit noch nicht angelegt werden. Die Entwicklung ist bereits informiert.Viele Grüße
Benjamin -
Hallo Benjamin,
danke für den passenden Link in die Knowledge Base. Schade, dass die Zuordnung noch nicht geht.
Dann muss diese halt später folgen.Ich hätte da noch ein Thema zur API das mir heute aufgefallen ist. Ich kann Objekte der Kategorie
C__OBJTYPE__STACKING
(CatgID: 90) anlegen aber nicht auslesen. Beim Versuch bekomme ich den Fehler:
"error=Unable to find desired category with ID "90". Please check the delivered category ID and try again"Im Handbuch der Knowledge Base (i-doit JSON-RPC 1.8.3.docx) ist noch die Rede von der
C__CATG__STACKING
.Auf der Serveransicht der Objektkategorien unter https://hostname/index.php?load=api_properties wird
STACKING
gar nicht gelistet.Befindet sich diese Kategorie gerade im Umbau?
Gibt es eine andere elegante Möglichkeit gestackte Switche als solche zu dokumentieren?Grüße
Simon -
Hallo Simon,
gerade eben habe ich ein paar Tests auf einer frischen Installation von i-doit open 1.10.1 mit API Add-on 1.9 ausgeführt. Erst einmal sieht alles ganz gut aus:
Objekt vom Typ
Stacking
erstellen:{ "version": "2.0", "method": "cmdb.object.create", "params": { "type": "C__OBJTYPE__STACKING", "title": "My little stack", "apikey": "xxx" }, "id": 1 }
Server Response:
{ "jsonrpc": "2.0", "result": { "id": 26, "message": "Object was successfully created", "success": true }, "id": 1 }
Auslesen aller
Stacking
-Objekte:{ "version": "2.0", "method": "cmdb.objects.read", "params": { "filter": { "type": "C__OBJTYPE__STACKING" }, "apikey": "xxx" }, "id": 2 }
Server-Response:
{ "jsonrpc": "2.0", "result": [ { "id": "26", "title": "My little stack", "sysid": "SYSID_1521623834", "type": "90", "created": "2018-03-21 10:16:48", "updated": "2018-03-21 10:16:48", "type_title": "Stacking", "type_group_title": "Other", "status": "2", "cmdb_status": "6", "cmdb_status_title": "in operation" } ], "id": 2 }
Die Kategorie
Stacking
(C__CATG__STACKING
) wurde durch die KategorienStack member
(C__CATG__STACK_MEMBER
) bzw.Stack Membership
ersetzt, siehe KB-Artikel "Kategorien und Attribute". In der open-Variante ist die KategorieStacking
nicht vorhanden. Während die KategorieStack member
über die API angesprochen werden kann, ist das bei der KategorieStack Membership
nicht der Fall.Um herauszufinden, welche Kategorie die ID
90
bekommen hat, hilft ein Blick in die Datenbanktabelleidoit_data.isysgui_catg
weiter:select isysgui_catg__id, isysgui_catg__const from idoit_data.isysgui_catg where isysgui_catg__id = 90;
Viele Grüße
Benjamin -
Hallo Benjamin,
aktuell habe ich eine 1.10.1 open im Einsatz und eine 1.10.1 pro (30 Tage test).
Auf der open hatte ich noch die API 1.8 laufen und habe nun auf 1.9 aktualisiert.
Die angebotene API auf der Webseite der open ist die angebotene API Version 1.8.Die Ausgabe aller
Stacking
-Objekte funktioniert problemlos. Dabei bekomme ich die folgende Ausgabe:{ "jsonrpc": "2.0", "result": [ { "id": "2331", "title": "My little stack", "sysid": "SYSID_1521562362", "type": "90", "created": "2018-03-20 16:33:51", "updated": "2018-03-20 16:33:51", "type_title": "Stacking", "type_group_title": "Other", "status": "2", "cmdb_status": "6", "cmdb_status_title": "in operation", "image": "https:\/\/de0001sido10002\/images\/objecttypes\/empty.png" }, ... ], "id": null }
Auch gelingt mir nun die korrekte Ausgabe dieses einzel Objektes via:
{ "jsonrpc": "2.0", "method": "cmdb.object.read", "params": { "apikey": "xy", "objID": "2331", "category": "C__OBJTYPE__STACKING" } }
So lange eine der beiden Kategorien angesprochen werden kann, hilft mir das.
Bei der Prüfung welche Kategorie die ID
90
hat, bekomme ich die folgende Ausgabe:+------------------+-------------------------+ | isysgui_catg__id | isysgui_catg__const | +------------------+-------------------------+ | 90 | C__CATG__ASSIGNED_CARDS | +------------------+-------------------------+
Was an dieser Stelle nicht weiter tragisch ist, da sich die benötigten Kategorien nun, wie oben beschrieben,editieren lassen.
An dieser Stelle nochmal vielen Dank für die ausführliche Hilfestellung.Grüße
Simon