Guide complet des filtres SenSaaS
Ce guide vous explique comment configurer et utiliser les filtres dans l'application SenSaaS pour optimiser les performances et contrôler l'accès aux données.
Table des matières
- Introduction aux filtres
- Filtres de performance
- Filtres sur les articles
- Filtres pour les représentants
- Filtres de tarification
- Filtres d'accès équipe
- Filtres d'accès représentant
- Tables de référence
1. Introduction aux filtres
Les filtres dans SenSaaS permettent de limiter et contrôler l'accès aux données selon différents critères. Ils sont essentiels pour optimiser les performances et gérer les droits d'accès.
1.1 Niveaux d'application
Les filtres peuvent être appliqués à trois niveaux différents, par ordre de priorité :
Niveau 1 : Société
Filtres globaux appliqués à l'ensemble de l'organisation. Ces filtres définissent les règles de base pour tous les utilisateurs.
Niveau 2 : Profil utilisateur
Filtres appliqués à un groupe d'utilisateurs partageant le même profil. Ces filtres héritent des filtres société et peuvent les compléter.
Niveau 3 : Utilisateur
Filtres spécifiques à un utilisateur individuel. C'est le niveau le plus granulaire, permettant des restrictions personnalisées.
Hiérarchie des filtres
Les filtres s'appliquent de manière cumulative : les filtres utilisateur complètent les filtres de profil, qui eux-mêmes complètent les filtres société.
1.2 Cas d'usage des filtres
Les filtres sont utilisés pour :
- Optimiser les performances : Limiter le volume de données chargées
- Contrôler l'accès : Restreindre la visibilité des données selon les rôles
- Personnaliser les vues : Adapter l'affichage selon les besoins métier
- Protéger les données sensibles : Masquer les informations confidentielles (prix d'achat, marges, etc.)
1.3 Syntaxe des filtres
Les filtres utilisent la syntaxe SQL standard appliquée sur les tables de la base de données.
Structure générale :
Exemples d'opérateurs :
=: Égalité>,<,>=,<=: ComparaisonsIN (...): Liste de valeursLIKE: Correspondance de motif- Fonctions SQL :
DATEADD(),GETDATE(), etc.
Attention
Les filtres doivent être testés avant leur mise en production pour éviter de bloquer l'accès aux données nécessaires.
2. Filtres de performance
Sur des bases de données à volume important et avec un historique conséquent, il est crucial de limiter le volume de données pour maintenir de bonnes performances.
2.1 Problématique
Risque de performance
Sans filtres appropriés, l'application peut remonter 80% de données inutiles à l'utilisation quotidienne, ce qui impacte significativement les performances.
2.2 Filtre sur les dates de documents
2.2.1 Limiter l'historique des documents
Pour n'afficher que les documents récents, appliquez un filtre sur la table F_DOCENTETE :
Table : F_DOCENTETE
Champ : DO_Date
Valeur :
Résultat
Ce filtre limite l'affichage aux documents des deux dernières années uniquement.
2.2.2 Filtre complémentaire sur les lignes
Il est recommandé d'appliquer le même filtre sur les lignes de documents pour une cohérence complète.
Table : F_DOCLIGNE
Champ : DL_Date (ou champ date approprié)
Valeur :
2.3 Exemples de périodes
Vous pouvez adapter la période selon vos besoins :
Derniers 6 mois
Dernière année
Derniers 3 ans
Année en cours uniquement
2.4 Avantages des filtres temporels
- Réduction du volume de données : Seules les données pertinentes sont chargées
- Amélioration des temps de réponse : Les requêtes sont plus rapides
- Simplification de l'interface : L'utilisateur se concentre sur les données actuelles
- Réduction de la charge serveur : Moins de ressources consommées
Personnalisation
La période à conserver dépend de vos obligations légales et de vos besoins métier. Consultez votre service comptable pour déterminer la durée appropriée.
3. Filtres sur les articles
Les filtres sur les articles permettent de limiter l'affichage aux produits réellement utiles pour l'utilisateur, en fonction de critères comme les familles, catalogues, ou autres caractéristiques.
3.1 Filtres par famille d'articles
3.1.1 Filtre sur une famille unique
Table : F_ARTICLE
Champ : FA_CodeFamille
Valeur :
3.1.2 Filtre sur plusieurs familles
Table : F_ARTICLE
Champ : FA_CodeFamille
Valeur :
Exemple
Pour afficher uniquement les familles "ELEC", "PLOMB" et "CHAUF" :
3.2 Filtres par référence article
3.2.1 Filtre par préfixe de référence
Table : F_ARTICLE
Champ : AR_Ref
Valeur :
Motif LIKE
Le caractère % représente n'importe quelle séquence de caractères. Ce filtre affiche tous les articles dont la référence commence par "ARGENT".
3.2.2 Autres exemples de motifs
Articles contenant un mot :
Articles se terminant par un suffixe :
3.3 Filtres par catalogue
3.3.1 Filtre sur un catalogue unique
Table : F_ARTICLE
Champ : CL_No1
Valeur :
Identifiant de catalogue
La valeur 15 correspond à l'identifiant du catalogue dans la table F_CATALOGUE (champ CL_No).
3.3.2 Filtre sur plusieurs catalogues
Table : F_ARTICLE
Champ : CL_No1
Valeur :
3.4 Autres critères de filtrage
3.4.1 Filtre sur les informations libres
Vous pouvez également filtrer sur les champs d'informations libres si vous les utilisez pour qualifier vos articles.
Table : F_ARTICLE
Champ : AR_InfoLibre01 (ou autre champ info libre)
Valeur : Selon votre utilisation
3.4.2 Filtre sur la publication web
Pour limiter aux articles publiables sur un site marchand :
Table : F_ARTICLE
Champ : Champ de publication (selon configuration)
Valeur : =1 (ou valeur correspondant à "publié")
3.5 Combinaison de filtres
Il est possible de combiner plusieurs filtres sur les articles pour affiner la sélection. Les filtres s'ajoutent avec un ET logique.
Impact sur les performances
Plus vous ajoutez de filtres, plus le nombre d'articles affichés diminue. Trouvez le bon équilibre entre restriction et utilité.
4. Filtres pour les représentants
Les filtres par représentant permettent de limiter l'affichage des documents et des tiers aux collaborateurs assignés.
4.1 Filtre sur les documents
4.1.1 Limiter aux documents de représentants spécifiques
Table : F_DOCENTETE
Champ : CO_No
Valeur :
Identifiants de représentants
Les valeurs 11 et 9 correspondent aux identifiants des collaborateurs dans la table F_COLLABORATEUR (champ CO_No).
4.1.2 Filtre pour un représentant unique
Table : F_DOCENTETE
Champ : CO_No
Valeur :
Cas d'usage
Ce filtre est typiquement appliqué au niveau utilisateur pour qu'un commercial ne voie que ses propres documents.
4.2 Filtre sur les tiers (clients/fournisseurs)
4.2.1 Limiter aux tiers d'un représentant
Table : F_COMPTET
Champ : CO_No
Valeur :
Cohérence
Pour une expérience utilisateur cohérente, appliquez le même filtre de représentant sur les documents (F_DOCENTETE) et sur les tiers (F_COMPTET).
4.3 Identification des numéros de représentants
Pour connaître l'identifiant d'un collaborateur :
- Ouvrez la table
F_COLLABORATEURdans votre base de données - Recherchez le collaborateur par son nom
- Notez la valeur du champ
CO_No
Vous pouvez également utiliser cette requête SQL :
Attention aux doublons
Si vous appliquez des filtres représentant sur plusieurs niveaux (profil + utilisateur), assurez-vous qu'ils ne soient pas contradictoires.
5. Filtres de tarification
Les filtres de tarification permettent de masquer les informations sensibles comme les prix d'achat, les marges, et les remises selon les droits de l'utilisateur.
5.1 Filtres sur les prix d'achat (PA)
Ces filtres masquent les informations de coût d'achat aux utilisateurs qui ne doivent pas y avoir accès.
5.1.1 Filtre sur les lignes de documents
Table : F_DOCLIGNE
Champ : DL_PrixRU
Description : Prix de revient unitaire sur les lignes de document
5.1.2 Filtre sur le stock
Table : F_ARTSTOCK
Champ : AS_MontSto
Description : Montant du stock (valorisation)
5.1.3 Filtres sur la fiche article
Les champs suivants de la table F_ARTICLE contiennent des informations de prix d'achat :
Champ : AR_PrixAch
Description : Prix d'achat de l'article
Champ : AR_CoûtS
Description : Coût standard de l'article
Champ : AR_PrixAchNouv
Description : Nouveau prix d'achat (lors de mises à jour tarifaires)
5.1.4 Filtre sur le CMUP
Table : F_DOCLIGNE
Champ : DL_CMUP
Description : Coût Moyen Unitaire Pondéré
Information sensible
Les prix d'achat et marges sont des informations stratégiques. Appliquez ces filtres aux profils qui ne doivent pas accéder à ces données (commerciaux terrain, consultants web, etc.).
5.2 Filtres sur les prix de vente et remises
Ces filtres permettent de masquer ou limiter la visibilité des prix de vente et des remises appliquées.
5.2.1 Filtre sur le prix unitaire
Table : F_DOCLIGNE
Champ : DL_PrixUnitaire
Description : Prix unitaire de vente
5.2.2 Filtres sur les remises
Table : F_DOCLIGNE
Champ : DL_Remise01REM_Valeur
Description : Valeur de la remise 1
Champ : DL_Remise02REM_Valeur
Description : Valeur de la remise 2
Champ : DL_Remise03REM_Valeur
Description : Valeur de la remise 3
Cascade de remises
Les trois niveaux de remises permettent d'appliquer des réductions successives. Vous pouvez filtrer sélectivement certains niveaux selon les droits de l'utilisateur.
5.3 Cas d'usage typiques
5.3.1 Profil commercial terrain
- ✅ Accès aux prix de vente
- ✅ Accès aux remises niveau 1 et 2
- ❌ Pas d'accès aux prix d'achat
- ❌ Pas d'accès au CMUP
- ❌ Pas d'accès aux remises exceptionnelles (niveau 3)
5.3.2 Profil responsable commercial
- ✅ Accès à tous les prix de vente
- ✅ Accès à toutes les remises
- ✅ Accès aux prix d'achat
- ✅ Accès au CMUP
5.3.3 Profil consultation web (B2B)
- ✅ Accès aux prix de vente publics
- ❌ Pas d'accès aux remises
- ❌ Pas d'accès aux prix d'achat
Combinaison avec d'autres filtres
Ces filtres de tarification sont souvent combinés avec des filtres de représentants ou d'équipe pour créer des profils d'accès complets.
6. Filtres d'accès équipe
Ces filtres permettent à un responsable d'équipe (chef des ventes) d'accéder aux données de son équipe tout en conservant un accès complet aux achats.
6.1 Principe de fonctionnement
Le filtre permet à un chef d'équipe de :
- ✅ Voir tous les achats (domaine 1)
- ✅ Voir ses propres ventes (domaine 0)
- ✅ Voir les ventes de son équipe (domaine 0)
- ❌ Ne pas voir les ventes des autres équipes
6.2 Filtre sur les documents
6.2.1 Configuration
Table : F_DOCENTETE
Champ : CO_No
Valeur :
IN(
SELECT C.CO_No
FROM F_DOCENTETE E
LEFT JOIN F_COLLABORATEUR C ON C.CO_No = E.CO_No
WHERE (E.DO_Domaine = 0
AND (C.CO_NoChefVentes = 10 OR C.CO_No = 10)
AND C.CO_Vendeur = 1)
OR (E.DO_Domaine = 1)
GROUP BY C.CO_No
UNION
SELECT COALESCE(E.CO_No, NULL)
FROM F_DOCENTETE E
WHERE E.DO_Domaine = 1
)
6.2.2 Paramètres à adapter
Personnalisation requise
Remplacez la valeur 10 par l'identifiant du chef d'équipe concerné (valeur CO_No dans la table F_COLLABORATEUR).
6.2.3 Détail du filtre
Le filtre se compose de deux parties :
Partie 1 : Ventes de l'équipe
DO_Domaine = 0: Documents de venteCO_NoChefVentes = 10: Membres de l'équipe du chef n°10CO_No = 10: Le chef lui-mêmeCO_Vendeur = 1: Uniquement les vendeurs actifs
Partie 2 : Tous les achats
DO_Domaine = 1: Tous les documents d'achat
6.3 Filtre sur les tiers
6.3.1 Configuration
Table : F_COMPTET
Champ : CO_No
Valeur :
IN (
SELECT CT.CO_No
FROM F_COMPTET CT
LEFT JOIN F_COLLABORATEUR C ON C.CO_No = CT.CO_No
WHERE (CT.CT_Type = 0
AND (C.CO_NoChefVentes = 10 OR C.CO_No = 10))
OR (CT.CT_Type = 1)
)
6.3.2 Paramètres à adapter
Personnalisation requise
Remplacez la valeur 10 par l'identifiant du chef d'équipe concerné.
6.3.3 Détail du filtre
Partie 1 : Clients de l'équipe
CT_Type = 0: Comptes clients- Les clients gérés par le chef ou son équipe
Partie 2 : Tous les fournisseurs
CT_Type = 1: Tous les comptes fournisseurs
6.4 Cas d'usage
6.4.1 Chef des ventes régional
Un responsable régional gère une équipe de 5 commerciaux. Avec ce filtre :
- Il voit ses propres devis et commandes
- Il voit les devis et commandes de ses 5 commerciaux
- Il voit tous les bons de commande fournisseurs
- Il ne voit pas les ventes des autres régions
6.4.2 Directeur commercial
Un directeur commercial supervise plusieurs chefs d'équipe. Ce filtre peut être adapté pour inclure plusieurs sous-équipes en modifiant la condition sur CO_NoChefVentes.
Hiérarchie multi-niveaux
Pour gérer plusieurs niveaux hiérarchiques, vous pouvez créer des filtres en cascade ou utiliser des requêtes récursives plus complexes.
7. Filtres d'accès représentant
Ces filtres permettent à un représentant commercial d'accéder uniquement à ses propres données de vente tout en conservant un accès complet aux achats.
7.1 Principe de fonctionnement
Le filtre permet à un représentant de :
- ✅ Voir tous les achats (domaine 1)
- ✅ Voir uniquement ses propres ventes (domaine 0)
- ❌ Ne pas voir les ventes des autres représentants
7.2 Filtre sur les documents
7.2.1 Configuration
Table : F_DOCENTETE
Champ : CO_No
Valeur :
IN (
SELECT C.CO_No
FROM F_DOCENTETE E
WHERE (E.DO_Domaine = 0 AND E.CO_No = 51)
OR (E.DO_Domaine = 1)
GROUP BY E.CO_No
UNION
SELECT COALESCE(E.CO_No, NULL)
FROM F_DOCENTETE E
WHERE E.DO_Domaine = 1
)
7.2.2 Paramètres à adapter
Personnalisation requise
Remplacez la valeur 51 par l'identifiant du représentant concerné (valeur CO_No dans la table F_COLLABORATEUR).
7.2.3 Détail du filtre
Le filtre se compose de deux parties :
Partie 1 : Ventes personnelles uniquement
DO_Domaine = 0: Documents de vente (devis, commandes, factures)E.CO_No = 51: Uniquement les documents du représentant n°51
Partie 2 : Tous les achats
DO_Domaine = 1: Tous les documents d'achat (bons de commande, factures fournisseurs)
7.3 Filtre sur les tiers
7.3.1 Configuration
Table : F_COMPTET
Champ : CO_No
Valeur :
IN (
SELECT CT.CO_No
FROM F_COMPTET CT
WHERE (CT.CT_Type = 0 AND CT.CO_No = 51)
OR (CT.CT_Type = 1)
)
7.3.2 Paramètres à adapter
Personnalisation requise
Remplacez la valeur 51 par l'identifiant du représentant concerné.
7.3.3 Détail du filtre
Partie 1 : Clients personnels uniquement
CT_Type = 0: Comptes clientsCT.CO_No = 51: Uniquement les clients du représentant n°51
Partie 2 : Tous les fournisseurs
CT_Type = 1: Tous les comptes fournisseurs (pour consultation des tarifs fournisseurs)
7.4 Cas d'usage
7.4.1 Commercial terrain
Un commercial itinérant doit voir uniquement son portefeuille client. Avec ce filtre :
- ✅ Il accède à ses devis, commandes et factures clients
- ✅ Il consulte ses clients et prospects
- ✅ Il consulte les tarifs fournisseurs
- ❌ Il ne voit pas les clients des autres commerciaux
- ❌ Il ne voit pas les ventes de ses collègues
7.4.2 Commercial sédentaire
Un chargé de clientèle au service commercial voit uniquement les clients qui lui sont affectés.
7.4.3 Technico-commercial
Un technico-commercial peut consulter les achats (pour connaître les coûts et disponibilités) tout en étant limité à son propre portefeuille client.
7.5 Application pratique
7.5.1 Au niveau utilisateur
Ce filtre s'applique généralement au niveau utilisateur individuel pour garantir l'étanchéité entre les portefeuilles commerciaux.
7.5.2 Au niveau profil
Il peut aussi s'appliquer au niveau profil si tous les utilisateurs du profil ne doivent voir que leurs propres données (avec une valeur dynamique basée sur l'utilisateur connecté).
7.6 Comparaison avec le filtre équipe
| Aspect | Filtre Représentant | Filtre Équipe |
|---|---|---|
| Portée ventes | Uniquement ses ventes | Ses ventes + celles de son équipe |
| Portée achats | Tous les achats | Tous les achats |
| Profil type | Commercial | Chef des ventes |
| Hiérarchie | Niveau individuel | Niveau management |
Évolution de droits
Lorsqu'un commercial devient chef d'équipe, pensez à modifier son filtre pour passer du filtre représentant au filtre équipe.
8. Tables de référence
Cette section répertorie les principales tables de la base de données utilisées dans les filtres.
8.1 F_DOCENTETE
Description : En-têtes des documents (devis, commandes, factures, etc.)
Champs clés :
- DO_Date : Date du document
- DO_Domaine : Type de document (0 = vente, 1 = achat)
- CO_No : Identifiant du collaborateur affecté au document
8.2 F_DOCLIGNE
Description : Lignes de documents
Champs clés :
- DL_PrixUnitaire : Prix unitaire de vente
- DL_PrixRU : Prix de revient unitaire
- DL_CMUP : Coût Moyen Unitaire Pondéré
- DL_Remise01REM_Valeur : Valeur de la remise 1
- DL_Remise02REM_Valeur : Valeur de la remise 2
- DL_Remise03REM_Valeur : Valeur de la remise 3
8.3 F_ARTICLE
Description : Fiches articles
Champs clés :
- AR_Ref : Référence de l'article
- FA_CodeFamille : Code de la famille d'articles
- CL_No1 : Identifiant du catalogue
- AR_PrixAch : Prix d'achat de l'article
- AR_CoûtS : Coût standard de l'article
- AR_PrixAchNouv : Nouveau prix d'achat
- AR_InfoLibre01 : Champ d'information libre 1
8.4 F_COMPTET
Description : Tiers (clients et fournisseurs)
Champs clés :
- CT_Type : Type de compte (0 = client, 1 = fournisseur)
- CO_No : Identifiant du commercial affecté au tiers
8.5 F_COLLABORATEUR
Description : Collaborateurs et représentants
Champs clés :
- CO_No : Identifiant unique du collaborateur
- CO_Nom : Nom du collaborateur
- CO_Prenom : Prénom du collaborateur
- CO_NoChefVentes : Identifiant du responsable hiérarchique
- CO_Vendeur : Indicateur vendeur actif (1 = oui, 0 = non)
8.6 F_ARTSTOCK
Description : Stocks articles
Champs clés :
- AS_MontSto : Montant du stock (valorisation)
8.7 F_CATALOGUE
Description : Catalogues produits
Champs clés :
- CL_No : Identifiant du catalogue
Bonnes pratiques
Avant de créer un filtre
- Identifiez le besoin : Performance, sécurité ou accès ?
- Déterminez le niveau : Société, Profil ou Utilisateur ?
- Testez en environnement de développement avant la production
- Documentez vos filtres pour faciliter la maintenance
Maintenance des filtres
- Revoyez régulièrement les filtres appliqués
- Vérifiez que les identifiants (CO_No) sont toujours valides
- Adaptez les filtres lors des changements organisationnels
- Formez les administrateurs aux modifications de filtres
Sécurité
Attention
Les filtres sont un élément de sécurité important. Ne partagez pas les identifiants de collaborateurs et testez minutieusement avant de déployer.
Support
Besoin d'aide ?
Si vous rencontrez des difficultés lors de la configuration des filtres, n'hésitez pas à contacter le support technique SenSaaS.