Dans cet article, je vous propose de commencer l’exploration des fonctions de recherche avancée offerte par Jira. La recherche avancée, ou JQL, signifie Jira Query Language. Cela ressemble un peu en termes de syntaxe au SQL.
Comment passer en recherche avancée dans Jira
Pour afficher la fenêtre de recherche avancée, cliquez sur le lien « Recherche avancée ». Il se trouve en haut à droite de la fenêtre de recherche si vous êtes en mode basique.
Lorsqu’on active ce mode, la recherche active est traduite en JQL. Bonne nouvelle, la recherche avancée bénéficie d’auto-complétion. Cela veut dire que lorsque vous êtes en train de rédiger, la recherche vous suggère les mots que vous pouvez utiliser. Chaque clause de la recherche se compose d’un critère qui est la plupart du temps un champ de Jira, d’un opérateur (=, >, !=, etc.) et d’une valeur de comparaison.
Cependant, lorsque vous démarrez, la boîte de recherche est vide. Si cela vous intimide, je vous suggère de commencer la structure de votre recherche en mode basique.
Un exemple de recherche avancée dans Jira : rechercher des dates
Admettons que vous souhaitiez rechercher les demandes créées il y a plus de 30 jours. Ouvrez d’abord la recherche basique et choisissez le champ « Date de création ». Dans la boîte de sélection, cochez « Il y a plus de 30 jours ». Ensuite, passez en mode avancé pour voir l’écriture en JQL.
Vous voyez, la requête est :
created <= -30d
Ce qui signifie « toutes les demandes pour lesquelles la date de création est inférieure à l’instant T moins 30 jours ».
Si vous vouliez présenter la liste de toutes les demandes prévues dans les 7 prochains jours, la requête serait :
due < 7d
Ce qui signifie « toutes les demandes pour lesquelles la date d’échéance est inférieure à l’instant T plus 7 jours ».
Cette notation n’est pas très intuitive. Le fait de passer par la recherche basique pour créer l’ébauche de la requête simplifie l’opération.
Maintenant que nous savons effectuer une recherche avancée, prenons les exemples de recherche qui ne peuvent pas être effectués en mode basique ou qui peuvent l’être difficilement.
Comment exclure un projet dans une recherche ?
Pour ce premier exemple, je vais commencer par me mettre en recherche basique. Je fais d’abord une recherche sur le projet et je vais choisir celui que je veux exclure, par exemple, le projet IOS. Ensuite, je bascule dans la recherche avancée et je remplace mon opérateur « = » par « != ». Ça, c’est le mode débutant. En mode avancé, on écrira directement la requête. Donc j’efface, je recommence, et vous allez voir directement l’autocomplétion.
Project != IOS
Je sélectionne le critère « Project », l’opérateur « différent » dans la liste qui m’est proposée (« != » ) et la valeur attestée, « IOS ».
L’avantage d’utiliser différent (« != » ) plutôt qu’une énumération est double. D’abord, on évite une énumération fastidieuse des projets. Ensuite, si on ajoute de nouveaux projets, leurs demandes apparaîtront sans qu’on est besoin de maintenir le filtre.
Chercher des demandes de type différent dans des projets différents
Je vais reprendre l’exemple qu’on avait dans l’article précédent (Pourquoi la recherche basique de Jira ne suffit pas). On voulait récupérer toutes les demandes de type « Récit » du projet Teams in space et toutes les épopées du projet Web Browser App. La difficulté qu’on peut avoir ici, c’est que « Récit » et « Épopée » sont des termes traduits. Or, dans la base, ils s’appellent en fait « Story » et « Epic » (en anglais) parce que j’ai installé mon instance en langue anglaise.
Dans la recherche basique, on utilise les termes dans la langue traduite de l’utilisateur. Mais dans la recherche avancée, on utilise les noms de champs tels qu’ils sont traduits dans l’instance. Donc si vous avez du mal à trouver la bonne valeur, je vous conseille de passer d’abord par la recherche basique puis de traduire votre recherche en mode avancé. Pour réaliser ma recherche, je vais d’abord procéder à la sélection des récits du projet Teams in space :
project = « Teams in space » and issuetype = Story
Puis je vais adjoindre les épopées du projet Web Browser App. Je vais entourer chaque critère par des parenthèses et les associer par l’opérateur « Or » :
(Project = « Teams in Space » and issuetype = Story) OR (project = « Web Browser App » and issuetype = epic)
Dès lors que j’ai saisi une requête avancée qui ne peut pas être créée en mode basique, le lien qui me permet de revenir dans ce dernier mode apparaît en gris. Dans les exemples que nous avons énuméré tout à l’heure, nous avons vu qu’il n’était pas non plus possible de faire des recherches sur des champs numérique autrement qu’en indiquant la valeur juste.
Chercher des demandes qui contiennent un champ numérique
En mode avancé, je peux demander à retrouver toutes les demandes pour la valeur métier supérieure à 40 en écrivant la requête :
« Business value » > 40
Je peux également demander toutes les demandes comprises entre 40 et 80 :
« Business value » > 40 AND « Business value » < = 80
Alors attention à une chose, si je recherche les demandes dont la business value est supérieure à 40, j’en trouve 65.
« Business value » > 40
Si je recherche les business value dont la valeur est supérieure ou égale à 40, j’en trouve 94.
« Business value » < = 40
Si je cherche toutes les demandes, j’en trouve 741. Alors que je pourrais penser qu’il y en a 65 plus 94, donc 159.
C’est parce que les recherches ne ramènent que les demandes pour lesquelles la business value a une valeur.
Si je veux toutes les demandes qui ont une business value inférieure à 40 ou qui n’ont pas de business value, je dois saisir « business value » inférieure ou égale à 40 OU business value est vide :
« Business value » < = 40 OR « Business value » is empty
Et là, on voit que cela fait bien 676 demandes. Ce qui permet également de confirmer à cette occasion qu’il n’est pas possible d’interroger Jira en mode basique pour retrouver des valeurs vides.
J’insiste sur le fait que vous ne prenez aucun risque à tester différentes recherches. Intéressez-vous au mode avancé parce qu’au bout d’un moment, le mode basique ne vous permettra pas d’effectuer des recherches plus avancées. Donc maintenant vous savez aller au-delà de la recherche basique et utiliser la recherche avancée de Jira. Dans le prochain article, nous irons plus loin en explorant les fonctions de recherche avancée de Jira.