Controller search_index fullindex PHP Fatal error Class not found



  • Schönen guten Tag zusammen.

    Über die Suchfunktion habe ich ein ähnliches Thema gefunden, aber für eine ältere i-doit Version.

    Wir haben i-doit open in der Version 1.9.2 installiert.
    Dabei haben wir uns an die Artikel in der Knowledge Base gehalten und auch die Cronjobs wie beschrieben eingerichtet.
    Es wurden Daten aus OCS Inventory NG importiert, Städte, Räume, Server, Racks und so weiter angelegt und auch miteinander in Beziehung gesetzt.

    Am nächsten Morgen hatten wir dann eine Fehlermeldung und haben den Befehl dann noch einmal manuell per SSH aufgeführt und geschaut, ob der Fehler noch einmal auftritt.
    Folgender Fehler tritt jedes mal auf wenn der Controller mit dem handler search_index aufgerufen wird.

    USER@I-DOIT:~$ sudo -u www-data /var/www/html/i-doit/controller -i 1 -u <username>-p <passwort>-m search_index fullindex
    CMDB: [>                                          ] 1%  31/3303 remaining: ~106 sec.  elapsed: 1 sec.  PHP Fatal error:  Uncaught Error: Class 'isys_cmdb_dao_category_s_enclosure' not found in /var/www/html/i-doit/src/classes/modules/cmdb/dao/category/global/isys_cmdb_dao_category_g_location.class.php:232
    Stack trace:
    #0 /var/www/html/i-doit/src/classes/modules/cmdb/dao/category/isys_cmdb_dao_category.class.php(3179): isys_cmdb_dao_category_g_location->retrievePositionInRack(Array, Array)
    #1 /var/www/html/i-doit/src/classes/modules/cmdb/dao/category/isys_cmdb_dao_category_data.class.php(308): isys_cmdb_dao_category->category_data(Object(isys_cmdb_dao_category_data), 2, Array)
    #2 /var/www/html/i-doit/src/classes/modules/cmdb/dao/category/isys_cmdb_dao_category_data.class.php(332): isys_cmdb_dao_category_data->reload()
    #3 /var/www/html/i-doit/src/classes/modules/cmdb/src/Search/IndexExtension/ModelLoader.php(130): isys_cmdb_dao_category_data->data()
    #4 /var/www/html/i-doit/src/classes/modules/cmdb/src/Search/IndexExtension/Manager/CmdbIndexManager.php(139): idoit\Module\Cmdb\Search\IndexExtension\ModelLoader->loadWith(Array, Arra in /var/www/html/i-doit/src/classes/modules/cmdb/dao/category/global/isys_cmdb_dao_category_g_location.class.php on line 232</passwort></username> 
    

    Wir haben erst einmal diesen Job auskommentiert um nicht mit der Fehlermeldung geflutet zu werden.
    Über Lösungsvorschläge würden wir uns sehr freuen.

    Mit freundlichen Grüßen
    Dominic



  • Hallo Dominic,

    danke für die Information. Anscheinend wurde in der i-doit 1.9.2 Open Version eine Abfrage nicht hinzugefügt die das verhindern sollte.
    Versuch mal folgendes:
    1. Erstelle ein Backup von der Datei [i-doit Root Verzeichnis]/src/classes/modules/cmdb/dao/category/global/isys_cmdb_dao_category_g_location.class.php
    2. Öffne die Datei [i-doit Root Verzeichnis]/src/classes/modules/cmdb/dao/category/global/isys_cmdb_dao_category_g_location.class.php
    3. Ersetz die Zeilen 232 - 234 mit folgenden Code Zeilen:

    $enclosureSorting = 'desc';
    
    if (class_exists('isys_cmdb_dao_category_s_enclosure'))
    {
        $enclosureSorting = isys_cmdb_dao_category_s_enclosure::instance(isys_application::instance()->database)
            ->get_data(null, $parentObjectId)
            ->get_row_value('isys_cats_enclosure_list__slot_sorting');
    }
    

    4. Speichere die Änderungen und schließe die Datei
    5. Führe den Controller für den Suchindex erneut auf

    Ich hoffe das dies die Lösung für das Problem ist.

    Gruß,
    vqh



  • Hallo vqh,
    vielen Dank für die schnelle Antwort.
    Ich habe die Codezeilen ersetzt und den Controller erneut aktiviert.
    Dieses mal lief der Controller für Surchindex ohne weitere Probleme durch.

    Vielen Dank für die schnelle Hilfe.

    Mit freundlichen Grüßen Dominic


 


Datenschutz / Privacy Policy