J’ai voulu essayer d’ajouter une liste liée pour la valeur vide (empty ou null), mais la configuration oblige à renseigner un code de valeur pour la liste liée, ce qui empêche de gérer le cas par défaut.
Question
Existe-t-il une solution native dans Simplicité pour définir une liste par défaut quand l’attribut maître (scope/périmètre) est vide ?
Si non, est-ce prévu ou faut-il forcément passer par un hook (preSearch, setList, etc.) pour injecter une liste globale par défaut ?
Il faut rendre le champ “scope” obligatoire afin de forcer l’utilisateur à choisir une valeur.
Ensuite la liste liée sera correctement valorisée car contrainte par le scope.
Si le scope est “facultatif” d’un point de vue métier, il faut le gérer par une valeur à part liée à la liste complète des pays que vous aviez définie : exemple Importateur / Filiale / Tout pays et laisser le scope obligatoire.
Ensuite en terme d’ergonomie, pour guider l’utilisateur dans la saisie:
vous prouvez ajouter une contrainte front qui masque le champ “pays” tant que le “scope” est vide
ou alors mettre une valeur par défaut au scope comme “Tout pays”
Il n’y a que pour une recherche que la liste liée propose toutes les valeurs possibles (par merge de tous les codes possibles) si l’enum parent est vide. Par contre en base/sur le formulaire avoir un code lié/contraint à un parent vide n’aurait pas sens.
Il faudrait pouvoir modéliser le cas métier : champ parent facultatif et vide => afficher une liste liée par défaut.
Dans ce cas, l’attribut pays de déploiement reste vide : nous devons forcer la liste au niveau du code.
Nous avions envisagé un 3ᵉ code (ex : importer_and_subsidiary) mais cela amène trop de contrôles supplémentaires (par ex. un pays présent dans un record importateur ne devrait pas pouvoir être aussi dans un record avec ce nouveau code). Pour le moment ce scénario est en stand-by.
Comme tu l’as indiqué en fin de réponse, dans les cas où aucun scope n’est associé ou dans le cas où l’objet est hérité, nous sommes obligés de setter la liste directement dans le code.