Community

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

    Anwendungszuweisung inkl. Lizenz via API

    Entwicklung
    3
    7
    562
    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.
    • L
      Lumine last edited by

      Hallo,

      ich versuche einem Client eine Anwendung inkl. Lizenz zuzuweisen.
      Die Zuweisung der Anwendung funktioniert problemfrei, wenn ich aber bei "assigned_license" die Objekt ID der Lizenz eintrage bekomme ich

      Internal error: An database error occurred that indicates that you provided an Id which does not exist.
      Please check all properties which are referencing an entry for validity: FOREIGN KEY (isys_catg_application_list__isys_cats_lic_list__id) REFERENCES isys_cats_lic_list

      Das wird wohl wahrscheinlich daran liegen, dass im Lizenzobjekt ein weiteres Unterobjekt sitzt? Wie komme ich denn an die Objekt ID der Lizenz ran, die ich bei "assigned_license" eintragen muss?

      version = '2.0';
          method = 'cmdb.category.create';
          params = @{
                  apikey = "apikey"
                  language = "de"
                  objID = "10386"
                  catgID = "C__CATG__APPLICATION"
                  data = @{
                      assigned_license = "10367"
                      application = "10376"              
                  }
              };
          id = '1';
      

      Ist mein Body (nicht über die Syntax wundern, das ist Powershelll via Invoke-RestMethod)

      1 Reply Last reply Reply Quote 0
      • PatrickFeiler
        PatrickFeiler i-doIT Team last edited by

        Hallo,

        der Request kann durchaus funktionieren, leider habe ich kein Umgebung um das via Powershell abzufeuern.
        Wichtig ist zu beachten, dass die "cateID" der Lizenz verwendet werden muss.
        Wir legen zum Beispiel ein Objekt vom Typ Lizenz an und hat die Objekt-ID 1337.
        Wenn wir aber nun den eigentlichen Lizenzschlüssel anlegen, bekommt dieser Eintrag eine eindeutige id und diese muss verwendet werden.
        9635a434-777e-473a-83ad-1c064edee880-image.png

        Viel Erfolg und Gruß
        Patrick Feiler

        L 1 Reply Last reply Reply Quote 1
        • L
          Lumine @PatrickFeiler last edited by

          @PatrickFeiler

          Genau die ID brauchte ich! Hat auch direkt funktioniert!
          Vielen herzlichen Dank und ein schönes Wochenende.

          Hier mal das komplette Schnipsel, falls andere mal die gleiche Frage haben.

          $body = @{
              version = '2.0';
              method = 'cmdb.category.create';
              params = @{
                      apikey = "somekey"
                      language = "de"
                      objID = "10386"
                      catgID = "C__CATG__APPLICATION"
                      data = @{
                          assigned_license = "24"
                          application = "10376"              
                      }
                  };
              id = '1';  
          } 
          $body = $body | ConvertTo-Json
          Invoke-RestMethod -Uri $url -Method POST -ContentType application/json -Body $body
          
          1 Reply Last reply Reply Quote 0
          • L
            Lumine last edited by Lumine

            Ich muss doch nochmal etwas neues hinzufügen. Nun möchte ich die Lizenz auch wieder entfernen können. Das klappt an sich auch soweit, aber erst nachdem ich den API Befehl genau 3x durchgeschickt habe. Ich weiß leider nicht woran das liegen könnte. Mein Aufruf lautet wie folgt
            Als Ergebnis bekomme ich auch jedes Mal ein "Category entry '###' successfully deleted"

            $body = @{
                version = '2.0';
                method = 'cmdb.category.delete';
                params = @{
                        apikey = "apikey"
                        language = "de"
                        objID = "10428"
                        catgID = "12"
                        cateID = "204"
                    };
                id = '1';  
            } 
            

            Nach dem dritten mal bekomme ich dann via category.read kein Ergebnis mehr.

            1 Reply Last reply Reply Quote 0
            • F
              franknagel last edited by

              cmdb.category.delete bildet den kanonischen Lebenszyklus von Objekten ab:
              Status Normal -> Status Archived -> Status Deleted -> Purged.

              Für Ungeduldige gibt es die (undokumentierte) Funktion cmdb.category.quickpurge.

              L 1 Reply Last reply Reply Quote 1
              • L
                Lumine @franknagel last edited by

                @franknagel Ah! Ja das würde helfen. Ich nutze das ja um eine Softwareinstallation via Powershell noch gleichzeitig mit einem Eintrag im idoit zu begleiten. Wenn man die Software wieder deinstalliert, ist natürlich auch die Lizenz nicht mehr in benutzung. Daher brauche ich ja ein sofortiges "Löschen" der Zuweisung der Lizenz.

                Vielen Dank 🙂

                1 Reply Last reply Reply Quote 0
                • PatrickFeiler
                  PatrickFeiler i-doIT Team last edited by

                  @franknagel besser hätte ich es auch nicht erklären können ☺

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