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 2025-02-05 15:38:23

Dead-Red
Member
From: France - Aisne - 02
Registered: 2021-04-10
Posts: 28

[Résolu] Besoin d'aide sur la recherche en filtrant avec des critères

Bonjour à tous,

J'aimerai savoir si quelqu'un était en mesure de m'expliquer comment une recherche filtrée doit être constituée.

Par exemple, dans mon cas, je cherche à n'afficher que les tickets où le compte id présent dans la variable : $Global_GLPI_User_ID qui se trouve soit en tant que demandeur, soit en tant qu'observateur mais que pour les tickets qui ne sont pas clos ?

Au cas où, j'aurai déjà mal interprété une donnée :

ID du champs : demandeur = 4
ID du champs : observateur = 66

ID du champs : statut = 2
ID du statut clos = 6

Donc Critère 0 l'ID du user est en tant que demandeur :
criteria[0][field]=4&criteria[0][searchtype]=equals&criteria[0][value]=$Global_GLPI_User_ID

Puis Critère 1 OU l'id du user est en tant qu'observateur
&criteria[1][link]=OR&criteria[1][field]=66&criteria[1][searchtype]=equals&criteria[1][value]=$Global_GLPI_User_ID

Et enfin uniquement si le statut (donc le champs 2) n'est pas clos (id = 6)
&criteria[2][link]=AND NOT&criteria[2][field]=12&criteria[2][searchtype]=notlike&criteria[2][value]=6"

Donc toute la requête donne :

$RESULT_GLPI_User_Ticket_Owner_or_Observer_request = Invoke-RestMethod -Uri "$($AppURL)/search/Ticket?criteria[0][field]=4&criteria[0][searchtype]=equals&criteria[0][value]=$Global_GLPI_User_ID&criteria[1][link]=OR&criteria[1][field]=66&criteria[1][searchtype]=equals&criteria[1][value]=$Global_GLPI_User_ID&criteria[2][link]=AND NOT&criteria[2][field]=12&criteria[2][searchtype]=notlike&criteria[2][value]=6" -Headers @{ "session-token" = $SessionToken.session_token; "App-Token" = "$AppToken" } -Method Get

#Et la il me sort des tickets qui sont pourtant clos

($RESULT_GLPI_User_Ticket_Owner_or_Observer_request.data.12) | select -Unique

J'ai essayé avec not equals, equals, je ne trouve pas mon erreur. Je voudrais trouver l'erreur dans ma syntaxe API plutôt que de faire le filtre après en powershell.

Merci de votre aide.

Last edited by Dead-Red (2025-02-10 16:36:15)

Offline

#2 2025-02-05 16:23:12

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

Re: [Résolu] Besoin d'aide sur la recherche en filtrant avec des critères

Dead-Red wrote:

ID du champs : statut = 2
ID du statut clos = 6

Faux :  id:2 correspond à ticket_id
le statut c'est 12


pour filtrer sur statut non clos :

criteria[0][field]=12&criteria[0][searchtype]=equals&criteria[0][value]=notclosed

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

#3 2025-02-05 17:01:51

Dead-Red
Member
From: France - Aisne - 02
Registered: 2021-04-10
Posts: 28

Re: [Résolu] Besoin d'aide sur la recherche en filtrant avec des critères

Effectivement ce n'est que dans mon message que j'ai fait l'erreur. Le field est bien sur 12.

Je vais pouvoir tester ta commande ! Je te remercie par avance.

Offline

#4 2025-02-05 17:59:09

Dead-Red
Member
From: France - Aisne - 02
Registered: 2021-04-10
Posts: 28

Re: [Résolu] Besoin d'aide sur la recherche en filtrant avec des critères

Je dois rater quelque chose, car ça me retourne la encore les tickets clos.

J'ai essayé de mettre à la suite ou comme la au début, même résultat.

$RESULT_GLPI_User_Ticket_Owner_or_Observer_request = Invoke-RestMethod -Uri "$($AppURL)/search/Ticket?criteria[0][field]=12&criteria[0][searchtype]=equals&criteria[0][value]=notclosed&criteria[1][field]=4&criteria[1][searchtype]=equals&criteria[1][value]=$Global_GLPI_User_ID&criteria[2][link]=OR&criteria[2][field]=66&criteria[2][searchtype]=equals&criteria[2][value]=$Global_GLPI_User_ID" -Headers @{ "session-token" = $SessionToken.session_token; "App-Token" = "$AppToken" } -Method Get

Une fois extrait de la commande ci-dessus :
criteria[0][field]=12&criteria[0][searchtype]=equals&criteria[0][value]=notclosed
&criteria[1][field]=4&criteria[1][searchtype]=equals&criteria[1][value]=$Global_GLPI_User_ID
&criteria[2][link]=OR&criteria[2][field]=66&criteria[2][searchtype]=equals&criteria[2][value]=$Global_GLPI_User_ID

J'ai aussi tenté en ajoutant : &criteria[0][link]=AND mais rien à faire. Je pige vraiment pas mon erreur.

Offline

#5 2025-02-05 19:03:22

cconard96
Moderator
Registered: 2018-07-31
Posts: 3,226
Website

Re: [Résolu] Besoin d'aide sur la recherche en filtrant avec des critères

Il vous manque un groupe de critères. Dans l'état actuel des choses, il est interprété comme (Le statut n'est pas fermé et le demandeur est UTILISATEUR) OU (L'observateur est UTILISATEUR). Ainsi, tous les tickets avec l'utilisateur spécifié sont affichés, même si le ticket est fermé, et tous les tickets non fermés avec l'utilisateur spécifié également. Vous devez avoir le critère de statut seul et ensuite un groupe de critères avec les autres critères.

Un truc pour vous aider à utiliser l'API actuelle, faites votre recherche dans l'interface web de GLPI et copiez ensuite les paramètres de critères de l'URL et utilisez-les dans vos requêtes API.


GLPI Collaborator and Plugin Developer.
My non-English comments are automated translations. Sorry for any confusion that causes.
Mes commentaires non anglais sont des traductions automatiques. Désolé pour toute confusion qui cause.
Mis comentarios que no están en inglés son traducciones automáticas. Perdón por cualquier confusión que cause.

Offline

#6 2025-02-06 09:34:43

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

Re: [Résolu] Besoin d'aide sur la recherche en filtrant avec des critères

$($AppURL)/search/Ticket?is_deleted=0&criteria[0][link]=AND&criteria[0][field]=12&criteria[0][searchtype]=equals&criteria[0][value]=notclosed
&criteria[2][link]=AND
     &criteria[2][criteria][0][link]=AND&criteria[2][criteria][0][field]=4&criteria[2][criteria][0][searchtype]=equals&criteria[2][criteria][0][value]=$Global_GLPI_User_ID
     &criteria[2][criteria][1][link]=OR&criteria[2][criteria][1][field]=66&criteria[2][criteria][1][searchtype]=equals&criteria[2][criteria][1][value]=$Global_GLPI_User_ID

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

#7 2025-02-10 16:35:38

Dead-Red
Member
From: France - Aisne - 02
Registered: 2021-04-10
Posts: 28

Re: [Résolu] Besoin d'aide sur la recherche en filtrant avec des critères

Un très grand merci à vous 2, cconard96 merci de l'astuce et surtout à toi LaDenrée ..

Car je n'arrivais pas à trouver le même résultat que toi smile ..

Pour ceux qui aurait un cas avec + 200 à retourner, vous devez ajouter ce code à la fin : 

&expand_dropdowns=true&range=0-1000

Offline

Board footer

Powered by FluxBB