Community

    • Register
    • Login
    • Search
    • Categories
    • Recent
    • Popular
    • Users
    • Search

    Simkarte zu Handy via API zuweisen

    Entwicklung
    2
    6
    276
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • S
      skussmann last edited by skussmann

      Bitte um Hilfe. Wenn ich versuche eine existierende Simkarte zu einem exisierenden Handy via API zuzuweisen bekomme ich zwar die Meldung „Category entry successfully saved“, sehe jedoch keine Veränderung in der GUI.

      Laut I-DOIT Log:

      Request: {
          "params": {
              "object": 105943,
              "data": {
                  "isys_obj__id": 105943,
                  "isys_catg_cards_list__id": 105489
              },
              "category": "C__CATG__ASSIGNED_SIM_CARDS",
              "apikey": "...",
              "language": "en"
          },
          "method": "cmdb.category.save",
          "id": 162929028596,
          "version": "2.0"
      }
      
      Response:  {
          "success": true,
          "message": "Category entry successfully saved",
          "entry": 1
      }
      

      Auch beim Auslesen via API existiert danach keine Verbindung, wenn ich die Verbindung händisch via GUI setze komme ich sehr wohl die Verbindung auch via API retour.

      105943 ist die ID des Cellular Phone, 105489 ist die ID der SIM card. Beides wurde schon via API erstellt, und passt soweit auch. Lediglich die Verbindung der beiden Objekte will aus irgendeinem Grund über die API nicht klappen.

      Wäre für jeden Hinweis dankbar, was ich hier exakt falsch mache. Besten Dank für euren Input vorab.

      Danke,
      Stefan

      LFischer 1 Reply Last reply Reply Quote 0
      • LFischer
        LFischer @skussmann last edited by

        Hallo @skussmann

        ich müsste erst probieren dieses Verhalten lokal zu reproduzieren, könnte mir aber vorstellen das es ggf. aufgrund der Attribut-Namen zu Problemen kommen könnte. Diese haben nämlich das Format einer Tabellenspalten - vielleicht gerät i-doit hier durcheinander.

        Hattest du probiert die Daten aus der anderen Richtung zu speichern? Also in der Kategorie C__CATG__SIM_CARD über das Attribut assigned_mobile. Das könnte ein Workaround sein, bis wir das Problem angegangen sind 🙂

        Viele Grüße
        Leo

        S 1 Reply Last reply Reply Quote 0
        • S
          skussmann @LFischer last edited by

          Hallo @lfischer ,

          danke für die rasche Rückmeldung. Die Keys wurden anhand der Definition in Categories and attributes verwendet.
          2021-08-20 10_00_47-Window.png

          LFischer 1 Reply Last reply Reply Quote 0
          • LFischer
            LFischer @skussmann last edited by

            Hey @skussmann

            die verwendeten Keys sind korrekt - die konnte ich auch so im Code finden, sie haben lediglich eine "ungewöhnliche" Form 🙂 Ich bin leider noch nicht dazu gekommen den Fehler zu reproduzieren...

            Hattest du es mit dem Workaround probiert den ich vorgeschlagen habe?

            Viele Grüße
            Leo

            S 1 Reply Last reply Reply Quote 0
            • S
              skussmann @LFischer last edited by

              Hallo @lfischer ,

              Danke für die Rückmeldung. Habe den Workarround soeben ausprobiert, auf diesem Wege funktioniert es, ja. Vielen Dank für den Input.

              Kannst Du mir bitte dennoch sagen wie die Syntax korrekt lauten müsste für C__CATG__ASSIGNED_SIM_CARDS?
              Habe nämlich das selbe Problem mit C__CATS__LAYER2_NET_ASSIGNED_PORTS, und ich vermute ich mache hier etwas falsch. Dort sind nämlich auch ähnliche Keynamen in Verwendung, ebenso write type integer[].

              Besten Dank vorab,
              LG Stefan

              LFischer 1 Reply Last reply Reply Quote 0
              • LFischer
                LFischer @skussmann last edited by LFischer

                Hallo @skussmann

                ich bin nun endlich dazu gekommen das Problem nachzustellen - es stellt sich raus das die Daten in deinem Request nicht korrekt übergeben werden. Normalerweise meldet i-doit sich in einem solchen Fall mit einer Fehlermeldung... Hast du ggf. die "API Validierung" abgeschaltet?

                Die Fehlermeldung würde so aussehen:

                Internal error: There was an validation error [isys_obj__id: (object_browser) Property has to be an array.; isys_catg_cards_list__id: (object_browser) Property has to be an array.]
                

                Da hier mit "Objekt Referenzen" gearbeitet wird (im Frontend geschieht dies über Objekt-Browser) muss die ID folgendermaßen übergeben werden:

                {
                    "version": "2.0",
                    "method": "cmdb.category.save",
                    "params": {
                        "object": 21001,
                        "data": {
                            "isys_obj__id": {
                                "id": 21001
                            },
                            "isys_catg_cards_list__id": {
                                "id": 21003
                            }
                        },
                        "category": "C__CATG__ASSIGNED_SIM_CARDS",
                        "apikey": "<apikey>"
                    },
                    "id": 1
                }
                

                Ich schätze bei C__CATS__LAYER2_NET_ASSIGNED_PORTS dürfte es ein ähnliches Problem sein 🙂

                Ich hoffe ich konnte dir weiterhelfen!

                Viele Grüße
                Leo

                edit

                Ich schätze hier müssen wir unsere API Doku noch mal anpassen, da diese falsche Informationen liefert 😞

                1 Reply Last reply Reply Quote 0
                • First post
                  Last post