Modell und Hersteller per API pflegen


  • Hallo zusammen,
    ich sitze schon recht lange an diesem Problem und wäre für jede Hilfe dankbar. Ich möchte bei meinen angelegten Client-PCs das Modell und den Hersteller über die JSON API pflegen. Ich habe aber ein Problem mit genau diesen beiden Feldern. Seriennummer und Service-Tag zum Beispiel kann ich pflegen.

    Ich vermute, dass es mit der Tatsache zu tun hat, dass es sich um Multi-Value Felder handelt?

    Das hier habe ich versucht:

    {
      "version": "2.0",
      "method": "cmdb.category.save",
      "params": {
        "object": 38012274,
        "data": {
    	"manufacturer": "Microsoft",
            "title": "Surface"
    	},
    "category": "C__CATG__MODEL",
    "apikey": "xyz"
      },
      "id": 1
    }
    

    Kann mir irgendjemand einen Tipp für die richtige Syntax geben?

    Vielen Dank und Gruß
    Andreas

  • i-doIT Team

    Moin @ajoel
    welche Versionen von i-doit und der API nutzt du aktuell?
    Folgender Request funktioniert bei mir fehlerfrei:

    {
    	"version": "2.0",
    	"method": "cmdb.category.save",
    	"params": {
    		"object": 210686,
    		"category": "C__CATG__MODEL",
    		"data": {
    			"manufacturer": "Lenovo",
    			"title": "X1"
    		},
    		"apikey": "API-KEY",
    		"language": "en"
    	},
    	"id": 1
    }
    

    VG
    Phil


  • @philipp-hörselmann

    Hallo Phil und vielen Dank, dass du dir die Zeit nimmst. Ich habe dein Snippet genommen, Object und API-Key ersetzt und bekomme leider denselben Effekt. "No body returned for response".

    Wir haben die Version 1.14.1 PRO installiert. Dem Debug-Logfile nach läuft die JSON-RPC API auf der Version 1.10.1

    Hast du noch eine Idee?

    VG
    Andreas

  • i-doIT Team

    Moin @ajoel ,
    es kann an den älteren Versionen liegen (aktuell ist i-doit 1.15.2 und API 1.11.3)
    Weiterhin könntest du mal schauen, ob und welche Einträge du in den jeweiligen Dialog+ Feldern hast.

    Bsp.:

    {
        "version": "2.0",
        "method": "cmdb.dialog.read",
     		"params": {
            "category": "C__CATG__CPU",
            "property": "manufacturer",
            "apikey": "API-KEY",
            "language": "en"
        },
        "id": 1
    }
    

    Damit kannst du z.B. erstmal auslesen, was für Hersteller bisher existieren.

    VG
    Phil


  • @philipp-hörselmann

    Hallo nochmal und frohe Weihnachten 🙂

    Ich fürchte dann werde ich wohl erstmal das Update in Angriff nehmen müssen.

    Das Ausgeben von Kategorien stellt kein Problem dar. Mit meinem ursprünglich geposteten Snippet werden sogar neue Hersteller angelegt, aber es erfolgt einfach keine Zuweisung zum Client. Hier ein Ausschnitt des Responses auf die von dir gepostete Abfrage (wobei ich "C__CATG__CPU" durch "C__CATG__MODEL" ersetzt habe, da es mir um die Hersteller dort geht).

    {
      "id": 1,
      "jsonrpc": "2.0",
      "result": [
        {
          "id": "1",
          "const": "C__MODEL_NOT_SPECIFIED",
          "title": "Not specified"
        },
        {
          "id": "2",
          "const": "",
          "title": "Apple"
        },
        {
          "id": "3",
          "const": "",
          "title": "Hewlett Packard"
        },
        {
          "id": "4",
          "const": "",
          "title": "Cisco Systems"
        },
    ]
    }
    

    Die Herstellerpflege per se ist also nicht direkt das Problem. Eher die Zuweisung zu einzelnen CMDB-Objekten.