Dokos offre plusieurs outils pour personnaliser les champs des types de documents (DocTypes) afin d'adapter l'interface à vos besoins métiers. Ces personnalisations peuvent être effectuées via l'interface utilisateur ou directement dans le code pour les développeurs et administrateurs.
Client).Exemple — Maison Verte SARL Maison Verte SARL souhaite restreindre les choix de Fournisseur dans les Bons de commande aux seuls fournisseurs actifs. L'administrateur configure un filtre de lien pour n'afficher que les fournisseurs dont le statut est "Actif".
Les filtres de lien permettent de restreindre les valeurs disponibles dans un champ de type Lien en fonction de critères spécifiques. Par exemple, vous pouvez limiter les choix de Client aux seuls clients d'une certaine région ou d'un certain groupe.
status).=, in, !=)."Actif", ["Actif", "En attente"])."and", "or").[
["Supplier", "status", "=", "Actif"]
]
Bon à savoir :
- Les filtres de lien sont appliqués côté serveur pour garantir la cohérence des données.
- Vous pouvez combiner plusieurs filtres avec des conditions
"and"ou"or".- Les filtres de lien sont également disponibles sur les champs de type Lien dans les Custom Fields, Property Setters et Customize Form.
Validation des filtres de lien
Depuis la version 16.0.0, Dokos valide automatiquement le format et la structure des filtres de lien pour garantir leur bon fonctionnement. Voici les règles appliquées :
"and" ou "or")[
["Supplier", "status", "=", "Actif", "and"],
["Supplier", "country", "=", "France"]
]
[["Supplier", "status", "="]] → Rejeté.[["Supplier", "status", "=", "Actif"] → Rejeté.[["Supplier", "status", "=", "Actif", "xor"]] → Rejeté.En cas d'erreur, un message clair s'affiche pour vous aider à corriger le filtre.
Les filtres de lien peuvent également être définis directement dans le fichier JSON du DocType ou via un script Python. Voici un exemple pour un champ supplier dans un DocType Purchase Order :
{
"fieldname": "supplier",
"fieldtype": "Link",
"label": "Fournisseur",
"options": "Supplier",
"link_filters": [
["Supplier", "status", "=", "Actif"]
]
}
Depuis la version 16.0.0, Dokos applique une validation stricte des filtres de lien pour garantir leur conformité au format attendu. Cette validation est appliquée lors de :
En cas de filtre invalide, une erreur est levée et les modifications ne sont pas enregistrées. Voici les cas couverts par la validation :
| Cas | Exemple | Résultat |
|---|---|---|
| Filtre incomplet | [["Supplier", "status", "="]] | ❌ Rejeté |
| JSON invalide | [["Supplier", "status", "=", "Actif"] | ❌ Rejeté |
| Condition invalide | [["Supplier", "status", "=", "Actif", "xor"]] | ❌ Rejeté |
| Format valide | [["Supplier", "status", "=", "Actif"]] | ✅ Accepté |
Exemple de script Python pour valider un filtre de lien
from frappe.core.doctype.doctype.doctype import validate_link_filters
link_filters = [
["Supplier", "status", "=", "Actif"]
]
try:
validate_link_filters(link_filters)
print("Filtre valide !")
except Exception as e:
print(f"Erreur : {e}")
Cas d'usage — Bureau Moderne Bureau Moderne gère plusieurs entrepôts. Pour simplifier la saisie des bons de commande, l'administrateur configure un filtre de lien sur le champ Article pour n'afficher que les articles disponibles dans l'entrepôt sélectionné.
Configuration :
[
["Item", "warehouse", "=", "doc.warehouse"]
]
Cas d'usage — Maison Verte SARL Maison Verte SARL souhaite restreindre les choix de Client dans les Factures de vente aux seuls clients du groupe "Particuliers".
Configuration :
[
["Customer", "customer_group", "=", "Particuliers"]
]
Cas d'usage — Dupont Conseil Dupont Conseil souhaite afficher uniquement les Fournisseurs actifs et basés en France dans les Bons de commande.
Configuration :
[
["Supplier", "status", "=", "Actif", "and"],
["Supplier", "country", "=", "France"]
]