Multi-Value Eintrag löschen bzw. archivieren
- 
 Guten Tag Ich versuche seit einiger Zeit über die REST-Schnittstelle einen Eintrag aus einer Custom Category zu löschen. Beim erstellen funktioniert alles wie gewollt. 
 Nur bei der Entfernung eines bestimmten Eintrages bekomme ich diese Fehlermeldung:
 i-doit system error: Unable to rank single value category entry. mit dem Code -32099.
 Diesen Fehler bekomme ich bei cmdb.category.archive sowie bei cmdb.category.delete.
 Bei der Category handelt es sich jedoch definitiv um ein Multi-Value.
 Wenn ich cmdb.category.purge verwende, kriege ich eine positive success Rückmeldung. Im Webinterface ist der Eintrag dann jedoch immernoch vorhanden.
 Mit Categories des Systems bspw. Contact Assignment funktioniert das einwandfrei. Liegt es vielleicht daran das es eine Custom Category ist?Hier der Body der Anfrage: "{ "version": "2.0", "method": "cmdb.category.archive", "params": { "category": "C__CATG__CUSTOM_FIELDS_APITEST", "cateID": "2", "object": 6505, "apikey": "ApiKey", "language": "en" }, "id": 1 }"Für die Identifikation funktionieren weder cateID noch entry. Vielen Dank im Voraus 
- 
 Hallo @nicolas ich fürchte hier fehlt ein entsprechender Check im Kontext der benutzerdefinierten Kategorien. Ich werde mir das mal ansehen  Viele Grüße 
 Leo
- 
 Hallo @Nicolas ich habe mir das mal angesehen und konnte ad-hoc keinen Fehler finden. Mir ist aber aufgefallen das du für die Methode cmdb.category.archiveden ParameterentrystattcateIDverwenden musst. Gleiches gilt fürcmdb.category.deleteundcmdb.category.purge.Probier es mal damit  Viele Grüße 
 Leo
- 
 @lfischer 
 Hi, erstmal vielen Dank für die schnelle Antwort.
 Das habe ich bereits probiert. Hier erneut der Body mit dem Versuch mit entry:"{ "version": "2.0", "method": "cmdb.category.archive", "params": { "category": "C__CATG__CUSTOM_FIELDS_APITEST", "entry": "1","object": 6505, "apikey": "ApiKey", "language": "en" }, "id": 1 }"Auch hier mit derselben Fehlermeldung. 
 Wie gesagt, in einem anderen Skript, das Contact Assignments behandelt, was keine custom category ist, funktioniert die Anfrage mit genau diesem Body wunderbar.P.S.: die Anführungszeichen um die entryid machen keinen Unterschied. Grüsse 
 Nicolas
- 
 Hi @nicolas das ist merkwürdig. Ich fürchte in dem Fall kann ich das Problem nicht nachstellen. Sobald ich entrynutze läuft es korrekt durch.Welche i-doit und API Add-on Version sind bei dir installiert? Gibt es ggf. noch andere benutzerdefinierte Kategorien mit ähnlicher Konstante? 
 Du könntest noch probieren die benutzerdefinierte Kategorie (ohne Änderung) zu überspeichern und anschließend den Cache zu leeren.Viele Grüße 
 Leo
- 
 @lfischer 
 Aktuell befinden wir uns auf der Version 1.15.
 Was meinst du mit überspeichern?
 Das mit dem Cache muss ich wohl nächste Woche ausprobieren. Ich bin nicht für die Backups verantwortlich und will das erst noch abklären. Nicht das da noch etwas verloren geht 
 Ich melde mich wieder, wenn wir die nötigen Vorkehrungen getroffen haben.Grüsse 
 Nicolas
- 
 Hey @nicolas mit "überspeichern" meine ich: du öffnest die Konfiguration und speicherst diese, ohne etwas zu verändern. In manchen Fällen kann sowas helfen, wenn beim initialen Speichern irgendetwas nicht funktioniert hat. Generell könntest du auch probieren auf die aktuellsten Versionen von i-doit (1.16.2) und API (1.12.1) zu aktualisieren  Viele Grüße 
 Leo
- 
 Hi @lfischer 
 Das leeren des Caches hat nichts genützt.
 Nachdem wir auf die API Version 1.12.1 umgestiegen sind, läuft jedoch alles Vielen Dank für die Unterstützung und einen schönen Tag. Grüsse 
 Nicolas
- 
 @Nicolas said in Multi-Value Eintrag löschen bzw. archivieren: Hi @LFischer I have same problem when i want importing application from cmk add 1.8.3 and api 1.14.1. i installed all hotfixs. i-doit responded with an error: i-doit system error: The specified version could not be assigned to this application 
 Stack trace:
 #0 phar:///usr/local/bin/idoitcmk/vendor/idoit/apiclient/src/API.php(532): Idoit\APIClient\API->evaluateResponse()
 #1 phar:///usr/local/bin/idoitcmk/src/API/Idoit.php(413): Idoit\APIClient\API->batchRequest()
 #2 phar:///usr/local/bin/idoitcmk/src/Service/ImportApps.php(336): idoit\idoitcmk\API\Idoit->commit()
 #3 phar:///usr/local/bin/idoitcmk/src/Service/ImportApps.php(123): idoit\idoitcmk\Service\ImportApps->processSoftwareAssignment()
 #4 phar:///usr/local/bin/idoitcmk/src/Service/Import/ApplicationCategory.php(32): idoit\idoitcmk\Service\ImportApps->processApplications()
 #5 phar:///usr/local/bin/idoitcmk/src/Service/ImportObjects.php(365): idoit\idoitcmk\Service\Import\ApplicationCategory->process()
 #6 phar:///usr/local/bin/idoitcmk/src/Service/ImportObjects.php(278): idoit\idoitcmk\Service\ImportObjects->import()
 #7 phar:///usr/local/bin/idoitcmk/src/Command/Pull.php(398): idoit\idoitcmk\Service\ImportObjects->update()
 #8 phar:///usr/local/bin/idoitcmk/src/Command/Pull.php(373): idoit\idoitcmk\Command\Pull->importFromCue()
 #9 phar:///usr/local/bin/idoitcmk/src/Command/Pull.php(123): idoit\idoitcmk\Command\Pull->import()
 #10 phar:///usr/local/bin/idoitcmk/vendor/bheisig/cli/src/App.php(906): idoit\idoitcmk\Command\Pull->execute()
 #11 phar:///usr/local/bin/idoitcmk/vendor/bheisig/cli/src/App.php(389): bheisig\cli\App->executeCommand()
 #12 phar:///usr/local/bin/idoitcmk/vendor/bheisig/cli/src/App.php(318): bheisig\cli\App->satisfyUserChoice()
 #13 phar:///usr/local/bin/idoitcmk/bin/idoitcmk.php(149): bheisig\cli\App->run()
 #14 /usr/local/bin/idoitcmk(2): include('...')
 #15 {main}Api log> 
 [2023-10-16 10:01:41 169852] DEBUG: Prepare to run request...
 [2023-10-16 10:01:41 189719] ERROR: An exception occured while processing request: -32099 i-doit system error: The specified version could not be assigned to this application
 [2023-10-16 10:01:41 189783] DEBUG: -------------------------------------------------------------
 "version": "2.0",
 "method": "cmdb.category.save",
 "params": {
 "object": 14870,
 "category": "C__CATG__APPLICATION",
 "data": {
 "application": 14148,
 "assigned_version": "2.28.0"
 },
 "apikey": "=********",
 "language": "en"
 },
 "id": 2689
- 
 Hello @bsorkhpour this is a known problem  It happenes, because the API validation works on a "per property" basis instead of checking the given category data as one unit. It happenes, because the API validation works on a "per property" basis instead of checking the given category data as one unit.Because of this it will check the given version without knowing the reference application. The code will not be able to find the given version and result in an error. I'm afraid the only workaround for this is to disable the API validation. 
