---
title: "Utilisation"
weight: 30
description: "Fonctionnement au quotidien : normalisation automatique, dictionnaires dans les formulaires et exemples concrets."
---

# Utilisation

## Normalisation automatique

Lorsque la normalisation automatique est activée dans la [configuration](/capnormalize/configuration), CapNormalize intercepte chaque création et chaque modification de fiche tiers ou contact via un déclencheur Dolibarr. Les champs configurés sont normalisés immédiatement après la sauvegarde, de manière transparente pour l'utilisateur.

Le processus est le suivant :

1. L'utilisateur crée ou modifie une fiche tiers ou contact et clique sur **Enregistrer**
2. Dolibarr sauvegarde les données saisies en base
3. Le déclencheur de CapNormalize s'exécute automatiquement
4. Chaque champ configuré est relu, normalisé selon la fonction choisie, puis mis à jour en base
5. L'utilisateur voit la fiche avec les données normalisées

La normalisation ne déclenche pas de boucle : la mise à jour en base est effectuée par requête SQL directe, sans rappeler le mécanisme de modification de Dolibarr.

### Exemples concrets

Voici ce qui se passe concrètement lorsqu'un utilisateur saisit des données dans une fiche tiers :

| Champ | Saisie utilisateur | Résultat après sauvegarde |
|-------|-------------------|--------------------------|
| Nom de la société | dupont sas | DUPONT SAS |
| Nom commercial | la belle histoire | La Belle Histoire |
| Email | Jean.Dupont@Example.COM | jean.dupont@example.com |
| Téléphone | 01 23 45 67 89 | +33123456789 |
| Ville | saint-étienne | Saint-Étienne |
| Code postal | 75 001 | 75001 |
| URL | www.example.com | https://www.example.com |
| SIREN | 443 061 841 | 443061841 |

Pour un contact :

| Champ | Saisie utilisateur | Résultat après sauvegarde |
|-------|-------------------|--------------------------|
| Nom | dupont | DUPONT |
| Prénom | jean-pierre | Jean-Pierre |
| Poste | directeur commercial | Directeur Commercial |
| Mobile | 06 12 34 56 78 | +33612345678 |

Les particules sont gérées intelligemment : `marie de la fontaine` devient `Marie de la Fontaine`.

## Champs complémentaires (extrafields)

Les champs complémentaires de type texte (`varchar`, `text`) ajoutés aux fiches tiers et contacts sont pris en charge exactement comme les champs natifs. Si vous avez configuré une fonction de normalisation pour un extrafield dans la [configuration](/capnormalize/configuration), le déclencheur l'appliquera automatiquement à chaque création ou modification de fiche.

## Dictionnaires dans les formulaires

Lorsqu'un champ est associé à un [dictionnaire](/capnormalize/dictionnaires), le champ texte libre est automatiquement remplacé par une liste déroulante dans les formulaires de création et de modification des fiches tiers et contacts. Ce remplacement est effectué par un hook JavaScript qui s'exécute au chargement de la page.

![Champ Poste affiché sous forme de liste déroulante sur une fiche contact](screenshots/champ-dictionnaire-formulaire.webp)

L'utilisateur ne peut saisir que des valeurs présentes dans le dictionnaire. Si une valeur existante ne correspond à aucune entrée du dictionnaire, elle est affichée en rouge pour signaler la non-conformité.

### Ajout rapide

Si l'option est activée et que l'utilisateur dispose de la permission **Ajouter des entrées aux dictionnaires**, une option **"-- Autre (saisie libre) --"** apparaît en fin de liste. En la sélectionnant, une fenêtre permet d'ajouter une nouvelle entrée sans quitter le formulaire.

![Liste déroulante avec l'option Autre pour ajouter une nouvelle entrée au dictionnaire](screenshots/dictionnaire-ajout-rapide.webp)

## Données existantes

La normalisation automatique ne s'applique qu'aux fiches créées ou modifiées après l'activation du module. Pour normaliser les données déjà présentes en base, utilisez l'outil de [nettoyage par lot](/capnormalize/nettoyage) qui permet d'appliquer les règles configurées à l'ensemble des fiches existantes, avec aperçu avant/après et sélection individuelle des enregistrements à traiter.

Pour les champs associés à un dictionnaire, utilisez l'outil de [migration](/capnormalize/migration) qui permet de faire correspondre les valeurs existantes aux entrées du dictionnaire.
