Liste de valeurs
Gestion centralisée des listes de valeurs pour les champs de formulaires.
Vue d'ensemble
Les listes de valeurs (Lists of Values - LOV) permettent de définir des ensembles de valeurs prédéfinies utilisables dans les champs de formulaires. Elles garantissent la cohérence des données et facilitent la saisie pour les utilisateurs.
Une liste de valeurs peut être :
- Simple : Liste plate de valeurs
- Hiérarchique : Arborescence de valeurs parent-enfant
- Localisée : Traductions des valeurs dans différentes langues
Structure des listes
Composants d'une liste
ListNodeValue : Représente un nœud de la liste
public class ListNodeValue
{
public string IdNode { get; set; } // Identifiant unique
public string IdParentNode { get; set; } // ID du parent (null si racine)
public string TextNode { get; set; } // Texte affiché
public string ValueNode { get; set; } // Valeur stockée
public string AbbrNode { get; set; } // Abréviation
}
Propriétés d'une valeur
- Texte : Libellé affiché à l'utilisateur
- Valeur : Valeur technique stockée en base
- Abréviation : Code court (utilisable dans les références)
- Parent : Lien vers le nœud parent (pour hiérarchie)
Création et modification
Créer une nouvelle liste
Dans Process Studio :
- Ouvrir Paramètres → Listes de valeurs
- Cliquer sur Nouveau (Ctrl+N)
- Saisir le nom de la liste
- Valider
Par code :
var valueManager = new ValueManagerWrapper(applicationProfile);
string idList = Guid.NewGuid().ToString();
string listName = \"Statuts_Document\";
bool success = valueManager.SaveListName(idList, listName, null);
Ajouter des valeurs
var values = new List<ListNodeValue>
{
new ListNodeValue(
Guid.NewGuid().ToString(),
null,
\"Brouillon\",
\"DRAFT\",
\"BRO\"
),
new ListNodeValue(
Guid.NewGuid().ToString(),
null,
\"En cours\",
\"IN_PROGRESS\",
\"ENC\"
)
};
valueManager.SaveValues(idList, values.ToArray());
Hiérarchisation
Créer une liste hiérarchique
var parentId = Guid.NewGuid().ToString();
var hierarchicalValues = new[]
{
// Parent
new ListNodeValue(parentId, null, \"France\", \"FR\", \"FR\"),
// Enfants
new ListNodeValue(Guid.NewGuid().ToString(), parentId, \"Paris\", \"75\", \"75\"),
new ListNodeValue(Guid.NewGuid().ToString(), parentId, \"Lyon\", \"69\", \"69\")
};
valueManager.SaveValues(\"Liste_Villes\", hierarchicalValues);
Localisation
Charger les valeurs localisées
string language = \"FR\";
ListNodeValue[] localizedValues = valueManager.LoadValues(idList, language);
Obtenir les textes localisés
string[] fieldValues = new[] { \"DRAFT\", \"IN_PROGRESS\" };
string listName = \"Statuts_Document\";
var localizedTexts = valueManager.GetLocalizedListValues(
listName,
\"FR\",
fieldValues
);
Bonnes pratiques
- Nommer clairement : Utiliser des noms explicites
- Standardiser les valeurs : Codes cohérents (UPPERCASE)
- Ne pas supprimer : Désactiver plutôt que supprimer
- Limiter la profondeur : Max 3-4 niveaux de hiérarchie
Références
Classes principales
ValueManagerWrapper: Gestionnaire de listesListNodeValue: Représente une valeurIValueManager: Interface du gestionnaire
Tables
ListNames: Définition des listesListValues: Valeurs des listesLabels: Localisations