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

    API Konstrukt via PHP benutzerdefiniertes Objekt

    Scheduled Pinned Locked Moved Entwicklung
    3 Posts 2 Posters 518 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

          Hello! It looks like you're interested in this conversation, but you don't have an account yet.

          Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.

          With your input, this post could be even better 💗

          Register Login
          • First post
            Last post