La question pratique à laquelle répond ce type de recherche, c'est : quelle recherche faut-il faire pour trouver tous les objets ayant actuellement une localisation donnée, sachant que cette localisation ne dispose pas de ce qu'on pourrait considérer comme un identifiant unique ? Dans le champ Localisation actuelle des notices d'objet, il faut tenir compte du fait que seule la dénomination correspondant au niveau le plus précis de la hiérarchie des localisations (tout en bas de l'arborescence) est enregistrée : Etagère 2 ou Boîte 3, par exemple. Pour chacune de ces dénominations, il est manifeste qu'il ne s'agit pas d'un identifiant unique correspondant à la localisation d'un seul objet, mais de la dénomination d'une localisation commune à plusieurs objets. La hiérarchie complète correspondant à chaque localisation figure dans les données de contexte affichées en lecture seule au-dessous du champ Localisation actuelle, mais il n'est pas possible d'effectuer une recherche de localisation par l'intermédiaire de ce champ, parce que les données qu'il contient, composées et affichées à la volée, sont agrégées virtuellement.

ACHierarchicalSearching1

Néanmoins, il existe des fonctionnalités de recherche dans une hiérarchie qui vous permettent de balayer des hiérarchies complètes, et donc de réussir à trouver tous les objets ayant actuellement une localisation donnée. Ces fonctionnalités sont mises à votre disposition par les écrans de recherche Standard et Avancée, qui vous proposent d'utiliser l'opérateur hierarchical.

Comment fonctionne cette recherche ?

Voyons d'abord comment utiliser la recherche dans l'écran de recherche Standard des Emplacements et contenants. Il est possible de faire une interrogation du champ Emplacement contenant. Si ce champ ne fait pas partie des champs interrogeables sous l'onglet Standard, vous pouvez le faire apparaître à l'écran en vous rendant dans les Paramétres. Vous trouverez ci-dessous un exemple où le champ apparaît en cinquième position (dans un contexte différent). Le champ étant présent, vous pouvez trouver et sélectionner l'opérateur hierarchical dans la liste déroulante proposée (il se trouve en bas de la liste). L'opérateur n'est proposé par la liste que s'il s'agit d'un champ dans lequel on peut effectuer une recherche hiérarchique.

ACHierarchicalSearching2

Voyons maintenant comment utiliser la recherche dans l'écran de recherche Avancée. L'opérateur peut être sélectionné dans la liste des Opérateurs, ou bien être écrit en toutes lettres au moment de la construction de la formule de recherche. Mais il n'a bien entendu d'utilité que s'il interroge les champs qui ont reliés à des contenus structurés hiérarchiquement.

Syntaxe de la formule de recherche

En utilisant hierarchical, vous pouvez aussi bien atteindre les notices appartenant à un niveau de localisation en particulier que visualiser partiellement ou entièrement les niveaux qui composent la hiérarchie des localisations. A chaque niveau de localisation, vous pouvez placer une troncature, sous la forme d'un astérisque (*), qui pourra concerner l'ensemble d'un niveau ou seulement une partie de ce niveau suivant l'endroit où elle sera placée (cf. exemples). Les niveaux doivent être séparés les uns des autres par un slash (une barre oblique). Ne mettez ni astérisque ni slash (barre oblique) à la fin de la chaîne de caractères que vous venez de taper si vous voulez que votre recherche concerne (à l'intérieur de la hiérarchie délimitée par la chaîne de caractères tapée) le dernier niveau de localisation et l'ensemble de ses sous-niveaux. Mettez un slash à la fin de la chaîne de caractères tapée si vous voulez que votre recherche ne concerne (à l'intérieur de la hiérarchie délimitée par la chaîne de caractère tapée) que le dernier niveau de localisation de la hiérarchie, et mettez un slash suivi d'un astérisque à la fin de la chaîne de caractères tapée si vous voulez que votre recherche ne concerne (toujours à l'intérieur de la hiérarchie délimitée par les caractères tapés) que les sous-niveaux de la localisation de dernier niveau (et pas sur le dernier niveau de localisation). Voici quelques exemples de clés de recherche :

Bâtiment A/Etage 1/Salle 2 permet de récupérer les notices des éléments qui ont actuellement pour localisation la Salle 2 et/ou tous ses sous-niveaux, à l'intérieur de la hiérarchie délimitée par la recherche effectuée (laquelle comprend aussi des niveaux de localisation plus élevés).
Bâtiment A/Etage 1/Salle 2/ ne permet de récupérer que les notices des éléments ayant actuellement pour localisation la Salle 2, à l'intérieur de la hiérarchie délimitée par la recherche effectuée (laquelle comprend aussi des niveaux de localisation plus élevés).
Salle 2/ ne permet de récupérer que les notices des éléments ayant actuellement pour localisation la Salle 2, à l'intérieur de la hiérarchie délimitée par la recherche effectuée (laquelle, dans le cas présent, ne comprend pas de niveaux de localisation plus élevés).
Bâtiment A/Etage 1/Salle 2/* permet de récupérer les notices des éléments qui ont pour localisation actuelle tous les sous-niveaux de la Salle 2, à l'intérieur de la hiérarchie délimitée par la recherche effectuée (laquelle comprend aussi des niveaux de localisation plus élevés).
Bâtiment A/Etage 1/Salle 2/Etagère 1 permet de récupérer les notices des éléments qui ont actuellement pour localisation l'Etagère 1, à l'intérieur de la hiérarchie délimitée par la recherche effectuée (laquelle comprend aussi des niveaux de localisation plus élevés).
Bâtiment A/*/Salle*/Etagère 1 permet de récupérer les notices des éléments qui ont actuellement pour localisation l'Etagère 1, situés, à l'intérieur de la hiérarchie délimitée par la recherche, au-dessous de toute Salle, et au-dessous de tous les deuxièmes niveaux de localisation, dans le Bâtiment A.
Salle 2/Etagère 1 permet de récupérer les notices des éléments qui ont actuellement pour localisation l'Etagère 1 situés, à l'intérieur de la hiérarchie délimitée par la recherche, au-dessous de la Salle 2 (dans le cas présent, pas de niveau de localisation plus élevé).

Notez que l'auto-complétion telle qu'elle fonctionne dans l'écran de recherche Standard n'est pas conçue de telle sorte qu'elle puisse compléter une chaîne de caractères comprenant l'intégralité des niveaux d'une hiérarchie de localisation, elle peut seulement faire appel au niveau de localisation que les notices sont à même de mettre en mémoire dans le champ concerné. C'est pourquoi, dans le contexte de hiérarchie de localisation pris pour exemple, si vous tapez Etagère 1, l'auto-complétion qui vient en appoint ne fait pas mention dans sa liste du niveau Bâtiment A, aucune localisation d'objet n'étant mise en mémoire par les notices à ce niveau de la hiérarchie.

Les formules de recherche hiérarchique construites à l'aide de la recherche Avancée doivent se présenter comme dans les modèles suivants :

current_location.name hierarchical "Bâtiment A/Etage 1/Salle 2"

ou

current_location.name hierarchical "Salle 1/Etagère*"

Une bonne pratique pour la recherche dans une hiérarchie

Vous ne connaissez probablement pas par coeur l'intégralité de la hiérarchie dans laquelle vous avez à faire une recherche et même si c'est le cas, sachez que vous n'aurez pas besoin de taper par vous-même la chaîne de caractères complète. Une bonne pratique consiste à sélectionner l'opérateur hierarchical en vous rendant dans l'onglet Standard, et de commencer par taper une chaîne de caractères correspondant au sous-niveau le plus bas à partir duquel vous voulez que la recherche fasse son exploration (sans mettre de slash (/) ou d'astérique (*) à la fin, pour bénéficier de l'auto-complétion en appoint), avant, dans un deuxième temps, d'ouvrir la fenêtre Recherche de données pour le champ en cliquant sur l'icône Valider située sur la droite à l'intérieur de la zone de saisie du champ Localisation actuelle :

ACValidateIcon

Dans la fenêtre Recherche de données pour le champ, vous pouvez alors facilement sélectionner la localisation qui vous convient en dépit du fait qu'elle ne dispose pas de ce qu'on pourrait considérer comme un identifiant unique, et visualiser son emplacement dans la hiérarchie. Vous pouvez :

soit consulter une liste des dénominations de localisation identiques ou similaires sous l'onglet Liste, ce qui vous permet de sélectionner la localisation à l'emplacement de la hiérarchie adéquat pour l'objet que vous êtes en train de traiter, en cliquant sur Sélectionner.
 
ACHierarchicalSearching4
soit vous rendre sous l'onglet Hiérarchie, ce qui vous permet de sélectionner, en visualisant les différentes hiérarchies proposées, la localisation correspondant à l'objet que vous êtes en train de traiter, en cliquant sur Sélectionner. Vous gardez la possibilité de modifier votre clé de recherche et de la décliner sous différentes versions, pour tester et explorer plus avant la hiérarchie des localisations, par exemple en délimitant un segment de hiérarchie, comme Salle 2/Etagère, afin d'affiner le choix de localisations proposé.
 
ACHierarchicalSearching5

Dans les deux cas de figure, une fois que vous avez cliqué sur Sélectionner, vous pouvez constater que le niveau de localisation le plus précis de la hiérarchie choisie a été reporté dans le champ Localisation actuelle. Désormais, si vous faites apparaître la fenêtre Rechercher des données pour le champ, vous enclenchez une recherche sur cette localisation, et obtenez en résultat l'ensemble des objets ayant été localisés à ce niveau précis de la hiérarchie.

ACHierarchicalSearching6

Validation pendant la saisie en Mode Modification

En ce qui concerne la saisie de notice en mode Modification, vous pouvez utiliser la même syntaxe que pour les clés de recherche employées dans la recherche hiérarchique (avec troncature ou non) afin de trouver la localisation qu'il convient de saisir dans un champ. Prenons par exemple le champ Localisation actuelle, qui figure sous l'onglet Localisation | Transports à venir d'une notice d'objet : il vous est possible d'ouvrir la fenêtre Recherche de données pour le champ, et sous l'onglet Hiérarchie, de taper une clé de recherche dans la zone de saisie dédiée à la recherche. Vous pouvez alors sélectionner la localisation de votre choix, intégrée à la hiérarchie de localisations qui convient. Il suffit de cliquer sur Sélectionner pour que le niveau de localisation le plus précis de la hiérarchie choisie soit reporté dans le champ Localisation actuelle (et à son emplacement correct). La hiérarchie complète correspondant à la localisation ainsi sélectionnée ne figurera dans la notice qu'une fois celle-ci enregistrée : elles figureront en lecture seule dans les données de contexte affichées au-dessous du champ Localisation actuelle.

ACHierarchicalSearching3