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

    API Konstrukt via PHP benutzerdefiniertes Objekt

    Scheduled Pinned Locked Moved Entwicklung
    3 Posts 2 Posters 60 Views 1 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.
    • StefanP74S Offline
      StefanP74
      last edited by

      Hallo,

      ich stecke fest und würde am Boden kriechend Hilfe benötigen.
      Aus einem PHP-Script wird via API in eine benutzerdefinierte Kategorie sowie eines Benutzerdefinierten Objekts geschrieben.

      Der Datensatz wird in i-doit erstellt, der Titel wird hinterlegt im Feld Bezeichnung.
      Doch der Rest kommt nicht an. Die Variablen, die übergeben werden, sind befüllt.
      Ab C__CATG__CUSTOM_FIELDS_PI_LSCHPROTOKOLL ist wohl ein Fehler.

      Erkennt jemand den Fehler?

      $jsonData = [
      	'version' => '2.0',
      	'method'  => 'cmdb.object.create',
      	'params'  => [
      		'apikey'   => $apiKey,
      		'type'     => 'C__OBJTYPE__SD_LSCHPROTOKOLL',
      		'title'    => $vartitle,
      		'categories' => [
      			'C__CATG__CUSTOM_FIELDS_PI_LSCHPROTOKOLL' => [
      				'f_popup_c_1675341962187' => $currentDateTime,
      				'f_popup_c_1675342078466' => $datenbereich,
      				'f_popup_c_1675342171620' => $loeschverfahren,
      				'f_popup_c_1675342277156' => $varwho,
      				'description' => $vardescript
      				]
      			],
      		],
      	'id' => 3 // ID für die Anfrage
      ];
      

      Danke
      LG Stefan

      LFischerL 1 Reply Last reply Reply Quote 0
      • LFischerL Offline
        LFischer @StefanP74
        last edited by

        Hey @StefanP74,

        könntest du ggf. ein paar mehr Infos zu deiner benutzerdefinierten Kategorie posten? Sollten die Attribut-Schlüssel und Inhalte stimmen könnte ich mir noch vorstellen das es ggf. doppelt in einem Array stehen muss, also anstatt:

        [...]
        'categories' => [
            'C__CATG__CUSTOM_FIELDS_XYZ' => [
                'attr' => 'wert',
                'attr2' => 'wert2',
                ...
            ]
        ],
        

        Müsste es so aussehen:

        [...]
        'categories' => [
            'C__CATG__CUSTOM_FIELDS_XYZ' => [
                [
                    'attr' => 'wert',
                    'attr2' => 'wert2',
                    ...
                ]
            ]
        ],
        
        

        Der Grund dafür (wenn ich mich richtig erinnere) ist das wir keinen Unterschied zwischen Single- und Multivalue Kategorien machen, wenn diese beim erstellen des Objekts erzeugt werden.
        Deswegen müssen auch Singlevalue Kategorien noch mal in ein Array geschachtelt werden 🙂

        Ich hoffe damit klappt es!

        Viele Grüße
        Leo

        StefanP74S 1 Reply Last reply Reply Quote 0
        • StefanP74S Offline
          StefanP74 @LFischer
          last edited by

          Guten Morgen @LFischer,

          danke für den Input, bei Multi-Value hat es dann geklingelt.

          $jsonData = [
          		'version' => '2.0',
          		'method'  => 'cmdb.object.create',
          		'params'  => [
          			'apikey'   => $apiKey,
          			'type'     => 'C__OBJTYPE__SD_LSCHPROTOKOLL',
          			'title'    => $vartitle,
          			'categories' => [
          				'C__CATG__CUSTOM_FIELDS_PI_LSCHPROTOKOLL' => [
          					[
          						'f_popup_c_1675341962187' => $currentDateTime,
          						'f_popup_c_1675342078466' => [ $datenbereich ],
          						'f_popup_c_1675342171620' => $loeschverfahren,
          						'f_popup_c_1675342277156' => [ $varwho ],
          						'description' => $vardescript
          					]
          				]
          			],
          		],
          		'id' => 3 // ID für die Anfrage
          	];
          

          Ich musste zusätzlich zu deiner Lösung die beiden Multi-Value Felder nochmal in eckige Klammern packen.
          Perfekt, danke.

          Lustig wie oft man im api log über diese Zeile an einem Freitag drüberlesen kann:
          "There was an validation error: f_popup_c_1675342277156: (object_browser) Property has to be an array."
          😌

          So kann der Montag beginnen 😉

          LG Stefan

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