Bonjour à l'équipe,
GLPI : 9.4.5
Plugin: 1.6.1 (mais vrai aussi dans 1.7 - analyse de code)
Version OCS: 2.9.1
Après migration d'OCS vers 2.9.1, l'importation et la mise à jour dans GLPI ne se fait plus.
Quand on met le debug actif, alors une erreur php se produit:
Fatal error: Uncaught Error: Call to a member function fetch_assoc() on boolean in /opt/glpi/inc/dbmysql.class.php:329 Stack trace: #0 /opt/glpi/plugins/ocsinventoryng/inc/ocsdbclient.class.php(341): DBmysql->fetch_assoc(false) #1 /opt/glpi/plugins/ocsinventoryng/inc/ocsdbclient.class.php(1008): PluginOcsinventoryngOcsDbClient->getComputerSections(Array, 524159, 1, 31, 0) #2 /opt/glpi/plugins/ocsinventoryng/inc/ocsclient.class.php(374): PluginOcsinventoryngOcsDbClient->getComputers(Array, '59') #3 /opt/glpi/plugins/ocsinventoryng/inc/ocsprocess.class.php(1159): PluginOcsinventoryngOcsClient->getComputer('59', Array) #4 /opt/glpi/plugins/ocsinventoryng/front/ocsng.sync.php(52): PluginOcsinventoryngOcsProcess::synchronizeComputer(Array) #5 {main} thrown in /opt/glpi/inc/dbmysql.class.php on line 329
Quand on regarde dans les logs, on a l'erreur:
[2022-01-18 23:27:36] glpisqllog.ERROR: DBmysql::query() in /opt/glpi/inc/dbmysql.class.php line 187
*** MySQL query error:
SQL: SELECT
softwares.NAME,
softwares.VERSION,
softwares.PUBLISHER,
softwares.COMMENTS,
softwares.FOLDER,
softwares.FILENAME,
softwares.FILESIZE,
softwares.SOURCE,
softwares.HARDWARE_ID,softwares.GUID,
softwares.LANGUAGE,
softwares.INSTALLDATE,
softwares.BITSWIDTHFROM softwares
WHERE softwares.HARDWARE_ID IN (363)ORDER BY id DESC
Error: Table 'ocsweb.softwares' doesn't exist
Backtrace :
...ns/ocsinventoryng/inc/ocsdbclient.class.php:340
...s/ocsinventoryng/inc/ocsdbclient.class.php:1008 PluginOcsinventoryngOcsDbClient->getComputerSections()
plugins/ocsinventoryng/inc/ocsclient.class.php:374 PluginOcsinventoryngOcsDbClient->getComputers()
...ns/ocsinventoryng/inc/ocsprocess.class.php:1159 PluginOcsinventoryngOcsClient->getComputer()
plugins/ocsinventoryng/front/ocsng.sync.php:52 PluginOcsinventoryngOcsProcess::synchronizeComputer()
{"user":"2@alkazar"}
Après recherche au niveau OCS, il s'avère que les tables autour des logiciels ont complétement changé, à commencer par le nom qui n'est plus au pluriel et il y a une scission de la table logiciel en plusieurs.
J'ai vérifier que le problème était similaire (analyse du code de ocsdbclient.
Je vous souhaite une bonne correction, car je sais qu'il faudra concerver la compatibilité en fonction de la version d'OCS.
Bonjour à l'équipe, GLPI : 9.4.5 Plugin: 1.6.1 (mais vrai aussi dans 1.7 - analyse de code) Version OCS: 2.9.1
Après migration d'OCS vers 2.9.1, l'importation et la mise à jour dans GLPI ne se fait plus.
Quand on met le debug actif, alors une erreur php se produit: Fatal error: Uncaught Error: Call to a member function fetch_assoc() on boolean in /opt/glpi/inc/dbmysql.class.php:329 Stack trace: #0 /opt/glpi/plugins/ocsinventoryng/inc/ocsdbclient.class.php(341): DBmysql->fetch_assoc(false) #1 /opt/glpi/plugins/ocsinventoryng/inc/ocsdbclient.class.php(1008): PluginOcsinventoryngOcsDbClient->getComputerSections(Array, 524159, 1, 31, 0) #2 /opt/glpi/plugins/ocsinventoryng/inc/ocsclient.class.php(374): PluginOcsinventoryngOcsDbClient->getComputers(Array, '59') #3 /opt/glpi/plugins/ocsinventoryng/inc/ocsprocess.class.php(1159): PluginOcsinventoryngOcsClient->getComputer('59', Array) #4 /opt/glpi/plugins/ocsinventoryng/front/ocsng.sync.php(52): PluginOcsinventoryngOcsProcess::synchronizeComputer(Array) #5 {main} thrown in /opt/glpi/inc/dbmysql.class.php on line 329
Quand on regarde dans les logs, on a l'erreur: [2022-01-18 23:27:36] glpisqllog.ERROR: DBmysql::query() in /opt/glpi/inc/dbmysql.class.php line 187 *** MySQL query error: SQL: SELECT
softwares
.NAME
,softwares
.VERSION
,softwares
.PUBLISHER
,softwares
.COMMENTS
,softwares
.FOLDER
,softwares
.FILENAME
,softwares
.FILESIZE
,softwares
.SOURCE
,softwares
.HARDWARE_ID
,softwares
.GUID
,softwares
.LANGUAGE
,softwares
.INSTALLDATE
,softwares
.BITSWIDTH
FROMsoftwares
WHEREsoftwares
.HARDWARE_ID
IN (363)ORDER BYid
DESC Error: Table 'ocsweb.softwares' doesn't exist Backtrace : ...ns/ocsinventoryng/inc/ocsdbclient.class.php:340 ...s/ocsinventoryng/inc/ocsdbclient.class.php:1008 PluginOcsinventoryngOcsDbClient->getComputerSections() plugins/ocsinventoryng/inc/ocsclient.class.php:374 PluginOcsinventoryngOcsDbClient->getComputers() ...ns/ocsinventoryng/inc/ocsprocess.class.php:1159 PluginOcsinventoryngOcsClient->getComputer() plugins/ocsinventoryng/front/ocsng.sync.php:52 PluginOcsinventoryngOcsProcess::synchronizeComputer() {"user":"2@alkazar"}Après recherche au niveau OCS, il s'avère que les tables autour des logiciels ont complétement changé, à commencer par le nom qui n'est plus au pluriel et il y a une scission de la table logiciel en plusieurs.
J'ai vérifier que le problème était similaire (analyse du code de ocsdbclient.
Je vous souhaite une bonne correction, car je sais qu'il faudra concerver la compatibilité en fonction de la version d'OCS.
Bravo pour votre travail