menuHaut

[Coheris] Modifier le seuil de déclenchement de la QuickSearch

En utilisation normale, la recherche rapide présente dans Coheris CRM lance une requête à chaque caractère saisi et ce dès le premier caractère. Il s’agit là d’une autocomplétion classique.

Au delà du fait que cette fonctionnalité est très pratique et appréciée dans le CRM comme moteur de recherche, il n’est pas possible en standard de modifier le déclenchement dès le 1er caractère saisi. Cela pose notamment un souci lorsqu’un grand nombre d’utilisateurs se servent simultanément de cette recherche puisque nous avons autant de requêtes serveur et BDD simultanées que nous avons d’utilisateurs X nombre de caractères saisis. Dans certains cas, ce fonctionnement peut s’avérer problématique et dégrader les performances de l’application.

Pour éviter de rencontrer cet éventuel problème lié à la volumétrie, je vous recommande de modifier le seuil de déclenchement pour le fixer à 3 caractères (4 étant possible mais de nombreux noms de famille ne font que 3 caractères).

Pour cela, il faut modifier une des librairies JS internes de Coheris CRM. La solution se trouve dans le fichier quickSearch.js présent dans $JBOSS_HOME\server\coheriscrm\deploy\coheriscrm_res.war\js\internal\. L’autocomplétion étant gérée par un module de la librairie ExtJs, il est possible de modifier les propriétés de l’objet comboBox utilisé par l’éditeur pour générer ce module.

Il suffit ainsi simplement de modifier la valeur de la propriété minChars (ligne 183 pour les versions 5.0 et 5.1 et ligne 16 pour les versions 5.7 et ultérieures) fixée à 1 par défaut pour la passer à la valeur souhaitée (ici 3). Vous vous retrouvez alors avec la ligne suivante :

// CMO : passage seuil 3 caracteres
minChars:3,

Une fois votre cache vidé, le paramètre modifié est pris en compte instantanément.

Pour information, voici à quoi ressemble le bloc « ComboBox » modifié :

  // combobox prop
  var search = new Ext.form.ComboBox({
      id:"quickSearchCombo",
      store: ds,
      displayField:defaultfieldToDisplay(tableName), 
      typeAhead: false,
      loadingText: '  0 (Item) ',
      //width: 190,
      //height:20,
      // CMO : passage seuil 3 caracteres
      minChars:3,
      listWidth:600,
      hideTrigger:false,
      tpl:getTemplateByTable(tableName),
      applyTo: 'quickSearchValue',  
      itemSelector: 'div.search-item',
      style:'color:green',
      emptyText:'',
      onSelect: function(record){ // override default onSelect to do redirect
         quickSearchEvent = getQuickSearchEvent(record, tableName);
         eval(quickSearchEvent);     
      }
  });

Attention : Cette librairie est un fichier faisant partie du core produit Coheris CRM. La modification effectuée localement sera à reproduire à chaque montée de version car elle sera systématiquement écrasée par les fichiers mis à jour.

Atten

, , ,

No comments yet.

Laisser un commentaire

Powered by WordPress. Designed by Woo Themes