DocType Settings Map
DocType Settings Map
Un DocType Settings Map affiche des champs de types de documents Single (par exemple Paramètres de vente ou Paramètres de stock) dans l'onglet Général de la boîte de dialogue des paramètres d'un type de document. L'utilisateur modifie ces paramètres sans ouvrir chaque formulaire de paramètres.
Prérequis
- Le rôle System Manager. C'est le seul rôle qui a les permissions sur ce type de document.
- Pour une carte standard (livrée avec une application) : le mode développeur activé.
Champs
DocType Settings Map :
| Libellé (fr) | Nom du champ | Type | Description |
|---|---|---|---|
| S'applique au DocType | applies_to_doctype | Link (DocType) | Type de document qui affiche les paramètres. Obligatoire. |
| Est un formulaire standard | is_standard | Check | Carte livrée avec une application. Modifiable seulement en mode développeur. |
| Module | module | Link (Module Def) | Module de la carte standard. Rempli avec le module du type de document. |
| Est Active | is_active | Check | La carte utilisée pour ce type de document. |
| Mappages | mappings | Table (DocType Settings Map Item) | Une ligne par champ à afficher. |
DocType Settings Map Item (lignes de Mappages) :
| Libellé (fr) | Nom du champ | Type | Description |
|---|---|---|---|
| DocType des paramètres | settings_doctype | Link (DocType) | Type de document Single source. Le sélecteur ne propose que les types Single. Obligatoire. |
| Champ de paramétrage | setting_field | Autocomplete | Nom du champ dans le type Single. La liste propose les champs qui ont une valeur (pas les sauts de section, boutons…). Obligatoire. |
Le champ garde son libellé, son type, sa description et sa valeur d'origine. Il n'y a pas de renommage.
Nom et unicité
| Type de carte | Nom du document | Règle |
|---|---|---|
Personnalisée (is_standard décoché) | Le nom du type de document, par exemple Sales Invoice | Une seule carte personnalisée par type de document |
Standard (is_standard coché) | <type de document> - <module>, par exemple Sales Invoice - Accounts | Une seule carte standard par module et par type de document |
Une seule carte est active par type de document :
- Activer une carte désactive les autres cartes du même type de document. Une carte personnalisée active remplace donc la carte standard.
- Désactiver la seule carte active réactive une autre carte, de préférence la carte standard.
- Supprimer la carte active réactive une autre carte, de préférence la carte standard.
Créer une carte personnalisée
- Ouvrez la liste Carte des paramètres du DocType (
DocType Settings Map) depuis la barre de recherche. - Cliquez sur Créer un·e Carte des paramètres du DocType.
- Dans S'applique au DocType, sélectionnez le type de document, par exemple Facture de vente (
Sales Invoice). - Laissez Est un formulaire standard décoché.
- Cochez Est Active.
- Dans Mappages, ajoutez une ligne par paramètre :
- DocType des paramètres : par exemple Paramètres de vente (
Selling Settings). - Champ de paramétrage : par exemple
so_required.
- DocType des paramètres : par exemple Paramètres de vente (
- Enregistrez.
Exemple
ERPNext livre une carte standard pour Facture de vente (erpnext/accounts/doctype_settings_map/sales_invoice.json). En voici un extrait :
| DocType des paramètres | Champ de paramétrage |
|---|---|
| Selling Settings | maintain_same_sales_rate |
| Selling Settings | dn_required |
| Selling Settings | so_required |
| Stock Settings | allow_to_make_quality_inspection_after_purchase_or_delivery |
Livrer une carte standard avec une application
En mode développeur, l'enregistrement d'une carte standard écrit le fichier <module>/doctype_settings_map/<type_de_document>.json dans l'application du module. bench migrate importe ces fichiers (frappe/model/sync.py). Supprimer une carte standard en mode développeur supprime aussi son fichier.
Les cartes personnalisées restent dans la base du site. Elles ne sont pas exportées.
Affichage et permissions
L'onglet Général lit la carte active par frappe.desk.doctype_settings.settings_map.get_settings_map(doctype). has_settings_map(doctype) indique si l'onglet doit être affiché.
- L'utilisateur doit avoir la lecture sur le type de document cible.
- Un type de document source qui n'est pas Single, ou que l'utilisateur ne peut pas lire, est ignoré.
- Un champ dont le niveau de permission (
permlevel) n'est pas lisible par l'utilisateur est ignoré. - Un champ est modifiable seulement avec l'écriture sur le document et sur son niveau de permission. L'enregistrement passe par
frappe.client.set_value, qui contrôle de nouveau les permissions.
Dépannage
| Symptôme | Cause probable |
|---|---|
| L'onglet Général n'apparaît pas | Aucune carte active pour ce type de document, ou pas de lecture sur ce type de document |
| Un champ n'apparaît pas | Le champ n'a pas de valeur (saut de section, bouton…), ou l'utilisateur ne peut pas lire son niveau de permission |
| Un champ est en lecture seule | L'utilisateur n'a pas l'écriture sur le type Single ou sur le niveau de permission du champ |
| « Standard DocType Settings Map can only be changed in Developer Mode. » | Vous modifiez une carte standard hors mode développeur. Créez une carte personnalisée active à la place |
| « A custom settings map already exists for {0}. » | Une carte personnalisée existe déjà pour ce type de document. Modifiez-la |