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

    Zuweisung einer Person zu einer Personengruppe per API funktioniert nicht

    Scheduled Pinned Locked Moved Entwicklung
    3 Posts 2 Posters 316 Views
    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.
    • O Offline
      OliverGnapp
      last edited by

      Hallo,

      in der Category "Person group memberships" ist dokumentiert, dass das Feld "Person group memberships" vom Typ Integer[] ist.

      Quelle: Administration - Interfaces - external data - JSON-RPC API - Categories and attributes - Category : Person group membership C__CATS__PERSON_ASSIGNED_GROUPS)

      Verwende ich im Aufruf ein Integer-Array, erscheint ein Datenbankfehler:

      Aufruf:
      curl -k -u "very:secret" -H "Content-Type: application/json" -X POST -d "{ "objid" : 29, "category" : "C__CATS__PERSON_ASSIGNED_GROUPS", "data" : { "connected_object" : [ 35 ], "contact" : 29 } }" http://localhost:4321/latest/category
      {
      "id": 0,
      "success": false,
      "message": "Internal error: An database error occurred that indicates that you provided an Id which does not exist. \n Please check all properties which are referencing an entry for validity: FOREIGN KEY (isys_person_2_group__isys_obj__id__group) REFERENCES isys_obj (isys_obj__id) ON DELETE CASCADE ON)"
      }

      Auszug aus dem API-Log:
      [2019-02-25 10:02:05 588697] DEBUG: Calculated model parameters based on method "cmdb.category.save"":
      [
      "category",
      {
      "object": 29,
      "category": "C__CATS__PERSON_ASSIGNED_GROUPS",
      "data": {
      "contact": 29,
      "connected_object": [
      35
      ]
      },
      "objID": 29,
      "apikey": "xmreky8lf404k0oo",
      "language": "en",
      "option": "save"
      }
      ]
      [2019-02-25 10:02:05 588812] DEBUG: Prepare to run request...
      [2019-02-25 10:02:05 590261] INFO: Method: save
      [2019-02-25 10:02:05 600389] ERROR: An exception occured while processing request: -32603 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_person_2_group__isys_obj__id__group) REFERENCES isys_obj (i sys_obj__id) ON DELETE CASCADE ON)
      {
      "mysqlErrorCode": 1452,
      "mysqlErrorMessage": "Database error : Query error: 'INSERT INTO isys_person_2_group SET isys_person_2_group__isys_obj__id__person = '29', isys_person_2_group__isys_obj__id__group = 'Array';':\nCannot add or update a child row: a foreign key constraint fails (idoit_data.isys_person_2_group, CONSTRAINT isys_person_2_group_ibfk_2 FOREIGN KEY (isys_person_2_group__isys_obj__id__group) REFERENCES isys_obj (isys_obj__id) ON DELETE CASCADE ON)\n"
      }

      Verwende ich im Aufruf anstatt einem Integer-Arrays nur den Integer-Wert, erscheint in der Ausgabe ein Formatfehler:

      Aufruf:
      curl -k -u "very:secret" -H "Content-Type: application/json" -X POST -d "{ "objid" : 29, "category" : "C__CATS__PERSON_ASSIGNED_GROUPS", "data" : { "connected_object" : 35 , "contact" : 29 } }" http://localhost:4321/latest/category
      {
      "id": 0,
      "success": false,
      "message": "Internal error: There was an validation error"
      }

      Auszug aus dem API-Log:
      [2019-02-25 10:03:12 281845] DEBUG: Calculated model parameters based on method "cmdb.category.save"":
      [
      "category",
      {
      "object": 29,
      "category": "C__CATS__PERSON_ASSIGNED_GROUPS",
      "data": {
      "contact": 29,
      "connected_object": 35
      },
      "objID": 29,
      "apikey": "xmreky8lf404k0oo",
      "language": "en",
      "option": "save"
      }
      ]
      [2019-02-25 10:03:12 281962] DEBUG: Prepare to run request...
      [2019-02-25 10:03:12 283243] INFO: Method: save
      [2019-02-25 10:03:12 288691] ERROR: An exception occured while processing request: -32603 Internal error: There was an validation error
      {
      "connected_object": "(object_browser) Property has to be an array."
      }

      Object 29 ist die Person und Object 35 ist die Personengruppe.

      Wie muss ein korrekter Aufruf aussehen?
      Was ist bei der Verknüpfung von Personen, Personengrupppen und Organisationen zu beachten?

      Grüße
      Oliver

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

        Das ist wohl das gleiche Problem wie hier:

        Also: connected_object ist vom Typ Integer und Validierung ist auszuschalten.

        1 Reply Last reply Reply Quote 0
        • O Offline
          OliverGnapp @OliverGnapp
          last edited by

          @OliverGnapp

          Danke für den Link.
          Die Lösung ( api.validation = 0 in den Expert Settings ) hat geholfen.

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