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-05-12 12:00:05

jonalex
Member
Registered: 2017-04-26
Posts: 23

[API REST GLPI 9.1.3] Recherche Ticker_User

Bonjour,

J'essaye d'effectuer une recherche via ticket_user

http://MON_GLPI/apirest.php/search/ticket_user/?criteria[0]field=3&criteria[0][searchtype]=0&criteria[0][value]=29

Mais j'obtiens à chaque fois une erreur 500.

Est-ce que quelqu'un a déjà essayé de faire ce type de recherche ?

L'idée est de rechercher les utilisateurs du ticket N°29

Merci par avance pour vos réponses

Offline

#2 2017-05-12 13:54:18

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

Re: [API REST GLPI 9.1.3] Recherche Ticker_User

bonjour l'url ci dessous devrait repondre à votre demande

$url="http://MON_GLPI/apirest.php/Ticket/".$tickets_id."/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

#3 2018-05-21 16:46:55

serematique
Member
Registered: 2018-05-21
Posts: 7

Re: [API REST GLPI 9.1.3] Recherche Ticker_User

Bonjour,
Tout d'abord merci pour vos contributions sur l'API REST !
J'ai utilisé la solution proposée par LaDenrée pour avancer, mais la logique m'échappe quelque peu.
Ma recherche est similaire (GLPI 9.2.2):

http://.../glpi/apirest.php/search/Ticket_User?criteria[0][field]=3&criteria[0][searchtype]=contains&criteria[0][value]="5"&rawdata=1

Pas d'erreur 500 mais résultat vide.
La raison est une requête SQL incorrecte :

{"totalcount":null,"count":0,"sort":1,"order":"ASC","rawdata":{"search":{"criteria":[{"field":3,"searchtype":"contains","value":"\"5\""}],"metacriteria":[],"sort":1,"order":"ASC","start":0,"is_deleted":0,"export_all":0,"target":"/glpi/front/ticket_user.php","display_type":0,"list_limit":50,"massiveactionparams":[],"rawdata":1,"session_token":"c1khsr9gl79q8ne3j23v12rso5","app_token":"oigO2jJXbpOI8SmdYq00fgATsG4WZE9UimcMqbLE","forcedisplay":[],"range":[0,50],"reset":"reset","all_search":false,"view_search":false,"no_search":false},"itemtype":"Ticket_User","item":{"auto_message_on_action":false,"no_form_page":true,"fields":{"id":"","tickets_id":"","users_id":"","type":"","use_notification":"","alternative_email":""},"dohistory":false,"history_blacklist":[],"additional_fields_for_dictionnary":[],"taborientation":"vertical","get_item_to_display_tab":true,"notificationqueueonaction":false,"showdebug":false},"display_type":0,"toview":[3],"tocompute":[3],"sql":{"count":[],"search":"SELECT 'admin' AS currentuser,\n `glpi_tickets`.`tickets_id` AS `ITEM_0`, `glpi_tickets_users`.`id` AS id FROM `glpi_tickets_users`LEFT JOIN `glpi_tickets` \n ON (`glpi_tickets_users`.`tickets_id` = `glpi_tickets`.`id`\n ) WHERE (`glpi_tickets`.`tickets_id` LIKE '%\"5\"%' ) ORDER BY `id` "},"data":{"execution_time":1.0001659393311}},"content-range":"0--1/"}

glpi_tickets.tickets_id n'existe pas dans cette table ; et en plus je ne comprends pas l'intérêt de la jointure avec glpi_tickets pour une recherche juste sur glpi_tickets_users.
Un bug à ouvrir ?

Offline

#4 2018-05-21 18:50:46

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

Re: [API REST GLPI 9.1.3] Recherche Ticker_User

si vous utilisez ticket_users vous devez obligatoirement associer au ticket.

pour une recherche sur utilisateurs utilisez users.

quand vous avez le ticket ( dans la table glpi_tickets) vous pouvez y associer des acteurs des taches des suivis, des elements associés... pour les recherche vous devez commencer par le ticket.

et concernant votre demande initiale :

L'idée est de rechercher les utilisateurs du ticket N°29

dans l'absolu vous ne cherchez pas mais vous voulez les utilisateurs
vous devez récupérer le ticket 29 et les utilisateurs associés :

http://.../glpi/apirest.php/apirest.php/Ticket/29/Ticket_user

vous aurez un tableau avec tous les utilisateurs ( demandeurs, observateurs, techniciens, fournisseurs.


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-05-22 20:53:56

serematique
Member
Registered: 2018-05-21
Posts: 7

Re: [API REST GLPI 9.1.3] Recherche Ticker_User

Bonjour,
Tout à fait d'accord, on commence avec un no (id) de ticket, dans mon cas le 5.
Ensuite on veut récupérer les utilisateurs associés à ce ticket :
soit avec (qui marche) :

http://.../glpi/apirest.php/apirest.php/Ticket/5/Ticket_user

soit avec (qui ne marche pas et qui pourtant devrait être équivalent) :

http://.../glpi/apirest.php/search/Ticket_User?criteria[0][field]=3&criteria[0][searchtype]=contains&criteria[0][value]="5"

avec [field]=3 qui correspond bien à ticket_id
Je m'interroge juste sur la raison de l'échec de la 2nde méthode (requête SQL incorrecte), car j'imagine que cet échec pourrait se reproduire avec d'autres recherches.
Questions complémentaires :
- mon besoin à l'origine était de modifier le users_id pour le ticket=5 et de user type=1 mais la liste retournée par listSearchOptions ne contient pas type : pas d'autre moyen que de récupérer un tableau de tous les utilisateurs et faire ensuite le tri à la main ?
- d'où sort "l'astuce" .../Ticket/<no ticket>/Ticket_user ? Je ne l'ai trouvée nulle part dans la doc : est-elle applicable à d'autres recherches pour d'autres Items ?
Merci encore.

Offline

#6 2018-05-22 22:28:50

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

Re: [API REST GLPI 9.1.3] Recherche Ticker_User

l'astuce dans la doc est là :   /apirest.php/#get-sub-items
j'ai mis un peu de temps à la trouver, j'ai pas mal tourné en rond avec ce même type de liaison incorrecte( surtout au début de la version 9.1 il n'y avait pas beaucoup de sujets sur le forum.)

et je ne vois pas comment faire une recherche directement dans ticket_user.  (mais je ne vois pas tout)


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 2018-05-26 17:34:21

serematique
Member
Registered: 2018-05-21
Posts: 7

Re: [API REST GLPI 9.1.3] Recherche Ticker_User

Impeccable, merci pour l'info.
J'étais passé dessus ce paragraphe sans capter ce que signifiait "sub".
Pour la recherche dans Ticket_User, pareil pour moi, une recherche sans critère retourne un tableau de valeurs vide (mais le compte est bon !), avec l'option rawdata c'est un peu mieux on récupère les Id (mais rien d'autre ...).
Tant pis on fera avec ce qu'on a.

Offline

Board footer

Powered by FluxBB