Pour effectuer une recherche avancée dans Omogen, il faut cliquer sur le menu Recherche puis sur l'entrée Recherche avancée....
Une boîte de dialogue permettant de saisir la description de la recherche à effectuer s'affiche.
Cette description suit une syntaxe précise, proche du français. Cette syntaxe est décrite dans le document présent.
Attention : des exemples de recherche sont donnés dès le début de la documentation. Il est parfois nécessaire d'avoir une vue d'ensemble pour pouvoir les comprendre complètement.
Une recherche est constituée :
D'un type d'objet.
D'un ensemble de propositions constituées :
D'un mot-clef décrivant le type de recherche à effectuer.
D'une proposition décrivant les critères de cette recherche.
Éventuellement d'une sous-requête imbriquée.
Chaque proposition filtre le résultat de la proposition précédente (autrement dit, elles sont reliées par un ET logique).
Si le type d'objet n'est pas suivi d'un mot-clef décrivant un type de recherche précis, une recherche simplifiée est lancée.
Les types d'objets correspondent au contenu de la base de données : ouvrage, intervention, opérateur, etc.
Seuls les administrateurs peuvent effectuer des recherches sur les tâches planifiées, les utilisateurs et les groupes.
Il est possible d'utiliser objet
comme type d'objet pour effectuer une recherche sur l'ensemble des objets de la base de données.
L'héritage entre types d'objets est pris en compte. Par exemple, si les types d'objets regard, tronçon, et branchement héritent tous les trois du type d'objet ouvrage, alors une recherche portants sur des ouvrages retournera les regards, les tronçons et les branchements.
Les mot-clefs qui déterminent le type de recherche à effectuer sont les suivants :
Mot-clef | Description |
---|---|
parmi
| Recherche les objets dont les identifiants font partie d'une liste explicite. |
dont
| Effectue une recherche en fonction de la valeur d'un ou plusieurs champs. |
avec
| Recherche les objets liés à d'autres objets. |
sans
| Recherche les objets qui ne sont pas liés à d'autres objets. |
situé dans
| Recherche les objets situés à l'intérieur d'une ou plusieurs zones géographiques. |
situé à
| Recherche les objets situés à proximité d'autres objets. |
avec tag
| Recherche les objets possédant des étiquettes de classification. |
sans tag
| Recherche les objets ne possédant pas d'étiquettes de classification. |
La syntaxe d'une recherche est insensible :
À la différence entre majuscules et minuscules.
Aux accents.
Au genre.
Au nombre.
Aux articles définis ou indéfinis : le
, la
, les
, un
, des
, au
, de
, du
, etc.
Cela signifie par exemple que les types d'objets peuvent être écrits indifféremment au singulier ou au pluriel.
Cela signifie aussi que vous pouvez librement accorder les mots-clefs, les articles, etc.
Les deux recherches suivantes sont équivalentes :
opérateurs dont l'état est connecté
operateur dont etat est connecte
Par contre les noms de champs sont sensibles au nombre.
Les deux recherches suivantes sont différentes :
opérateurs dont les interventions sont renseignées
opérateurs dont l'intervention est renseignée
Les valeurs des champs sont sensibles à la casse et aux accents, sauf lorsqu'on utilise le mot-clef est
ou n'est pas
.
Dans ce cas, la comparaison est insensible à la casse et aux accents.
Les recherches suivantes sont identiques :
type d'ouvrage dont nom est fosse
type d'ouvrage dont nom est fossé
type d'ouvrage dont nom est Fosse
type d'ouvrage dont nom est FOSSÉ
Les recherches suivantes sont différentes :
type d'ouvrage dont nom est égal à fosse
type d'ouvrage dont nom est égal à fossé
type d'ouvrage dont nom est égal à Fosse
type d'ouvrage dont nom est égal à FOSSÉ
Pour empêcher Omogen d'interpréter un élément comme mot-clef, ou bien pour rechercher un élément contenant des espaces, il est nécessaire d'entourer l'élément avec des guillemets.
Si l'élément dont contenir lui-même un guillemet, il faut alors le doubler.
client dont le nom est "EST ENSEMBLE"
opérateur dont le nom est "John ""The Ripper"""
Les guillemets délimitent les valeurs recherchées.
Autrement dit, si vous n'utilisez pas de guillemets, Omogen considérera que la valeur recherchée est constituée par l'ensemble des mots suivant l'opérateur, jusqu'au mot-clef suivant.
Ainsi :
opérateur dont le nom est "John The Ripper"
et
opérateur dont le nom est John The Ripper
sont équivalents.
Par contre :
opérateur dont le nom est "John The" Ripper
ne fonctionnera pas. L'élément recherché sera John The
. Ripper
sera ignoré et provoquera une erreur de syntaxe.
On peut accéder à un objet rapidement dès l'instant où l'on connaît son identifiant, en utilisant la syntaxe suivante :
<type d'objet> <identifiant>
intervention I.000037
Retourne l'intervention I.000037
immédiatement.
Il est possible de demander plusieurs objets en séparant leur identifiant par une virgule :
<type d'objet> <identifiant 1>,<identifiant 2>,...,<identifiant n>
intervention I.000001,I.000002,I.000037,I.000004
Retourne les interventions I.000001, I.000002, I.000037 et I.000004 immédiatement.
Il est possible d'utiliser le mot-clef parmi
pour effectuer le même genre de recherche (voir plus loin).
Dans le cas d'une recherche portant sur les utilisateurs, le mot-clef MOI
correspond à l'identifiant de l'utilisateur courant.
Cette recherche suit la syntaxe suivante:
<type d'objet> <mot 1> <mot 2> ... <mot n>
Elle consiste à rechercher tous les objets du type spécifié dont la description contient un des mots spécifié après le type d'objet.
La description d'un objet est ce que vous voyez apparaître dans les tableaux.
Si on effectue ainsi la recherche suivante :
intervention robinetterie
Les interventions suivantes seront retournées :
I.000006 I.000013 I.000018 I.000018 I.000024 I.000035
Il s'agira de chaque intervention contenant le mot robinetterie
n'importe où dans la ligne de tableau la décrivant.
parmi
Le mot-clef parmi
permet de rechercher les objets à partir d'une liste d'identifiants.
La syntaxe est la suivante :
<type d'objet> parmi <identifiant 1>,<identifiant 2>,...,<identifiant n>
interventions parmi I.000001,I.000002,I.000037,I.000004
Retourne les interventions I.000001, I.000002, I.000037 et I.000004 immédiatement.
Si la liste d'identifiants est le mot-clef quelconque
, la totalité des objets du type spécifié est retourné.
Si la liste d'identifiants est le mot-clef rien
, aucun objet n'est retourné.
Les deux dernières syntaxes sont surtout utiles lorsqu'on construit des recherches au sein des fichiers de descriptions de classe d'Omogen.
Le mot-clef dont
introduit une recherche en fonction de la valeur d'un ou plusieurs champs.
La syntaxe est la suivante :
<type d'objet> dont <nom de champ> <critère de comparaison> [ et <nom de champ> <critère de comparaison> ... ]
interventions dont l'état est en cours
Retourne l'ensemble des interventions dont le champ "état" vaut "En cours".
Le mot-clef et
permet de cumuler plusieurs critères :
<type d'objet> dont <nom de champ> <critère de comparaison> [ et <nom de champ> <critère de comparaison> ... ]
interventions dont l'état est en cours et la date planifiée est le 6/9/2011
Retourne l'ensemble des interventions dont l'état est "En cours" et dont la date planifiée est le 6 septembre 2011.
Une comparaison peut porter sur n'importe quel champ défini dans la fiche de l'objet. Le nom du champ est celui utilisé à l'affichage.
La comparaison peut en outre porter sur les champs spéciaux suivants:
date de modification
: la date à laquelle l'objet a été modifié pour la dernière fois.
date de création
: la date à laquelle l'objet a été créé.
créateur
: l'utilisateur ayant créé l'objet.
modificateur
: l'utilisateur ayant modifié l'objet en dernier.
ouvrages dont la date de modification est hier
Retourne la liste des ouvrages modifiés hier uniquement, et pas aujourd'hui.
Les critères de comparaison généraux peuvent porter sur n'importe quel champ. Ils sont décrits dans le tableau suivant :
Critère | Syntaxe | Signification | Exemple |
---|---|---|---|
est sont
|
|
Teste si un champ est égal à la valeur spécifiée, ou bien à l'une des valeurs spécifiée si le mot-clef ou est utilisé.
Attention : la comparaison est insensible à la casse et aux accents ! |
|
n'est pas ne sont pas n'est ni ne sont ni
|
|
Teste si un champ est différent de la valeur spécifiée, ou bien n'est aucune des valeurs spécifiées si le mot-clef ou est utilisé.
Attention : la comparaison est insensible à la casse et aux accents ! |
|
contient
|
|
Teste si un champ contient la valeur spécifiée, ou bien une des valeurs spécifiée si le mot-clef ou est utilisé.
Attention : la comparaison est insensible à la casse et aux accents ! |
|
ne contient pas
|
|
Teste si un champ ne contient pas la valeur spécifiée, ou bien aucune des valeurs spécifiées si le mot-clef ou est utilisé.
Attention : la comparaison est insensible à la casse et aux accents ! |
|
commence par
|
|
Teste si un champ commence par la valeur spécifiée, ou bien par une des valeurs spécifiées si le mot-clef ou est utilisé.
Attention : la comparaison est insensible à la casse et aux accents ! |
|
ne commence pas par
|
|
Teste si un champ ne commence pas par la valeur spécifiée, ou bien par aucune des valeurs spécifiées si le mot-clef ou est utilisé.
Attention : la comparaison est insensible à la casse et aux accents ! |
|
est renseigné n'est pas vide
|
| Teste si un champ est renseigné. |
|
n'est pas renseigné est vide
|
| Teste si un champ n'est pas renseigné. |
|
existe
|
| Teste si un champ pointe sur un objet existant. |
|
n'existe pas
est inexistant
|
| Teste si un champ pointe sur un objet inexistant. |
|
Les critères de comparaison textuels portent sur les champs uniquement textuels. Ils sont décrits dans le tableau suivant :
ressemble à
|
| Teste si un champ est phonétiquement équivalent à la valeur spécifiée. |
|
ne ressemble pas à
|
| Teste si un champ n'est pas phonétiquement équivalent à la valeur spécifiée. |
|
Le test de ressemblance phonétique ne fonctionne que sur des champs explicitement paramétrés comme tels dans l'application.
Les critères de comparaison numériques portent sur les champs contenant des valeurs numériques ou bien des dates. Ils sont décrits dans le tableau suivant :
Critère | Syntaxe | Signification | Exemple |
---|---|---|---|
est égal(e) à sont égaux(égales) à
|
| Teste si un champ numérique ou une date est égal à la valeur spécifiée. |
|
est différent(e) de sont différent(e)s de
|
| Teste si un champ numérique ou une date est différente de la valeur spécifiée. |
|
est supérieur(e) à sont supérieur(e)s à
|
| Teste si un champ numérique ou une date est supérieur à la valeur spécifiée. |
|
est supérieur(e) ou égal(e) à sont supérieur(e)s ou égaux(égales) à
|
| Teste si un champ numérique ou une date est supérieur ou égal à la valeur spécifiée. |
|
est inférieur(e) à sont inférieur(e)s à
|
| Teste si un champ numérique ou une date est inférieur à la valeur spécifiée. |
|
est inférieur(e) ou égal(e) à sont inférieur(e)s ou égaux(égales) à
|
| Teste si un champ numérique ou une date est inférieur ou égal à la valeur spécifiée. |
|
est compris entre
|
| Teste si un champ numérique ou une date est compris entre les valeur spécifiées, bornes incluses. |
|
est quelconque
|
|
Permet de rédiger une condition toujours vraie. Le mot-clef quelconque peut être ainsi utilisé comme
valeur par défaut dans un critère de recherche présenté à l'utilisateur sous forme de liste.
|
|
Vous pouvez utiliser les critères est égal à
et est différent de
avec des champs de type chaîne de caractères.
Dans ce cas la comparaison est sensible à la casse et aux accents.
Les nombres peuvent être saisis :
Sous forme numérique, avec une virgule ou un point comme séparateur décimal.
En français, s'ils sont compris entre zéro et vingt.
dossiers dont le nombre d'appels est supérieur à cinq
regards dont la profondeur est supérieure ou égale à 3,5
Les dates doivent être saisies au format français : <jour>/<mois>/<année>
.
Par exemple: 01/01/2010
, 06/09/2011
...
Il est possible d'utiliser les mots-clefs suivants qui représentent des périodes.
Dans ce cas, la recherche ne portera pas sur une date exacte, mais sur la plage temporelle associée au mot-clef, comme pour une recherche « est compris entre
... et
... ».
Mot-clef | Période correspondante |
---|---|
le mois de XXXX
| Du premier jour du mois spécifié à son dernier jour. |
l'année XXXX
| Du 1er janvier de l'année spécifiée au 31 décembre de cette même année. |
Les mots-clefs suivants représentent des dates relatives :
Mot-clef | Période correspondante |
---|---|
aujourd'hui
| De 00h00 à l'heure courante. |
maintenant
| De l'heure courante jusqu'au lendemain même heure. |
hier
| Hier, de 00h00 à minuit. |
avant-hier
| Avant-hier, de 00h00 à minuit. |
demain
| Demain, de 00h00 à minuit. |
interventions dont la date planifiée est demain
Les mots-clefs suivant représentent des intervalles de dates relatifs:
Mot-clef | Période correspondante |
---|---|
cette semaine
| Du lundi de la semaine en cours 00h00 jusqu'au dimanche soir minuit. |
la semaine dernière la semaine précédente
| Du lundi de la semaine dernière 00h00 jusqu'au dimanche soir minuit. |
la semaine prochaine la semaine suivante
| Du lundi de la semaine prochaine 00h00 jusqu'au dimanche soir minuit. |
ce mois ce mois-ci
| Du premier jour du mois en cours 00h00 jusqu'au dernier jour du mois minuit. |
le mois dernier le moins précédent
| Du premier jour du mois dernier 00h00 jusqu'au dernier jour minuit. |
le mois prochain le mois suivant
| Du premier jour du mois prochain 00h00 jusqu'au dernier jour minuit. |
ce trimestre
| Du premier jour du trimestre en cours 00h00 jusqu'au dernier jour du trimestre minuit. |
le trimestre dernier le trimestre précédent
| Du premier jour du trimestre dernier 00h00 jusqu'au dernier jour de ce trimestre minuit. |
le trimestre prochain le trimestre suivant
| Du premier jour du trimestre suivant 00h00 jusqu'au dernier jour de ce trimestre minuit. |
cette année
| Du 1er janvier de cette année 00h00 jusqu'au 31 décembre minuit. |
l'année dernière l'année précédente
| Du 1er janvier de l'année dernière 00h00 jusqu'au 31 décembre minuit. |
l'année prochaine l'année suivante
| Du 1er janvier de l'année prochaine 00h00 jusqu'au 31 décembre minuit. |
évènements dont la date est ce mois
Il est possible aussi d'utiliser les syntaxes suivantes :
Mot-clef | Période correspondante |
---|---|
il y a <valeur> <période>
| Période spécifiée dans le passé par rapport à maintenant. |
dans <valeur> <période>
| Période spécifiée dans le futur par rapport à maintenant. |
Les différentes périodes possibles sont : minute(s)
, heure(s)
, jour(s)
, semaine(s)
, mois(s)
, an(s)
ou années(s)
.
Pour les périodes minute
et heure
, le période commencera (ou terminera) à la date et heure courante. Pour les autres périodes, elle commencera (ou terminera) aujourd'hui à 00h00.
évènements dont la date est il y a 6 mois
évènements dont la date est dans une semaine
avec
Le mot-clef avec
introduit une recherche d'objets liés avec d'autres objets.
Elle permet de rechercher un ensemble d'objets à l'aide une requête normale, puis retourne les objets qui lui sont reliés par l'intermédiaire d'un champ donné.
Par exemple, les interventions associées aux opérateurs dont le métier est la plomberie.
La syntaxe est la suivante :
<type d'objet> avec <nom du champ contenant le lien> <sous-requête>
ATTENTION ! ce qui suit le mot-clef avec
n'est pas un type d'objet, mais le nom du champ contenant les liens.
Il est donc sensible au genre et au nombre (mais pas aux accents ni à la casse). Heureusement, dans la plupart des cas,
le nom de champ est le nom du type d'objet lié au pluriel.
La sous-requête peut être de n'importe quel type : requête portant sur un champ introduite par le mot-clef dont
,
une autre requête d'objets liés introduite par le mot-clef avec
, etc.
interventions avec opérateur dont le prénom est Jean-Claude et le nom est Dusse
Cette requête recherche toutes les interventions affectées à l'opérateur Jean-Claude Dusse. Notez que opérateur
est obligatoirement au singulier, car il s'agit d'un nom de champ.
ordre travail avec interventions dont l'état est annulée
Cette recherche retourne toutes les interventions ayant au moins une intervention annulée.
campagnes avec objets RU.123
Cette recherche retourne les campagnes qui ont eu lieu sur l'ouvrage d'identifiant RU.123
.
intervention avec ordre de travail
Cette recherche retourne les interventions qui ne sont pas orphelines (c'est-à-dire rattachées à un ordre de travail).
avec éventuellement
Il s'agit d'une recherche ayant la même syntaxe et retournant le même résultat qu'une recherche « avec
», à ceci prêt que la recherche retourne en plus les objets n'ayant aucune association.
opérateur dont agence est AG.ASAP avec éventuellement activités ACT.INF
Cette recherche retourne les opérateur de l'agence AG.ASAP
associés à l'activité ACT.INF
, ainsi que les opérateurss de l'agence AG.ASAP
qui ne sont associés à aucune activité.
sans
Le mot-clef sans
permet de rechercher les objets n'ayant aucune association avec d'autres objets.
Cette recherche utilise exactement la même syntaxe que celle introduite par le mot-clef avec
.
interventions sans ordre de travail
Cette recherche retourne les intervention orphelines (sans ordre de travail).
ordre de travail sans interventions
Cette recherche retourne les ordres de travail n'ayant encore aucune intervention.
ordre de travail sans interventions dont état est non réalisable.
Cette recherche retourne les ordres de travail n'ayant aucune intervention non réalisable.
Les mots-clefs avec
et sans
introduise une recherche imbriquée.
Une question se pose alors si cette recherche imbriquée est suivie d'une autre partie de la recherche introduite par un nouveau mot-clef : cette partie de la recherche porte-t-elle sur la recherche imbriquée ou bien sur la recherche globale ?
Par défaut, tout ce qui suit une recherche imbriquée porte sur cette recherche imbriquée et pas sur la recherche globale.
client avec agences avec activités dont gestion des ressources est "Oui"
retourne les clients associés aux agences associées aux activités dont la gestion des ressources est activée.
Si l'on veut que ce qui suive la recherche imbriquée porte sur la recherche précédente, il faut entourer la recherche imbriquée avec des crochets, de la manière suivante :
client avec agences avec activités [ dont gestion des ressources est "Oui" ] dont service d'astreinte est "Oui"
retourne les clients qui sont associés aux agences avec un service d'astreinte, qui sont associées aux activités dont la gestion des ressources est activée.
Si on n'avait pas mis les crochets, la partie dont service d'astreinte est "Oui"
aurait porté sur les activités des agences.
On peut imbriquer les crochets :
client avec agences [ avec activités [ dont gestion des ressources est "Oui" ] dont service d'astreinte est "Oui" ] dont la société mère est "VEOLIA"
retourne les clients dont la société mère est Veolia, et qui sont associés aux agences avec un service d'astreinte associées aux activités dont la gestion des ressources est activée.
Si on n'avait pas mis les crochets, la partie dont la société mère est "VEOLIA"
aurait porté soit sur les activités des agences, soit sur les agences (en fonction de quels crochets on supprime).
Les recherches géographiques permettent de retrouver les objets :
situés dans une zone donnée.
situés à proximité d'un ou plusieurs d'objets données.
Le mot-clef situé dans
introduit la recherche au sein d'une zone.
La syntaxe est la suivante :
<type d'objet> situé dans <sous-requête>
La sous-requête peut être n'importe quelle type de recherche. Elle doit retourner un ou plusieurs objets de type "secteur".
La requête principale retournera alors l'ensemble des objets situés dans l'ensemble des objets de type "secteur" retourné par la sous-requête.
Le mot-clef situé à
introduit une recherche de proximité.
La syntaxe est la suivante :
<type d'objet> situé à <distance> de <sous-requête>
La sous-requête peut être n'importe quelle type de recherche.
La requête principale retournera l'ensemble des objets situés autour des objets retournés par la sous-requête, à une distance inférieure ou égale à la distance spécifiée.
La distance est constitué d'une valeur numérique suivie d'une unité : m
ou km
.
Les mots-clefs avec tag
et sans tag
permettent d'effectuer des recherches d'objet associés à des étiquettes de classification.
La syntaxe est la suivante :
<type d'objet> avec tag <étiquette n°1> [ ou <étiquette n°2> ... ]
<type d'objet> sans tag <étiquette n°1> [ ou <étiquette n°2> ... ]
avec tag
recherche les objets qui possèdent les étiquettes spécifiées. sans tag
les objets ne possédant pas les étiquettes spécifiées.
Les étiquettes sont indiquées en utilisant le format interne d'Omogen :
<Parent> | <Groupe> : <Nom de l'étiquette>
intervention avec tag "Couleur:Bleu" ou "Couleur:Rouge"
intervention avec tag "Accident animal|Type d'animal:Grand gibier"
Le mot-clef quelconque
peut être utilisé pour faire une recherche de tous les objets d'une classe.
ordre de travail quelconque
Retournera tous les ordres de travail de la base.
C'est équivalent à utiliser
ordre de travail
seul comme recherche.
La recherche générique permet d'effectuer une recherche textuelle sur l'ensemble de la base de données.
Elle est déclenchée dès lors que le texte complet de la recherche est écrit entre guillements :
"<recherche textuelle>"
Le texte contenu entre guillemets est alors recherché dans la base de données. Les objets dont la fiche contient au moins une occurence de ce texte sont retournés.
Il est possible d'utiliser le caractère spécial *
dans le texte recherché. Il signifie alors "n'importe quel texte".
La recherche est insensible à la casse.
Attention : ce type de recherche peut-être très lent, car il est toujours proportionnel à la taille de la base de données.
Donc évitez autant que possible ce type de recherche !
Certains mots-clefs servent de raccourci à certaines recherches.
Mot-clef | Exemple | Signification | Correspond à la recherche |
---|---|---|---|
actif / active
|
<type d'objet> actif
| Recherche d'objets actifs |
<type d'objet> dont activé n'est pas Non
|
inactif / inactive
|
<type d'objet> inactif
| Recherche d'objets désactivés |
<type d'objet> dont activé est Non
|
Le résultat d'une recherche est, par défaut, trié dans l'ordre croissant des identifiants internes.
Le tri est dit "naturel". C'est-à-dire qu'il est insensible à la casse, et qu'en outre les éventuels nombres présents à l'intérieur de l'identifiant sont triés par ordre numérique et non alphabétique.
INT.8, INT.9, INT.10, INT.11
et non INT.10, INT.11, INT.8, INT.9
qui serait un tri alphabétique classique.
Par défaut, le tri est toujours par ordre croissant.
Il est possible d'inverser l'ordre du résultat et d'obtenir un tri par ordre décroissant en ajoutant (en ordre inverse)
ou (par ordre inverse)
à la fin de la recherche.
Il est possible de trier le résultat de la recherche en fonction de la valeur d'un champ donné.
Pour cela, il faut rajouter à la fin de la recherche (par <champ>)
ou <champ>
est le nom du champ de tri.
Il est possible en outre de spécifier si le tri est croissant ou décroissant en ajoutant le terme croissant
ou décroissant
après le nom du champ et avant la parenthèse fermante.
Par défaut, le tri est par ordre croissant.