Doppelte Single-Value Einträge löschen
-
Hallo zusammen!
Ich habe jetzt auf i-doit 1.0 PRO aktualisiert. Das hat auch soweit gut funktioniert. Nachdem ich jedoch den "Support Button to fix them all" getestet habe, ist mir aufgefallen, dass Einträge in den benutzerdefinierten Kategorien fehlen. Ich habe durch testen rausbekommen, dass es am Button " Doppelte Singe-Value Einträge löschen" liegt. Ich nehme mal an, dass das so nicht gewollt ist!?
Gruß,
Philipp -
Hallo Philipp,
ich benötige etwas mehr Informationen zu diesem Problem:
- Fehlen ALLE Einträge aller benutzerdefinierten Kategorien oder nur manche?
- Lässt sich in (einer Sicherung) der Datenbank nachvollziehen ob pro Objekt mehr als ein Eintrag pro Kategorie existierte?
- Beinhalten die betroffenen Objekte mehr als eine benutzerdefinierte Kategorie?
Die Funktion "Doppelte Single-Value Einträge löschen" löscht, wie der Name schon sagt, nur Einträge aus Single-Value Kategorien wenn pro Objekt mehr als ein Eintrag existiert… Es kann natürlich passieren das blöderweise genau der Datensatz entfernt wurde, der die Daten beinhaltete.
Viele Grüße,
Leo -
Hi!
Die Objekte haben zwei benutzerdefinierte Kategorien. Gelöscht wird alles bis auf das erste Feld in der ersten benutzerdefinierten Kategorie, unabhängig davon ob der Feldtyp Dialog+, Text oder Link ist.
Was genau ist mit mehr als ein Eintrag pro Kategorie gemeint? Soweit ich sehen kann ist pro definierten Feld nur ein Eintrag vorhanden und auch keine hinterlegten Informationen doppelt.Mfg
-
Hallo Philipp,
alles klar - Ich habe mir das Problem mal angesehen… Das ist relativ leicht zu reparieren! Der Fix wird auch im kommenden 1.0.1 Release enthalten sein:
In der Datei "<i-doit>/src/classes/modules/isys_module_system.class.php" in der Methode "cleanup_duplicate_single_value_entries" (beginnt etwa auf Zeile 1851) muss im "$l_blacklist_cats" Array nur die folgende Konstante ergänzt werden "C__CATG__CUSTOM_FIELDS". Das sollte dann in etwa so aussehen:
public function cleanup_duplicate_single_value_entries() { global $g_comp_database; echo 'Deleting duplicate single-value categorie entries... '; // Here we define some categories, which are not allowed to be modified. $l_blacklist_cats = array( C__CMDB__SUBCAT__NETWORK_PORT_OVERVIEW, C__CATG__STORAGE, C__CATG__CUSTOM_FIELDS ); ...
Mit "mehr als ein Eintrag pro Kategorie" ist gemeint, das es in bestimmten Situationen (imports, template-engine, …) passieren kann, das selbst in single-value Kategorien mehr als ein Datensatz pro Objekt existiert... Und dies wird durch die Funktion bereinigt.</i-doit>