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 2017-10-11 10:46:26

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

[APIREST]recherche ticket par demandeur

bonjour,
GLPI 9.1.6
je cherche à récupérer les tickets ouverts pour un demandeur :

$url=$api_url . "/search/Ticket/";
$url .="?criteria[0][field]=12&criteria[0][searchtype]=0&criteria[0][value]=notold";
$url .="&criteria[1][link]=AND&criteria[1][field]=4&criteria[1][searchtype]=0&criteria[1][value]=SMITH";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,$url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$json = curl_exec($ch);
curl_close ($ch);
$obj = json_decode($json,true);

ça me renvoie bien la liste des tickets non résolus dont le demandeur est "smith".
d'après "/listSearchOptions/Ticket"
********Demandeur**********
Array ( [name] => Demandeur
      [table] => glpi_users
      [field] => name
      [datatype] => dropdown
      [available_searchtypes] => Array ( [0] => contains [1] => equals [2] => notequals )
      [uid] => Ticket.Ticket_User.User.name )


MAIS :
la recherche "smith" semble se faire sur le champ glpi_users.realname et pas sur glpi_users.name. ( et j'ai plusieurs homonymes d'où mon problème )
ainsi si je cherche "jsmith" je n'ai pas de tickets pourtant le login jsmith existe bien et a des tickets ouverts.

avez vous une idée pour récupérer les tickets demandés par un utilisateur à partir de glpi_users.name ou glpi_users.id ?

Last edited by LaDenrée (2017-10-11 10:58:36)


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

#2 2017-11-28 12:54:00

sonidp7657
Member
Registered: 2017-11-03
Posts: 11

Re: [APIREST]recherche ticket par demandeur

Bonjour,

Suite à votre post, avez-vous pu résoudre votre problème ?
j'ai un problème du même ordre, lorsque je veux faire une requête pour obtenir l'ID d'un ticket sur GLPI via l'API.
Je veux faire une requête via 3 conditions, 1° le titre doit contenir serverxxxx et la 2°: dater de moins de 2H et la 3° être en status assigné.
j'arrive bien à faire ma requête mais le retour m'affiche un résultat incohérent avec ce que je demande rien que pour la première condition.
Il me sort 21 réponses alors que lorsque je fais la recherche à la main, j'en ai que 3. Dans ces 21 il y a bien mon résultat...

curl -X GET -H "Content-Type: application/json" -H "Session-Token: xxxxxxxxxxxxxxxxxxxxxxx" -H "App-Token: xxxxxxxxxxxxxxxxxxxxx" 'http://glpi.local/apirest.php/search/Ticket?\criteria=\[1\]\[field\]\=1\&criteria\[0\]\[searchtype\]=contains\&criteria\[0\]\[value\]=server&criteria\[1\]\[field\]\=7\&criteria\[1\]\[criteria\[1\]\[value\]\=2\'

Ma requête est-elle bonne ?
Le champs titre est bien le 1
le status champs 6 -> status assigné 2

j'ai essayé via l'URL de la recherche mais cela n'est pas concluant...

Merci

Offline

#3 2017-11-28 13:05:29

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

Re: [APIREST]recherche ticket par demandeur

non, toujours pas de réponse.

la discussion sera plus claire si vous ouvriez un nouveau sujet.
j'ai l'impression qu'il manque (au moins)

&criteria[1][link]=AND

pour le statut je dirais que c'est le champ 12 et pas 6


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 2018-02-08 20:45:35

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

Re: [APIREST]recherche ticket par demandeur

en essayant de lire votre requète j'ai du mal à comprendre, vos index de tableaux ne sont pas dans l'ordre ça ne facilite pas la compréhension :
vous devez avoir (j'ai retiré les / pour lecture plus facile)
criteria[0][field]=1&criteria[0][searchtype]=contains&criteria[0][value]=server    //titre contient server
&criteria[1][link]=AND&criteria[1][field]=6&criteria[1][searchtype]=contains&criteria[1][value]=2 // ET statut=2

Last edited by LaDenrée (2018-02-08 20:46:56)


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 2018-07-24 11:47:59

AdelAchour
Member
Registered: 2018-07-23
Posts: 25

Re: [APIREST]recherche ticket par demandeur

LaDenrée wrote:

MAIS :
la recherche "smith" semble se faire sur le champ glpi_users.realname et pas sur glpi_users.name. ( et j'ai plusieurs homonymes d'où mon problème )
ainsi si je cherche "jsmith" je n'ai pas de tickets pourtant le login jsmith existe bien et a des tickets ouverts.

avez vous une idée pour récupérer les tickets demandés par un utilisateur à partir de glpi_users.name ou glpi_users.id ?

Bonjour LaDenrée,

Je ne suis pas sûr de ma réponse mais as-tu essayé d'utiliser les metacriteria?

Tu pourrais d'une façon ou d'une autre lié ta recherche avec l'item User et être par conséquent plus précis, non?

Metacriteria

Last edited by AdelAchour (2018-07-24 11:51:13)

Offline

Board footer

Powered by FluxBB