You are not logged in.
Pages: 1
Bonjour,
Malgré la mise à jour de GLPI vers la 9.4.1.1, j'ai toujours l'impossibilité de transférer en masse mes PC vers une autre entité.
Je suis super-admin récursif quand je fais la manip. J'ai mis le mode débug en route et voici le message que GLPI m'affiche :
Fatal error: Uncaught RuntimeException: Empty IN are not allowed in C:\xampp\htdocs\glpi\inc\dbmysqliterator.class.php:546 Stack trace: #0 C:\xampp\htdocs\glpi\inc\dbmysqliterator.class.php(516): DBmysqlIterator->analyzeCriterion(Array) #1 C:\xampp\htdocs\glpi\inc\dbmysqliterator.class.php(506): DBmysqlIterator->analyseCrit(Array) #2 C:\xampp\htdocs\glpi\inc\dbmysqliterator.class.php(288): DBmysqlIterator->analyseCrit(Array) #3 C:\xampp\htdocs\glpi\inc\dbmysqliterator.class.php(94): DBmysqlIterator->buildQuery('`glpi_contracts...', Array, false) #4 C:\xampp\htdocs\glpi\inc\dbmysql.class.php(569): DBmysqlIterator->execute(Array, '', false) #5 C:\xampp\htdocs\glpi\inc\transfer.class.php(2765): DBmysql->request(Array) #6 C:\xampp\htdocs\glpi\inc\transfer.class.php(2703): Transfer->transferSingleSupplier('2') #7 C:\xampp\htdocs\glpi\inc\transfer.class.php(1065): Transfer->transferInfocoms('Computer', '640', '640') #8 C:\xampp\htdocs\glpi\inc\transfer.class.php(203): Transfer->transferItem('Computer', '640', '640') #9 C:\xampp in C:\xampp\htdocs\glpi\inc\dbmysqliterator.class.php on line 546
Est-ce un bug ? Car j'ai suivi la manip à la lettre.
Cordialement,
Jérôme REYNAUD
Offline
Pouvez-vous poster les log dans glpi/files/_log/php-error.log et sql-error.log, ils sont plus complets
CentOS 6.5 - CentOS 7.x
PHP 5.6 - PHP 7.x - MySQL 5.6 - MariaDB 10.2 + APC + oOPcache
GLPI from 0.72 to dev version
Certifiée ITIL (ITV2F, ITILF, ITILOSA)
Offline
Bonjour,
Pour PHP, pas d'erreurs. Par contre, pour MySQL, voici l'erreur :
[2019-03-28 10:27:50] glpisqllog.ERROR: DBmysql::query() in C:\xampp\htdocs\glpi\inc\dbmysql.class.php line 177
*** MySQL query error:
SQL: DELETE FROM `glpi_documents_items` WHERE `glpi_suppliers`.`id` IS NULL LEFT JOIN `glpi_suppliers` ON (`glpi_documents_items`.`items_id` = `glpi_suppliers`.`id` AND `glpi_documents_items`.`itemtype` = 'Supplier')
Error: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'LEFT JOIN `glpi_suppliers` ON (`glpi_documents_items`.`items_id` = `glpi_supplie' at line 1
Backtrace :
inc\dbmysql.class.php:1043
inc\transfer.class.php:931 DBmysql->delete()
inc\transfer.class.php:174 Transfer->simulateTransfer()
front\transfer.action.php:46 Transfer->moveItems()
{"user":"1105@IUT-GLPI","mem_usage":"0.012\", 24.22Mio)"}
Offline
Bonjour,
Je relance ce sujet car j'ai le même type d'anomalie lors d'un transfert de téléphone vers une sous entité.
Je suis en version 9.4.2 et voici le log de l'anomalie en mode debug :
Fatal error: Uncaught RuntimeException: Empty IN are not allowed in E:\xampp\htdocs\glpi_test\inc\dbmysqliterator.class.php:546 Stack trace: #0 E:\xampp\htdocs\glpi_test\inc\dbmysqliterator.class.php(516): DBmysqlIterator->analyzeCriterion(Array) #1 E:\xampp\htdocs\glpi_test\inc\dbmysqliterator.class.php(506): DBmysqlIterator->analyseCrit(Array) #2 E:\xampp\htdocs\glpi_test\inc\dbmysqliterator.class.php(288): DBmysqlIterator->analyseCrit(Array) #3 E:\xampp\htdocs\glpi_test\inc\dbmysqliterator.class.php(94): DBmysqlIterator->buildQuery('`glpi_contracts...', Array, false) #4 E:\xampp\htdocs\glpi_test\inc\dbmysql.class.php(569): DBmysqlIterator->execute(Array, '', false) #5 E:\xampp\htdocs\glpi_test\inc\transfer.class.php(2781): DBmysql->request(Array) #6 E:\xampp\htdocs\glpi_test\inc\transfer.class.php(2719): Transfer->transferSingleSupplier('18') #7 E:\xampp\htdocs\glpi_test\inc\transfer.class.php(1077): Transfer->transferInfocoms('Phone', '498', '498') #8 E:\xampp\htdocs\glpi_test\inc\transfer.class.php(203): Transfer->tr in E:\xampp\htdocs\glpi_test\inc\dbmysqliterator.class.php on line 546
Le message "Empty IN are not allowed" me donne l'impression qu'un élément est absent de la requête de transfert (soit parcequ'il est manquant soit parcequ'il est inaccessible lors du déclenchement de la requête je pense).
Savez-vous comment contrôler l'intégralité de la requête qui est lancée lors de ma demande de transfert ?
Je soupçonne un champs "is_recursive" qui ne serait pas correctement renseigné et qui empêcherait la requête de s'exécuter...
Je vous remercie par avance pour vos pistes afin de m'aider à solutionner cela.
Cordialement,
Glpi 9.5.6
Windows Server 2012 R2 | Xampp 7.3.6-2-VC15 (PHP 7.3.6 - Software: Apache/2.4.39 (Win64) - Server Version: 10.3.15-MariaDB)
Offline
Pour compléter ma demande précédente,
Je constate que si je supprime les informations de gestion associées à mon matériel je peux effectuer le transfert...
Il me semble donc que ce sont les éléments de gestion qui bloquent le transfert vers la sous-entité.
Sauriez-vous comment y remédier ?
Merci pour vos propositions,
Bonne journée,
Last edited by RodolpheLP (2019-05-21 11:09:51)
Glpi 9.5.6
Windows Server 2012 R2 | Xampp 7.3.6-2-VC15 (PHP 7.3.6 - Software: Apache/2.4.39 (Win64) - Server Version: 10.3.15-MariaDB)
Offline
Finalement je pense avoir compris :
les informations financières (onglet "Gestion" du matériel) sont sur un budget qui n'est pas dans la sous-entité de destination du transfert
Je dois donc transférer ce budget dans la sous-entité préalablement à tout transfert de matériel dans cette même sous-entité. Cela même si mon budget dispose de l'information Sous-Entite=OUI".
A présent mes transferts fonctionnent.
Glpi 9.5.6
Windows Server 2012 R2 | Xampp 7.3.6-2-VC15 (PHP 7.3.6 - Software: Apache/2.4.39 (Win64) - Server Version: 10.3.15-MariaDB)
Offline
Pages: 1