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

    Anwendungszuweisung inkl. Lizenz via API

    Scheduled Pinned Locked Moved Entwicklung
    7 Posts 3 Posters 755 Views 2 Watching
    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 Offline
      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
      • PatrickFeilerP Offline
        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 Offline
          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 Offline
            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 Offline
              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 Offline
                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
                • PatrickFeilerP Offline
                  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