0

6 La navigation dans le manuel de Kentika est réservée aux utilisateurs identifiés



Méthode : Select

Méthode : "Select"

Préambule

Cette méthode est une des plus importantes du logiciel. C'est grâce à ses nombreuses possibilités que votre application a un fort potentiel documentaire.

C'est la méthode qui est utilisée par le logiciel lorsqu'une recherche est effectuée (exemples : recherche simple, multi-critères, constitution d'un dossier...). Le comportement décrit ci-dessous est valable dans l'ensemble de l'application.

Syntaxe

Select ("Table" ; "Rubriques" ; "Valeur" ; "Opérateur")

Paramètres : Type : Description

Table : Alpha : Numéro de la table (Restriction : sur les types entre parenthèses)

Rubriques : Alpha : Numéro de rubrique ou code des rubriques

Valeur : Alpha : Expression recherchée

Opérateur : Alpha (optionnel) : Comparaison à effectuer

Paramètre "Table"

Ce paramètre peut contenir le numéro ou l'intitulé de la table. Les tables document, référence, auteur, personnes et revues sont déclinées en types, il est possible de préciser des types sur lesquels effectuer la recherche en les séparant par des ; et en les plaçant entre parenthèses.

Exemples

Select ("document(ouvrage;article)";"titre";"manuel")

Select ("03(ouvrage;article)";"titre";"manuel")

Select ("03";"titre";"manuel")

Numéros de tables

N° Table

1 Personne

3 Document

5 Thesaurus

6 Auteur

19 Référence

(Bibliothéconomie)

8 Revues

14 Service

15 Fournisseur

16 Commande

17 Ligne de commande

20 Emprunt

Paramètre "Rubriques"

Une rubrique du dictionnaire peut être exprimée par son numéro (qui peut être précédé du signe =), son code ou son intitulé. On utilisera le code dans le cas d'un script qui pourrait être utilisé dans différentes applications n'ayant pas exactement le même dictionnaire de données (ie : des rubriques identiques pourraient avoir des numéros différents). L'intitulé peut être pratique au niveau de la lecture du script. Cependant, en cas de modification d'un intitulé, il faudra également modifier les scripts qui l'utilisent.

Exemples

Si la rubrique "Titre" qui a pour numéro de rubrique 21 a pour code "TI", les trois syntaxes suivantes sont équivalentes :

Select ("03";"=21";"manuel")

Select ("03";"TI";"manuel")

Select ("03";"Titre";"manuel")

Il est possible d'indiquer plusieurs rubriques sur lesquelles effectuer la recherche simultanément. Dans ce cas, elles doivent être séparées par le signe ;

Exemple

Select ("Document";"Titre;Commentaire";"manuel")

... recherche les documents ayant "manuel" dans la rubrique titre ou la rubrique commentaire

Il est possible de rechercher sur des rubriques de nature différente. On prendra soin alors d'indiquer dans le paramètre "opérateur", tous les opérateurs à prendre en compte lors de la recherche (exemple : "n;=;" pour que la recherche s'effectue sur tous les mots pour les champs alpha et sur valeur exacte pour les numériques et les dates). Ce type de recherche doit cependant être réservé à des cas de figure bien précis.

Pour les rubriques des données de gestion (exemple : un numéro de commande), elles s'expriment sous la forme $ttrr, ou tt correspond au numéro de table et rr le numéro de rubrique.

Exemple

Select ("16";"$1603";"DAW";"=")

... recherche les commandes ayant un fournisseur dont le code est "DAW"

Rubrique par défaut

Si aucune rubrique n'est précisée, c'est une (ou plusieurs) rubriques par défaut qui seront prises en compte.

Les rubriques par défaut sont les suivantes :

N° Table

Personne Nom, identifiant ou Record_Num ($0101;$0103;$0140)

Document Titre, n° de document ou Record_Num (21;$0301;$0332)

Thesaurus Descripteur ou Record_Num ($0501;$0512)

Auteur Nom ou Record_Num (13;$0606)

Référence Nom ou Record_Num (22;$1925)

(Bibliothéconomie)

Revues Nom ou Record_Num

Service Code ou Nom ($1401;$1402)

Fournisseur Code ou Nom ($1501;$1502)

Commande Numéro ou référence ($1601;$1620)

Ligne de commande Titre ou destinataire ($1704;$1709)

Emprunt Objet emprunté ou Personne ($2003;$2001)

Pour modifier les rubriques par défaut d'une table, il faut personnaliser le paramètre dont le code est S_ suivi du numéro de table. Exemple : "S_03" pour la table document.

Chercher à travers un lien

Pour chercher sur une table en exploitant un lien, il faut indiquer le lien sur lequel effectuer le croisement (un lien retour est exprimé en négatif) suivi d'un point et de la rubrique de recherche.

Exemple

Select ("reference";"-31.21";"manuel";"a;p;n;*")

... recherche les enregistrements de la table référence qui ont publié des documents ayant manuel dans le titre (rubrique -31 : référence des fiches documents)

Rubriques spéciales

Les fiches ayant une zone en traitement de texte peuvent faire l'objet de recherches dans cette zone si cette dernière est indexée. Le code de cette rubrique est "9990" et les opérateurs possibles sont identiques à ceux proposés pour les zones de texte.

Exemple

Select ("Document";"9990";"MIKA";"*;p")

... recherche les documents ayant un mot dans la zone traitement de texte commençant par MIKA

Si vous utilisez une technologie d'indexation en texte intégral, vous pouvez rechercher les fiches ayant un texte attaché répondant à une équation de recherche. Le code rubrique à utiliser dans ce cas est "9999". L'opérateur que vous pourriez indiquer en 4ème paramètre n'est pas pris en compte dans ce cas. En effet, les opérateurs sont en général placés directement dans l'équation.

Exemple

Select ("Document";"9999";"SOFTWARE <AND> WEB"")

... recherche les documents ayant un fichier attaché contenant Software et web.

Paramètre "Valeur"

Le paramètre valeur peut exprimer soit une valeur simple, soit une expression ou une équation.

Les syntaxes possibles dépendent des natures des rubriques interrogées.

-> Voir aussi : Rechercher sur une rubrique texte ; date ; numérique ; thesaurus.

Valeur "formule"

Si la valeur commence par le signe =, le logiciel considère que c'est une formule et que cette dernière doit être exécutée pour connaître la valeur.

Exemple

$Ex:=Select ("document";"Date de parution";"=date du jour-30";">")

... recherche les documents indexés depuis moins de 30 jours.

Valeur sous forme d'expression booléenne

Une valeur peut contenir une expression complexe de recherche combinant les trois opérateurs booléens (& : et ; / : ou ; \ : sauf), ainsi que des parenthèses.

Rechercher les documents qui contiendraient dans la rubrique commentaire "manuel" ou " guide" ainsi que "logiciel" ou "progiciel" mais qui n'aurait pas simultanément "gestion" et "contact" s'exprimerait sous cette forme :

(manuel / guide) & (logiciel / progiciel) \ (gestion & contact)

Règles à respecter pour que ces équations soient correctement interprétées

Une parenthèse ouverte doit être refermée

Un sauf est toujours exprimé à la fin

L'imbrication des parenthèses doit être correcte

exemple : (manuel & (logiciel / progiciel)) \ (gestion & (contact / commerce))

Si les parenthèses sont omises, l'ordre d'interprétation est "ou " puis "et " puis "sauf "

manuel / guide & logiciel / progiciel \ gestion

Les parenthèses ne sont pas obligatoires mais aident à la compréhension de l'équation. Les deux équations suivantes donneront le même résultat mais la première est plus lisible :

(manuel / guide) & (logiciel / progiciel) \ gestion

manuel / guide & logiciel / progiciel \ gestion

Paramètre "opérateur"

Ce dernier paramètre permet de définir quelle opération de comparaison est effectuée lors de la recherche. Il dépend de la nature des rubriques interrogées (texte ; date ; numérique ; thesaurus). Dans le cas où une recherche porterait sur des rubriques de nature différentes, on concaténera les différents opérateurs (exemple : *;>). Les opérateurs doivent être séparés entre eux par le signe ";".

Opérateur spécial : "TableCode"

Lors de la recherche sur une rubrique code, la valeur fournie en paramètre doit correspondre à une code valide pour la rubrique. Si le code n'est pas connu, le logiciel tente une recherche sur le libellé ou sur la traduction du libellé. Ceci peut entraîner une imprécisions dans certains cas (suivant la manière dont sont constitués les codes / libellés). Afin d'éviter que la recherche s'étende au libellé, on indique "TableCode" dans l'opérateur.

Opérateur spécial "inselect"

Si vous devez, au sein d'une même procédure, enchaîner plusieurs recherches en cascade sur la même table, vous devez ajouter l'opérateur "inselect".

Exemple

Select ("Document";"titre";"manuel";"*;p")

Select ("Document";"date de parution";"=date du jour-30";">=;inselect")

... recherche les documents ayant "manuel" dans le titre et parus depuis moins de 30 jours

Opérateur spécial "filter"

Suivant le contexte d'exécution de cette fonction, vous pouvez être amenés à filtrer le résultat afin de ne retenir que les enregistrements auxquels l'utilisateur, pour lequel est exécuté cette requête, a droit.

Exemple

Select ("Document";"titre";"manuel";"*;p;filter")

Select ("Document";"date de parution";"=date du jour-30";">=;inselect")

... recherche les documents ayant "manuel" dans le titre et que l'utilisateur peux voir

A propos de la confidentialité

Si, dans votre base, vous exploitez de manière avancée les possibilités de confidentialité, vous pouvez rencontrer le cas de figure suivant :

Monsieur X peut voir la fiche de "DUPONT Henri" qui a écrit 3 documents.

Sur les 3 documents, Monsieur X peut en voir 2

Monsieur X ne peut pas voir la fiche de "DUPONT Jacques" qui a écrit 2 documents.

Sur les 2 documents, Monsieur X peut en voir 1

Monsieur X effectue une recherche sur "Document.Auteur" commence par "DUPONT". 5 documents seront sélectionnés et après filtrage, 3 documents seront proposés à Monsieur X. Cependant, Monsieur X ne verra pas "DUPONT Jacques" sur le dernier document... et pourra croire à une anomalie.

Ce cas d'école peut cependant être rencontré et si le fonctionnement standard ne convient pas, il faudra prévoir un contournement.