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 2019-09-20 16:18:23

Freezee10
Member
Registered: 2019-09-12
Posts: 19

Modification du statut d'un ticket

Bonjour,

Je souhaite modifier le statut d'un ticket de cette façon :

$this->connect();
$this->setHeaders();
$this->curl->put($GLOBALS['glpi_host'] . '/' . $GLOBALS['glpi_url'] . '/Ticket/'.$id,
            array(
                    'input' => array(
                            'tickets_id' => $id,
                            'status' => $status,
                            'solvedate' => date('Y-m-d H:i:s')
                )
            )
        );

mais l'appel d'une méthode PUT retourne une erreur étrange :

Fatal error: Uncaught Error: Class 'mysqli' not found in C:\inetpub\wwwroot\glpi9.4\inc\dbmysql.class.php:104 Stack trace: #0 
C:\inetpub\wwwroot\glpi9.4\inc\dbmysql.class.php(78): DBmysql->connect(NULL) #1 
C:\inetpub\wwwroot\glpi9.4\inc\dbconnection.class.php(192): DBmysql->__construct() #2 
C:\inetpub\wwwroot\glpi9.4\inc\dbconnection.class.php(274): DBConnection::switchToMaster() #3 
C:\inetpub\wwwroot\glpi9.4\inc\config.php(85): DBConnection::establishDBConnection(0, 0) #4 
C:\inetpub\wwwroot\glpi9.4\inc\includes.php(48): require('C:\\inetpub\\wwwr...') #5 
C:\inetpub\wwwroot\glpi9.4\inc\api.class.php(98): include_once('C:\\inetpub\\wwwr...') #6 
C:\inetpub\wwwroot\glpi9.4\inc\apirest.class.php(119): API->initApi() #7 
C:\inetpub\wwwroot\glpi9.4\apirest.php(48): APIRest->call() #8 
{main} thrown in C:\inetpub\wwwroot\glpi9.4\inc\dbmysql.class.php on line 104

Tous mes appels en GET et POST fonctionnent parfaitement.

Avez-vous vous une idée ?

Last edited by Freezee10 (2019-09-20 16:21:25)

Offline

#2 2019-10-11 18:17:14

Freezee10
Member
Registered: 2019-09-12
Posts: 19

Re: Modification du statut d'un ticket

J'ai réglé ce problème.

Cependant, quand je fait mon PUT, GLPI me répond OK mais rien n'a été mis à jour sur le ticket sad

Offline

#3 2019-10-11 23:55:55

LaDenrée
HELPER
Registered: 2012-11-19
Posts: 6,287

Re: Modification du statut d'un ticket

Avez vous le droit de fermer un ticket sans solution?


Trouver la panne avant de réparer...
GLPI10.0.16 (ubuntu 22.04 PHP8.1  Mariadb10.6 ) plugins : comportements 2.7.3 reports 1.16.0 formcreator 2.13.9, datainjection 2.13.5 fields 1.21.9

Offline

#4 2019-10-13 20:32:18

Freezee10
Member
Registered: 2019-09-12
Posts: 19

Re: Modification du statut d'un ticket

L'utilisateur qui fait l'action a les droits super admin, je viens de tester dans GLPI et je peux bien clore un ticket sans solution.

Que j'essaie de passer le statut à 2 ou 6 l'API ne répond rien d'autre que le code 200 "OK" mais rien n'a changé sur le ticket.

$response = $this->client->request('PUT', 'Ticket/'.$ticket,
                [
                    'json' => [
                        'status' => 2,
                        'solvedate' => date('Y-m-d H:i:s')
                    ]
                ]
            );

Last edited by Freezee10 (2019-10-13 20:35:18)

Offline

#5 2019-10-13 23:01:52

LaDenrée
HELPER
Registered: 2012-11-19
Posts: 6,287

Re: Modification du statut d'un ticket

vous ne passez pas le "tickets_id"  dans le JSON ?


Trouver la panne avant de réparer...
GLPI10.0.16 (ubuntu 22.04 PHP8.1  Mariadb10.6 ) plugins : comportements 2.7.3 reports 1.16.0 formcreator 2.13.9, datainjection 2.13.5 fields 1.21.9

Offline

#6 2019-10-14 10:32:11

Freezee10
Member
Registered: 2019-09-12
Posts: 19

Re: Modification du statut d'un ticket

Je le passe dans l'URL 'Ticket/'.$ticket

J'ai également essayé d'attaquer l'URL Ticket seule avec "tickets_id" dans le json mais ça ne se met pas à jour non plus.

Offline

#7 2019-10-20 17:09:53

LaDenrée
HELPER
Registered: 2012-11-19
Posts: 6,287

Re: Modification du statut d'un ticket

je ne sais pas si c'est la cause de votre problème mais il y a une incohérence dans votre requête :
avec un statut 2 (assigné) il ne peut pas y avoir de date de resolution puisque le ticket n'est pas résolu


Trouver la panne avant de réparer...
GLPI10.0.16 (ubuntu 22.04 PHP8.1  Mariadb10.6 ) plugins : comportements 2.7.3 reports 1.16.0 formcreator 2.13.9, datainjection 2.13.5 fields 1.21.9

Offline

#8 2019-10-20 17:35:13

LaDenrée
HELPER
Registered: 2012-11-19
Posts: 6,287

Re: Modification du statut d'un ticket

j'ai fait le test en version 9.4.4 :
si je passe
$url="/Ticket/".$ticketid.."/";
$fields = '{"input": { "tickets_id":'.$ticketid.',"status":"6","solvedate":"2019-10-10 15:00:00"}}'  ;

le ticket passe bien au statut clos avec la bonne date de resolution, par contre la date de cloture  est celle de l'envoi de la commande et je n'arrive pas à la forcer


Trouver la panne avant de réparer...
GLPI10.0.16 (ubuntu 22.04 PHP8.1  Mariadb10.6 ) plugins : comportements 2.7.3 reports 1.16.0 formcreator 2.13.9, datainjection 2.13.5 fields 1.21.9

Offline

Board footer

Powered by FluxBB