Aller au contenu principal

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 :

  1. Ouvrir ParamètresListes de valeurs
  2. Cliquer sur Nouveau (Ctrl+N)
  3. Saisir le nom de la liste
  4. 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 listes
  • ListNodeValue : Représente une valeur
  • IValueManager : Interface du gestionnaire

Tables

  • ListNames : Définition des listes
  • ListValues : Valeurs des listes
  • Labels : Localisations

Documentation associée