Zugriff auf Dialog+ Listen über API



  • Hallo,
    ich versuche gerade eine Bestands(web-)anwendung von Ihrem eigenen DB-Backend auf eine Benutzerdefinierte Kategorie in i-doit abzubilden.

    Dazu muss ich die Einträge aus einer selbsterstellten Dialog+ Liste per API abfragen um die Auswahl in besagter Anwendung darzustellen.

    Wo sehe ich die "property" Eigenschaft meiner eigenen Dialog+ Liste, die für den API-Call benötigt wird?



  • Unter Verwaltung an der Stelle, wo die Benutzerdefinierte Kategorie erstellt wurde, gibt es unten eine Button "Technische Konfiguration anzeigen". Da sollte die notwendige Information drin stehen. Ich selbst habe noch Dialog+ Felder mittels API bearbeitet, aber dieser Beitrag deutet an, dass dort einiges an Bugs lauern kann.



  • Die Infos sind mir auch bekannt. Mit Hilfe dieser ist es auch kein Problem Daten über das API in die Kategorie zu schreiben.
    Allerdings brauche ich dafür eine Referenz auf die Möglichen Optionen der Dialog+ Liste, also die ID der Information, die eingetragen werden soll. Daran scheitere ich momentan.

    Jetzt könnte ich diese Info, da sie relativ statisch ist, in der Legacy-Anwendung auch statisch hinterlegen. Das bedeutet aber, dass ich bei einer Änderung der Listenoptionen, konret heim hinzufügen bzw. entfernen, an 2 Stellen aktiv werden muss.

    Bei Built-In Dialog+ Listen gelingt das Abfragen auch problemlos. Die Doku gibt das ja entsprechende Beispiele. Eine Alternative wäre noch, die Daten direkt per SQL aus der Datenbank abzugreifen. Aber das würde ich gerne vermeiden wollen.



  • Hallo

    um die Einträge der Drop-Down Liste lesen zu können, musst du zunächst per API die Methode cmdb.dialog.read nutzen. Damit erhältst du eine Liste der Einträge + id. Danach kannst du die Dialog-Admin Werte per cmdb.category.update an der benutzerdefinierten Kategorie ändern.



  • @jsemere
    Hi und danke, aber das ist mir soweit klar und bekannt. Die Methode cmdb.dialog.read benötigt den Parameter "property". Mir ist es bisher noch nicht gelungen, diesen zu für meine Liste zu erkennen.



  • Hallo schultzg,

    in der aktuellen Version können die Listen für die benutzerdefinierte Kategorie nicht ausgelesen werden. Ich würde dir empfehlen, diesen Feature hier zu platzieren.


  • i-doIT Team

    Hallo zusammen,

    benutzerdefinierte "Dialog+"-Attribute sollten sich problemlos via API auslesen lassen. Hier ein Beispiel, das mit unserer Online Demo funktioniert:

    Request:

    {
        "version": "2.0",
        "method": "cmdb.dialog.read",
        "params": {
            "category": "C__CATG__CUSTOM_FIELDS__CLIENT",
            "property": "f_popup_c_1499071800714",
            "apikey": "c1ia5q",
            "language": "en"
        },
        "id": 1
    }
    

    Response:

    {
        "jsonrpc": "2.0",
        "result": [
            {
                "id": "19",
                "const": "",
                "title": "New"
            },
            {
                "id": "20",
                "const": "",
                "title": "Used"
            },
            {
                "id": "21",
                "const": "",
                "title": "Leased"
            },
            {
                "id": "22",
                "const": "",
                "title": "Bring Your Own Device (BYOD)"
            }
        ],
        "id": 1
    }
    

    Den nötigen Wert für property erhält man über "Verwaltung > CMDB Einstellungen > Benutzerdefinierte Kategorien > KATEGORIE-NAME > Technische Konfiguration anzeigen".

    Ähnliches gilt für Attribute vom Typ "Dialog+ (Mehrfachauswahl)".

    Getestet mit i-doit pro 1.10.2 und API Add-on 1.9.1

    Viele Grüße
    Benjamin


 


Datenschutz / Privacy Policy