Quel meilleur choix pour gérer des listes déroulantes?

Tags: #<Tag:0x00007f9e4f4e9018>

Bonjour,

J’ai des formulaires avec de nombreuses listes déroulantes.

Quelle est la meilleure solution pour permettre aux utilisateurs de gérer le contenu de ces listes ?

Merci.

L’idéal quand on veut donner la main à un administrateur métier sur des données de référence c’est de les paramétrer non pas comme des listes de valeur mais comme des objets métier (quite à présenter la selection de la référence en mode dropdown avec complétion proche ergonomiquement d’une liste déroulante)

C’est mon avis personnel mais pour moi seuls devraient être configurés en type liste de valeur les liste de valeurs totalement ou relativement immuables dans le temps (ex: la liste des jours de la semaine, des mois, des civilités, …) => tout le reste devant être configuré comme des objets métier de référence

Sinon l’autre approche, que je n’aime pas du tout, c’est d’habiliter les objets système de paramétrage des listes de valeur (ou des héritiers filtrés). Le gros pb avec cette approche c’est que ça ne gère pas l’intégrité référentielle = si votre user surprime une valeur de la liste rien ne lui dira que cette valeur est utilisée. Avec des objets de référence l’intégrité référentielle est en revanche parfaitement garantie

Merci David,

Je suis effectivement parti sur l’option via des objets métiers. Je voulais quand même m’assurer qu’il n’y avait pas une autre méthode.

Comme je le dit il reste toujours possible de donner la main à votre administrateur métier sur les objets système des listes de valeur mais il faut lui faire comprendre comment ça marche pour qu’il ne supprime pas de valeurs utilisées et/ou ne modifie pas des codes de valeurs utilisée, bref pour moi trop de contraintes pour mettre ça à la main d’utilisateurs métier qui ne comprennent pas la notion d’intégrité référentielle.

Le rendering des reference à des objets en mode “dropdown” est aussi bien (sinon meilleur car il gère la complétion) que les listes déroulantes (et là on est certain que l’intégrité référentielle est respectée), ex sur la démo sélection du fournisseur sur le produit:

image

J’ai reproduis la config de la démo sélection du fournissseur sur une de mes listes, je n’obtiens pas le même résultat.

Est-ce que j’oublie un paramétrage?

Cette recherche nécessite que les objets soient indéxables et donc indéxés.
En effet lorsqu’on rentre un texte, ça recherche dans les champs indéxés de l’objet et la clé fonctionnelle.

  • Passez votre objet et les champs importants en “indexable”
  • Lancez l’indexation pour indexer ce qui est déjà en base, ensuite l’index se mettra à jour tout seul : menu Operation / Index d’objet / bouton Rebuild Index
  • Attendez que l’indexation asynchrone se termine, dans les logs vous devez voir passer votre objet.

Bonjour François,

J’ai passé mes objets et mes champs en indexables, j’ai réindéxé tous les objets et j’ai bien vu passer mes objets dans les logs

2020-07-09 11:37:31,767 INFO [com.simplicite.util.tools.IndexSQLTool] SIMPLICITE|http://lsllcot01.lausanne.ch:20188||MINDEX01|system|com.simplicite.util.tools.IndexSQLTool|indexation||Objet indexé: CourrierDEJQBoTransmissionSuivi (13 indexes) 32/94
2020-07-09 11:37:31,725 INFO [com.simplicite.util.tools.IndexSQLTool] SIMPLICITE|http://lsllcot01.lausanne.ch:20188||MINDEX01|system|com.simplicite.util.tools.IndexSQLTool|indexation||Objet indexé: CourrierDEJQBoService (1 indexes) 31/94
2020-07-09 11:37:31,721 INFO [com.simplicite.util.tools.IndexSQLTool] SIMPLICITE|http://lsllcot01.lausanne.ch:20188||MINDEX01|system|com.simplicite.util.tools.IndexSQLTool|indexation||Objet indexé: CourrierDEJQBoLeaderSuspens (9 indexes) 30/94
2020-07-09 11:37:31,693 INFO [com.simplicite.util.tools.IndexSQLTool] SIMPLICITE|http://lsllcot01.lausanne.ch:20188||MINDEX01|system|com.simplicite.util.tools.IndexSQLTool|indexation||Objet indexé: CourrierDEJQBoInterne (9 indexes) 29/94
2020-07-09 11:37:31,644 INFO [com.simplicite.util.tools.IndexSQLTool] SIMPLICITE|http://lsllcot01.lausanne.ch:20188||MINDEX01|system|com.simplicite.util.tools.IndexSQLTool|indexation||Objet indexé: CourrierDEJQBoGenrePiece (32 indexes) 28/94
2020-07-09 11:37:31,535 INFO [com.simplicite.util.tools.IndexSQLTool] SIMPLICITE|http://lsllcot01.lausanne.ch:20188||MINDEX01|system|com.simplicite.util.tools.IndexSQLTool|indexation||Objet indexé: CourrierDEJQBoExterne (53 indexes) 27/94
2020-07-09 11:37:31,379 INFO [com.simplicite.util.tools.IndexSQLTool] SIMPLICITE|http://lsllcot01.lausanne.ch:20188||MINDEX01|system|com.simplicite.util.tools.IndexSQLTool|indexation||Objet indexé: CourrierDEJQBoEnCopie (4 indexes) 26/94
2020-07-09 11:37:31,365 INFO [com.simplicite.util.tools.IndexSQLTool] SIMPLICITE|http://lsllcot01.lausanne.ch:20188||MINDEX01|system|com.simplicite.util.tools.IndexSQLTool|indexation||Objet indexé: CourrierDEJQBoCourrier (530 indexes) 25/94

j’ai vidé le cache au cas où, mais pas de changement…

Non… je suis trop impataient… c’est tout bon, MERCI

Ok.

Sur hsqldb c’est assez lent si la table m_index est grande : en effet cette base ne dispose pas d’index fulltext digne de ce nom et Simplicité ne peut faire qu’un simple like %xxx% de ce qui est tapé = full scan à chaque requete (donc à limiter à des instances de dev).
.
Sur les autres bases (postgreSQL chez vous), la fenêtre doit apparaître plus rapidement car on passe par un index de la base de données dédiées aux recherches full-text.