API Konstrukt via PHP benutzerdefiniertes Objekt
-
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 -
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 werdenIch hoffe damit klappt es!
Viele Grüße
Leo -
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