6 La navigation dans le manuel de Kentika est réservée aux utilisateurs identifiés
Méthode : Select
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.
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
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")
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
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"
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.
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)
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.
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.
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.
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
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 ";".
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.
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
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.
Powered by KENTIKA Atomic - © Kentika 2025 tous droits réservés - Mentions légales