You are not logged in.

Announcement

 Téléchargez la dernière version stable de GLPI      -     Et vous, que pouvez vous faire pour le projet GLPI ? :  Contribuer
 Download last stable version of GLPI                      -     What can you do for GLPI ? :  Contribute

#1 2023-01-31 13:56:39

utilisateurUGMR
Member
Registered: 2016-02-22
Posts: 29

[ RESOLU][ GLPI 10.0.3] problème pour affecter un PC à un ticket

Bonjour,

Nous avons fait une migration d'un GLPI 9.5.9 (Ubuntu 20.0.4 LTS) à un GLPI 10.0.3  (Ubuntu 22.0.4 LTS, apache 2.4.52, php 8.1.2, mysql 8.0.32).

Nous n'avons rencontré aucune erreur lors des 2 mises à jours. (Système + GLPI)

Seulement, depuis nous rencontrons un bug assez problématique.

Nous ne pouvons plus associé un PC à un ticket. Quand nous le faisons, aprés avoir cliquez sur le bouton "Sauvegarder", nous avons droit à un écran blanc. Si a ce moment la nous faisons un F5 sur l'URL alors, la modification n'a pas été prise en compte du tout.



L’erreur SQL dans le fichier sql-errors.log (quand on fait le refresh sur l’URL)
  *** MySQL query error:
  SQL: SELECT COUNT(*) AS cpt FROM `glpi_items_tickets` INNER JOIN `glpi_tickets` ON (`glpi_items_tickets`.`tickets_id` = `glpi_tickets`.`id`) WHERE `itemtype` = 'Ticket' AND `items_id` = '101112' AND `is_deleted` = '0'
  Error: Column 'itemtype' in where clause is ambiguous
  Backtrace :
  src/DBmysqlIterator.php:110
  src/DBmysql.php:1048                               DBmysqlIterator->execute()
  src/DbUtils.php:486                                DBmysql->request()
  inc/db.function.php:192                            DbUtils->countElementsInTable()
  src/Ticket.php:782                                 countElementsInTable()
  src/CommonGLPI.php:382                             Ticket->getTabNameForItem()
  src/Ticket.php:894                                 CommonGLPI->addStandardTab()
  src/CommonGLPI.php:332                             Ticket->defineTabs()
  src/Toolbox.php:3522                               CommonGLPI->defineAllTabs()
  ajax/updatecurrenttab.php:46                       Toolbox::getAvailablesTabs()
  {"user":"20947@dtcsrvglpi"}



L’erreur SQL dans le fichier php-errors.log aprés avoir cliqué sur le bouton sauvegarder. (erreur qui apparait dans la feuille blanche quand je mets en place le debug.)
[2023-01-31 12:28:23] glpiphplog.CRITICAL:   *** Uncaught Exception TypeError: Glpi\Toolbox\Sanitizer::isNsClassOrCallableIdentifier(): Argument #1 ($value) must be of type string, array given, called in /var/www/html/glpi/src/DBmysql.php on line 1257 in /var/www/html/glpi/src/Toolbox/Sanitizer.php at line 224
  Backtrace :
  src/DBmysql.php:1257                               Glpi\Toolbox\Sanitizer::isNsClassOrCallableIdentifier()
  src/DBmysql.php:1396                               DBmysql::quoteValue()
  src/DBmysql.php:1430                               DBmysql->buildUpdate()
  src/CommonDBTM.php:672                             DBmysql->update()
  src/CommonDBTM.php:1675                            CommonDBTM->updateInDB()
  front/ticket.form.php:84                           CommonDBTM->update()





Auriez vous une idée svp ?

Merci.

Last edited by utilisateurUGMR (2023-02-01 12:08:08)

Offline

#2 2023-02-01 12:06:36

utilisateurUGMR
Member
Registered: 2016-02-22
Posts: 29

Re: [ RESOLU][ GLPI 10.0.3] problème pour affecter un PC à un ticket

Bonjour,

le problème a été solutionné.

1) lancer la commande suivante : php bin/console db:check_schema_integrity


2) Faire les corrections :
Exemple : vous obtenez
Le schéma diffère pour la table "glpi_tickets".
--- Schéma de base de données attendu
+++ Schéma de base de données actuel
@@ @@
   `internal_time_to_own` datetime,
   `internal_time_to_resolve` datetime,
   `is_deleted` tinyint NOT NULL DEFAULT 0,
+  `items_id` int NOT NULL DEFAULT 0,
+  `itemtype` varchar(100) NOT NULL,
   `itilcategories_id` int NOT NULL DEFAULT 0,
   `locations_id` int NOT NULL DEFAULT 0,
   `name` varchar(255),
@@ @@
   KEY `date_creation` (`date_creation`),
   KEY `date_mod` (`date_mod`),
   KEY `date` (`date`),
+  KEY `due_date` (`time_to_resolve`),
   KEY `entities_id` (`entities_id`),
   KEY `global_validation` (`global_validation`),
   KEY `impact` (`impact`),
@@ @@
   KEY `internal_time_to_own` (`internal_time_to_own`),
   KEY `internal_time_to_resolve` (`internal_time_to_resolve`),
   KEY `is_deleted` (`is_deleted`),
+  KEY `item` (`itemtype`,`items_id`),
   KEY `itilcategories_id` (`itilcategories_id`),
   KEY `locations_id` (`locations_id`),
   KEY `name` (`name`),
@@ @@
   KEY `solvedate` (`solvedate`),
   KEY `status` (`status`),
   KEY `time_to_own` (`time_to_own`),
-  KEY `time_to_resolve` (`time_to_resolve`),
   KEY `type` (`type`),
   KEY `urgency` (`urgency`),
   KEY `users_id_lastupdater` (`users_id_lastupdater`),
   KEY `users_id_recipient` (`users_id_recipient`)



solution :
a) Pour chaque + devant une ligne, il faudra supprimer l'élèment. Ca peut etre une colonne, une clé etc...
b) Pour chaque - devant une ligne, il faudra créér l'élèment. Ca peut etre une colonne, une clé etc...

Voici ce qu'il fallait faire pour la table.
alter table glpi_tickets add  KEY `time_to_resolve` (`time_to_resolve`);
alter table glpi_tickets drop  KEY `item`;
alter table glpi_tickets drop  KEY `due_date`;

alter table glpi_tickets drop column items_id;
alter table glpi_tickets drop column itemtype;

Offline

#3 2023-02-01 12:07:32

utilisateurUGMR
Member
Registered: 2016-02-22
Posts: 29

Re: [ RESOLU][ GLPI 10.0.3] problème pour affecter un PC à un ticket

le problème venait donc du schema qui n'était plus en adéquation avec le code.

Offline

Board footer

Powered by FluxBB