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-10-04 11:25:59

infochr88
Member
Registered: 2009-07-02
Posts: 23

[API Rest] Demandeurs lors de l'ajout d'un ticket

Bonjour,

J'utilise depuis quelque temps l'API de GLPI pour la création de ticket depuis un intranet et j'en suis très content. J'ai néanmoins un souci: lorsque le ticket est créé, le demandeur et le technicien assigné par défaut sont remplis avec l'utilisateur de l'API (dans mon cas, c'est l'utilisateur "Service Informatique"). J'arrive a jouter des demandeurs / Techniciens (avec l'API également) après avoir créé le ticket, mais le demandeur et technicien "Service Informatique" restent quand meme. y'a-t-il un moyen de spécifier le demandeur / technicien dès la création du ticket ? Ou de supprimer le demandeur /technicien initial ?

Ma création est faite comme ceci:

	
curl_setopt($ch, CURLOPT_URL, "http://glpi/apirest.php/ticket_user/");
curl_setopt($ch, CURLOPT_POST, 1);
	curl_setopt($ch, CURLOPT_POSTFIELDS, '{"input": {
		"name": "'.$array_param["name"].'",
		"content": "'.$array_param["content"].'",
		"actiontime": "'.$array_param["action_time"].'",
		"date": "'.$array_param["closedate"].'",
		"date_creation": "'.$array_param["solvedate"].'",
		"closedate": "'.$array_param["closedate"].'",
		"solvedate": "'.$array_param["solvedate"].'",
		"itilcategories_id": "'.$array_param["itilcategorie"].'",
		"type": "'.$array_param["type"].'",
		"status": "'.$array_param["status"].'"
		}}'
	);
$request_result = curl_exec($ch);

puis l'ajout de demandeur:

	curl_setopt($ch, CURLOPT_URL, "http://glpi/apirest.php/ticket_user/");
	curl_setopt($ch, CURLOPT_POST, 1);			
	curl_setopt($ch, CURLOPT_POSTFIELDS, '{"input": { "tickets_id": '.$request_json['id'].', "users_id": "'.$array_param["demandeur_id"].'", "type": "1", "use_notification": "0" } }');
$request_result = curl_exec($ch);

puis le technicien:

	curl_setopt($ch, CURLOPT_URL, "http://glpi/apirest.php/ticket_user/");
	curl_setopt($ch, CURLOPT_POST, 1);			
	curl_setopt($ch, CURLOPT_POSTFIELDS, '{"input": { "tickets_id": '.$request_json['id'].', "users_id": "'.$array_param["attribue_id"].'", "type": "2", "use_notification": "0" } }');
$request_result = curl_exec($ch);

Merci de vos réponses

Offline

#2 2019-10-17 12:42:42

infochr88
Member
Registered: 2009-07-02
Posts: 23

Re: [API Rest] Demandeurs lors de l'ajout d'un ticket

Personne n'a une idée ?

Offline

#3 2019-10-17 14:27:37

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

Re: [API Rest] Demandeurs lors de l'ajout d'un ticket

dans les préférences de l'utilisateur "service informatique" avez vous défini
demandeur par  défaut ? technicien par defaut ?

ça peut expliquer les champs préremplis


Trouver la panne avant de réparer...
GLPI10.0.10 (ubuntu 22.04 PHP8.1  Mariadb10.6 ) plugins : comportements 2.7.2 reports 1.16.0 formcreator 2.13.8, datainjection 2.13.4 fields 1.21.6

Offline

#4 2019-10-17 14:34:08

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

Re: [API Rest] Demandeurs lors de l'ajout d'un ticket

pour passer le demandeur dans le json de creation du ticket :
"_users_id_requester": $users_id.

je ne comprends pas votre url de creation de ticket  ??? curl_setopt($ch, CURLOPT_URL, "http://glpi/apirest.php/ticket_user/"); 

pour creer un ticket l'url c'est  curl_setopt($ch, CURLOPT_URL, "http://glpi/apirest.php/Ticket/");


après pour l'ajout des acteurs OK c'est ticket_User


Trouver la panne avant de réparer...
GLPI10.0.10 (ubuntu 22.04 PHP8.1  Mariadb10.6 ) plugins : comportements 2.7.2 reports 1.16.0 formcreator 2.13.8, datainjection 2.13.4 fields 1.21.6

Offline

#5 2019-10-17 16:14:16

infochr88
Member
Registered: 2009-07-02
Posts: 23

Re: [API Rest] Demandeurs lors de l'ajout d'un ticket

Merci beaucoup pour votre réponse.
Effectivement, pour le demandeur, votre solution fonctionne très bien, c'est parfait.

Pour l'URL de création du ticket, c'est une erreur de copier/coller de ma part, j'utilise bien

curl_setopt($ch, CURLOPT_URL, "http://glpi/apirest.php/Ticket/")

Pour le technicien, d'après votre réponse, je suppose qu'il faudrait que chaque technicien utilise son API pour que cela fonctionne... Pas d'autre solution ?

Encore merci

Offline

#6 2019-10-17 23:32:56

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

Re: [API Rest] Demandeurs lors de l'ajout d'un ticket

pour le technicien à la creation utilisez :

'_users_id_assign'


Trouver la panne avant de réparer...
GLPI10.0.10 (ubuntu 22.04 PHP8.1  Mariadb10.6 ) plugins : comportements 2.7.2 reports 1.16.0 formcreator 2.13.8, datainjection 2.13.4 fields 1.21.6

Offline

#7 2019-10-18 08:10:48

infochr88
Member
Registered: 2009-07-02
Posts: 23

Re: [API Rest] Demandeurs lors de l'ajout d'un ticket

Je vous remercie, c'est exactement ça.

Par contre, existe-t-il une documentation complete de l'API ? dans celle fournie avec GLPI (http://glpi/apirest.php) je ne trouve par exemple pas le détail des champs possibles lorsque l'on ajoute un ticket... Peut être ai-je loupé quelque chose.
Merci

Offline

#8 2019-10-18 08:50:47

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

Re: [API Rest] Demandeurs lors de l'ajout d'un ticket

pour connaître la liste des 'champs' je fais un get sur l'item  pour voir la réponse.

je suis surpris par les paramètres que vous passez dans la creation de ticket : date  close date et solve date, statut, sont des champs qui se mettent à jour automatiquement lorsque vous ajoutez une solution au ticket. ou alors vous creez des  tickets déjà fermés ?


Trouver la panne avant de réparer...
GLPI10.0.10 (ubuntu 22.04 PHP8.1  Mariadb10.6 ) plugins : comportements 2.7.2 reports 1.16.0 formcreator 2.13.8, datainjection 2.13.4 fields 1.21.6

Offline

#9 2019-10-18 09:42:26

infochr88
Member
Registered: 2009-07-02
Posts: 23

Re: [API Rest] Demandeurs lors de l'ajout d'un ticket

Je crée des tickets déjà fermés, parfois quelques jours après la date réelle de l'évenement. je passe donc en parametre les date et le statut.

Offline

Board footer

Powered by FluxBB