Utilisation des fonctions de recherche

Ce document explique comment exploiter les différents types de fonction de recherche proposés dans M3 Business Engine.

Les types de recherche disponibles dans M3 BE sont les suivants :

  • Recherche simple
  • Recherche avancée
  • Recherche incluant les mots réservés
  • Utilisation de M3 IES via les appels API - Infor Enterprise Search (IES) ; Application Programming Interface (API)
  • Recherche clé multiniveau
  • Requêtes de recherche très avancée
  • Références Lucene

Recherche simple

Il s'agit de la forme de recherche la plus simple fondée sur la saisie de mots complets avec respect de la casse. Toutes les colonnes font l'objet de la recherche et les mots peuvent provenir de plusieurs colonnes.

  • Utilisation de la zone Recherche

    Dans la zone Recherche, tapez le mot à rechercher, dans son intégralité et en tenant compte de la casse. Par exemple, une recherche du mot ' fromage' renvoie toutes les occurrences de ce même mot dans toutes les colonnes.

    L'utilisation de l'opérateur AND avec plusieurs mots signifie que tous les mots doivent exister dans une ou plusieurs colonnes sur une ligne. Par exemple, une recherche sur ''fromage'' et ''jus'' renvoie toutes les lignes dans lesquelles les deux mots existent dans une colonne ou une ligne.

    L'utilisation de l'opérateur OR avec plusieurs mots signifie que l'un des mots doit exister dans l'une des colonnes. Par exemple, une recherche sur 'fromage OR frais' renvoie toutes les lignes dans lesquelles l'un ou l'autre des mots existe dans l'un des colonnes.

    Utilisez ( ) pour combiner des blocs AND et OR. Par exemple, ''fromage OR (jus 011215)'' renvoie toutes les lignes dans lesquelles le mot ''fromage'' existe ou l'expression ''jus 011215'' existe.

    Vous pouvez utiliser les caractères génériques suivants dans la zone Recherche :

    • '*' - remplace plusieurs caractères. Par exemple, 'from*' retourne toutes les occurrences contenant 'from' telles que 'fromage', 'fromages', 'fromages frais', etc.
    • '?' - remplace un caractère unique à une position précise. Par exemple, ''from?ge'' renvoie des instances de ''fromage''.
  • Colonnes

    Pour limiter la recherche à une seule colonne, cliquez avec le bouton droit sur l'en-tête de la colonne et sélectionnez Ajouter à recherche. Spécifiez le mot à rechercher.

  • Noms de champs

    Vous pouvez utiliser des noms de champ dans la requête de recherche pour rechercher des champs qui ne sont pas affichés dans une colonne. Par exemple, ''from* STAT:20'' renvoie des instances contenant ''from'' qui ont également le statut ''20'', bien que le statut ne soit pas affiché dans une colonne.

  • Dates

    Vous pouvez rechercher des dates spécifiques à l'aide du même format de date que celui défini pour l'utilisateur dans la table principale des utilisateurs. Par exemple, 'LMDT: 112515' renvoie toutes les lignes dont la colonne Date contient '112515' in the date dans ce format.

  • Point décimaux

    Le format de point décimal utilisé est contrôlé par le paramètre dans la table principale des utilisateurs. Par exemple, '.', ',' etc.

Recherche avancée

  • Plages

    Vous pouvez rechercher des plages de données en utilisant des crochets comme démontré ci-après :

    • [x TO y] signifie que les valeurs sont inclues. Par exemple, '[100 TO 480]' renvoie toutes les instances contenant des valeurs comprises entre 100 et 480 dans la colonne sélectionnée.
    • {x TO y} signifie que les valeurs sont exclues. Par exemple, '[100 TO 480]' renvoie toutes les instances en dehors de la plage de 100 à 480 dans la colonne sélectionnée.

    Les plages peuvent contenir des caractères génériques et des combinaisons de [ et de { pour trouver toutes les transactions qui ont une valeur négative.

  • Dates

    Les macros de date suivantes sont fournies :

    • YEAR(x)
    • MONTH(x)
    • WEEK(x)
    • DATE(x)

    'x' désigne un nombre relatif, '0' correspondant à l'année, au mois, à la semaine et à la date en cours.

    Par exemple, 'INDT:YEAR(-1)'.

    La macro DATE peut être combinée avec des plages pour vous permettre de créer votre propre plage. Par exemple, LMDT:[DATE(-14) TO DATE(0)] renvoie toutes les transactions des deux dernières semaines.

    Si vous utilisez NOT, vous devez le précéder par une autre requête. Par exemple, No:780 NOT INDT:YEAR(0).

    Les macros de date sont très utiles avec des recherches enregistrées car elles permettent un lien rapide à, par exemple, les commandes du mois dernier. Vous pouvez les sauvegarder dans des favoris, des canevas, comme option de menu ou dans la zone de boîte d'outils, pour y accéder facilement.

  • Caractères génériques

    '?' - remplace un caractère unique à une position précise et peut être utilisé avec d'autres caractères génériques. Par exemple, 'SUNO:?*'.

    Pour les champs numériques, vous ne pouvez pas utiliser l'instruction NOT. Par exemple nb mkll?>e, NOT STQT:0.

    ~ – peut être utilisé comme caractère alphabétique, non numérique, et dans une recherche floue. Cela signifie que les caractères ne doivent pas nécessairement correspondre exactement à ceux de la requête.

  • Tri des résultats de recherche

    La fonction Tri des résultats de recherche permet de trier librement tous les champs d'une table principale dans la fonction, sauf les champs qui contiennent des mots multiples tel qu'une description. Les résultats d'une recherche dans une table liée, définie dans Recherche liée. Ouvrir (CMS022) ne sont pas triés.

    Les résultats de recherche qui proviennent de tables liées et de la table principale sont présentés avec ceux de la table principale d'abord, affichés selon la méthode de tri sélectionnée, puis ceux des tables liées sans aucun format de tri.

    Ce tri est effectué en utilisant le mot clé SortBy:x,a,!y' où ''!'' effectue un tri par ordre décroissant.

    Vous pouvez enregistrer un tri dans la zone de boîte d'outils, où vous pouvez retrier la liste sans devoir utiliser d'index séparé. Par exemple, vous pouvez retrier les résultats pour le numéro de division actuel en utilisant CONO:xxx, où xxx est remplacé par le numéro de division utilisé actuellement par M3 BE.

  • Recherche de mots multiples

    Une recherche de mots multiples sur plusieurs colonnes peut facilement renvoyer de faux résultats car elle renvoie toutes les instances de recherche dans tous les champs, dans toutes les colonnes. Par exemple, ''froma* 10''.

    Si vous utilisez le mot clé ''SearchFields:x;y;z'', vous pouvez chercher dans plusieurs colonnes mais uniquement dans les champs spécifiés. Par exemple, ''SearchFields:ITDS,FUDS froma* 10''.

  • Recherche clé

    Les requêtes de recherche complexes sont plus faciles à utiliser avec des recherches de clé. Elles permettent également de rechercher dans d'autres tables sans avoir à utiliser des clés correspondantes, à la différence d'une recherche liée définie dans (CMS022).

    Par exemple, vous pouvez définir une requête pour laquelle la partie prédéfinie de la recherche de clé est automatiquement ajoutée lors de la saisie.

    Les recherches de clé disponibles s'affichent si vous appuyez sur Ctrl+F.

    Remarque

    Une recherche de clé est effectuée sur la table principale et sur les tables liées (définies dans (CMS022) ou les tables liées via le programme Tables liées. Connecter (CMS011)).

Recherche avec des mots réservés

Des mots réservés dans M3 IES (Infor Enterprise Search) sont utilisés dans des requêtes de recherche enregistrées et publiées pour récupérer automatiquement des données dans le contexte auquel elles appartiennent.

A l'aide de mots réservés, vous pouvez concevoir et publier des widgets généraux, des pages favorites dans M3 H5, des pages d'accueil et des widgets dans Infor OS.

Des mots réservés peuvent aussi remplacer des informations dans des requêtes, basé sur la ligne sélectionnée dans une liste ou dans un en-tête d'écran.

Il est aussi possible d'utiliser une recherche enregistrée pour ajouter des liens à d'autres programmes, en passant la requête de recherche au programme suivant.

Ce tableau montre les mots réservés de M3 IES (Infor Enterprise Search) :

Mot réservé Effet
SortBy:x,y,!z Tri les résultats de recherche dans la hiérarchie x, y, z. Le caractère ''!'' devant un nom de champ indique qu'un tri est effectué par ordre décroissant.
SearchFields:x;y Limite la recherche aux champs affichés x, y, etc. Améliore la performance et peut éliminer des résultats erronés
Year(x) Intervalle de date de l'année relatif à l'année courante x=-1 signifie l'année dernière.
Month(x) Intervalle de date du mois relatif au mois courant x=-1 signifie le mois dernier.
Week(x) Intervalle de date de la semaine relatif à la semaine courante x=-1 signifie la semaine dernière.
Date(x) Intervalle de date relatif à la date courante x=-1 signifie le jour précédent.
<xxxx> Remplacements dans chaîne de recherche basé sur liste et en-tête de liste.
<USID> ID utilisateur connecté.
<CONO> Numéro de la division connectée.
<DIVI> Société connectée ; identique à <CurrentDivision>.
<FACI> Etablissement par défaut issu de Utilisateur. Ouvrir (MNS150).
<CUNO> Code client issu de (MNS150).
<LNCD> Code langue issu de (MNS150).
<CurrentLanguage> Langue actuellement utilisée dans M3 BE (en cas de langue changée en cours de session).
<TIZO> Fuseau horaire issu de (MNS150).
<WHLO> Dépôt issu de (MNS150).
<DEPT> Département issu de (MNS150).
<MNVR> Version de menu issue de (MNS150).
<DFMN> Nom de menu issu de (MNS150).

Ce tableau montre M3 IES (Infor Enterprise Search) pour une utilisation avec recherche de clé seulement :

Mot réservé Effet
<QRY> Requête spécifiée dans la chaîne de recherche.
MAXJOIN:x Utilisé pour changer le nombre d'enregistrements utilisé dans le joint recherche clé (valeur par défaut définie dans les pages de gestion locale IES).
NOOPT Utilisé lorsque plusieurs recherches clé sont effectuées dans une même table. Par exemple, 'rechercher articles avec attribut x, y mais PAS z' ou 'articles existant en dépôt a b et c'.

Utilisation de mots d'arrêt

Les mots d'arrêt M3 IES sont des mots qui ne sont pas indexés et sont automatiquement retirés d'une requête de recherche. Exemple : 'and', 'or, and' et 'etc.'. Par défaut, IES possède un groupe de mots d'arrêt basés sur l'anglais qui comprennent aussi 'a', 'by', 'is', et 'as'. Il arrive que ces mots ont un sens différent et qu'ils doivent être inclus dans une recherche. Par exemple, 'Factor a' ou le mot suédois 'is' qui signifie 'glace' en anglais.

Une solution envisageable serait d'ajouter un nouveau mot d'arrêt dans les pages d'administration IED pour ces mots. Il faudrait lui donner un nom unique qui ne serait normalement pas dans une recherche, par exemple 'lkdshja7789'.

Remarque

Après l'ajout des nouveaux mots d'arrêt dans les pages d'administration IED, les tables affectées tel que MITMAS, MITLAD, OCUSMA, CIDMAS etc., doivent être réindexées.

Règles de requête de recherche et recherche clé

Les règles suivantes sont utilisées pour définir '*' et '~' :

  • <QRY>* - ajoute automatiquement un caractère générique à chaque mot de la requête saisie. Par exemple, la requête 'joh smit' est définie sur 'joh* smit*' avant de lancer la recherche.
  • <QRY>~ - ajoute automatiquement un tilde, ou une recherche floue, à chaque mot de la requête saisie. Par exemple, la requête 'joh smit' est définie sur 'joh~ smit~' avant de lancer la recherche. Dû au type de recherche, les recherches floues ne doivent pas être utilisées avec des valeurs numériques.

Exceptions :

  • Requête à l'intérieur de '' - Si la requête saisie est entourée de guillemets doubles '', les caractères génériques ne sont pas ajoutés à la recherche et le moteur de recherche traite tous les caractères contenus dans '' comme des caractères normaux. Par exemple, 'joh*' renvoie seulement des résultats pour 'joh*' avec le caractère '*', et ne renvoie pas 'john' etc.
  • Mots courts - (effectif à partir de la version 11 patch 5 de M3 IES). Les caractères '*' et '~' ne sont pas ajoutés aux mots courts contenant moins de caractères que le nombre de caractères défini à la page d'administration locale IES. Par exemple, si le paramètre défini avec trois caractères (la valeur par défaut), les caractères '*' ou '~' ne sont pas ajoutés à 'jo', '10' et 'xl'. L'objectif est d'optimiser la performance du système.

Utilisation de IES (M3 Infor Enterprise Search) dans les appels API (Application Programming Interface)

L'utilisation d'IES est totalement prise en charge par M3 API. La fonction de recherche est activée pour certaines transactions API standard, tel que 'Trans SearchItem' (MMS200MI), où la saisie de filtre normale est remplacée par une requête de recherche. Une recherche par API prend en compte toutes les requêtes de recherche normales sauf celles qui sont liées à l'interface utilisateur tel que les macros de date et les remplacements de valeur de champ, par exemple <WHLO>.

Les transactions MDBREADMI et CMS100MI sont pleinement activées pour la recherche.

Remarque

La recherche API n'impose aucune limite supérieure fixe pour le nombre de renvois d'enregistrements. Cependant une limite pratique est créée par le temps de réponse. Par conséquent, le nombre d'enregistrements renvoyés dépend de l'environnement, et le nombre maximum raisonnable se situe autour de 3 000-6 000 enregistrements.

Pour plus d'informations, consultez le référentiel API dans 'Référentiel MI. Ouvrir' (MRS001), 'Transaction MI. Ouvrir' (MRS002) et 'Format de transaction MI. Ouvrir' (MRS003).

Recherches de facettes

La recherche de facettes est une fonction que propose Infor Enterprise Search (IES) par le biais d'appels API. Elle implique principalement de compter le nombre d'enregistrements qui correspondent à une certaine valeur dans un champ spécifique, ou d'agréger le nombre d'enregistrements dans des groupes divers.

Les facettes M3 sont extraites via (FACETIM). La saisie API est le nom de la table pour laquelle les facettes sont extraites, ainsi que la requête de recherche pour filtrer les facettes et leur nombre. Par exemple, les résultats d'une requête peuvent être groupés en 161 enregistrements avec un prix d'achat de '0' et 1 enregistrement avec un prix de vente de '20'.

L'avantage d'utiliser des facettes est leur performance quel que soit le nombre d'enregistrements, et aussi le fait que le filtre et le nombre de facettes est basé sur une requête de recherche. Elles permettent une analyse très profonde des données.

Les facettes peuvent également servir de statistiques en ligne et elles ont été ajoutées à de nombreuses tables M3, y-compris les tables transactionnelles et statistiques. Par exemple, le modèle de page d'accueil Responsable des ventes M3 utilise les facettes.

Recherche clé multiniveau

La recherche clé multiniveau permet d'effectuer des recherches sur plusieurs tables en parallèle.

Remarque

L'utilisateur doit commencer une recherche multiniveau à partir de la recherche qui a renvoyé le moins de résultats et où la requête saisie est utilisée (par exemple, le niveau MITMAS).

Le fait d'ajouter plusieurs recherches de clé permet de rechercher les descriptions dans plusieurs langues et de rechercher des alias avec une seule requête. Remarque : en procédant de la même façon que pour une recherche de clé unique, vous pouvez connecter des recherches de clé à un niveau supérieur.

Requêtes de recherche plus avancée

Cette section s'adresse aux utilisateurs avancés IES qui désirent exécuter des requêtes de recherche IES dans le code. Ces dernières ne sont pas créées manuellement.

Recherche de clé sans Ctrl+F UI/(CMS030)

Exemple de syntaxe utilisée si défini dans 'Recherche clé. Ouvrir' (CMS030) :

lié :[ITEM/WHS('WHLO:100'; ITEM GRP1('ITGR:1533'; ITEM_BROWS('chair')))]

  • ID recherche clé qui existe dans (CMS030) – 'ITEM/WHS', 'ITEM GRP1, et 'ITEM_BROWS'
  • Requête pour recherche clé – 'WHLO:100', 'ITGR:1533', et 'chair'
    Remarque

    Assurez-vous d'utiliser le nombre correcte de ')'.

Recherche clé sans UI/(CMS030)

Exemple de syntaxe utilisée si non défini dans (CMS030) : lié :

[MITMAS(ITNO;'ITGR:fop*'; ITEM_BROWS('chair'))]

  • Nom de table dans M3 - 'MITMAS'
  • Champs de sortie de recherche clé (utilisez ',' si vous cherchez plusieurs champs) – 'ITNO'
  • Requête pour recherche clé – 'ITGR:fop' et 'chair'
  • ID recherche clé qui existe dans (CMS030) – 'ITEM_BROWS'

Exemple de syntaxe utilisée si non défini dans (CMS030) et que référence complémentaire n'est pas dans 'Réf complémentaire de champ. Ouvrir' (CMS031):

lié :[ITEM_RESP('magnus';MITBAL(RESP=USID,CHID;'RESP:itama0';ITEM/WHS('WHLO:100';ITEM GRP2('1533';ITEM_BROWS('chair')))))]

  • Nom de table dans M3 – 'MITBAL'
  • Champs de sortie de recherche clé (utilisez ',' si vous cherchez plusieurs champs) – 'USID','CHID'
  • ID recherche clé qui existe dans (CMS030) – 'ITEM_RESP', 'ITEM/WHS' et 'ITEM_BROWS'
  • Référence complémentaire (normalement défini dans (CMS031)) – 'RESP'

Exemple avec utilisation de recherche clé

  • lié :[ORDEREDGTO_1(MITMAS(ITNO;'ITNO:cherry OR ITDS:cherry~ OR FUDS:cherry~ OR ITDS:cherry* OR FUDS:cherry*'))]
  • lié :[MITMAS(ITNO;'ITGR:fop*'; ITEM_BROWS('chair'))]
  • lié :[ITEM/WHS('WHLO:100'; ITEM GRP1('ITGR:1533'; ITEM_BROWS('chair')))]
  • lié :[MITBAL(ITNO;'RESP:itama0';ITEM/WHS('WHLO:100';ITEM GRP2('1533';ITEM_BROWS('chair'))))]
  • lié :[MITMAS(ITNO;'ITGR:fop*'; ITEM_BROWS('chair'))] NON lié :[ITEM/WHS('WHLO:100] recherche clé séparée. Vous pouvez utiliser AND (par défaut si rien n'est spécifié), OR et NOT. Dans cet exemple, les résultats renvoyés de la première partie sont listés s'ils ne sont pas des résultats de la deuxième recherche clé.
  • MAXJOIN:2000 lié :[MITMAS(ITNO;'ITGR:fop*'; ITEM_BROWS('chair'))] Remarque : MAXJOIN augmente le nombre de résultats en interne avec la recherche clé. Cette information remplace le paramètre défini dans les pages de gestion locale IES.

Références Lucene

IES utilise le moteur de recherche Lucene comme base. La syntaxe de recherche de Lucene est documentée dans https://lucene.apache.org/core/2_9_4/queryparsersyntax.html.