Aller au contenu

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

  1. Introduction aux filtres
  2. Filtres de performance
  3. Filtres sur les articles
  4. Filtres pour les représentants
  5. Filtres de tarification
  6. Filtres d'accès équipe
  7. Filtres d'accès représentant
  8. 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 :

NomTable.NomChamp <opérateur> <valeur>

Exemples d'opérateurs :

  • = : Égalité
  • >, <, >=, <= : Comparaisons
  • IN (...) : Liste de valeurs
  • LIKE : 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 :

>DATEADD(YEAR, -2, GETDATE())

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 :

>DATEADD(YEAR, -2, GETDATE())

2.3 Exemples de périodes

Vous pouvez adapter la période selon vos besoins :

Derniers 6 mois

>DATEADD(MONTH, -6, GETDATE())

Dernière année

>DATEADD(YEAR, -1, GETDATE())

Derniers 3 ans

>DATEADD(YEAR, -3, GETDATE())

Année en cours uniquement

>= CAST(YEAR(GETDATE()) AS CHAR(4)) + '-01-01'

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 :

='CODE_FAMILLE'

Exemple

Pour limiter aux articles de la famille "ELEC" :

='ELEC'

3.1.2 Filtre sur plusieurs familles

Table : F_ARTICLE
Champ : FA_CodeFamille
Valeur :

IN ('CODE_FAMILLE1', 'CODE_FAMILLE2', 'CODE_FAMILLE3')

Exemple

Pour afficher uniquement les familles "ELEC", "PLOMB" et "CHAUF" :

IN ('ELEC', 'PLOMB', '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 :

LIKE 'ARGENT%'

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 :

LIKE '%INOX%'

Articles se terminant par un suffixe :

LIKE '%_V2'

3.3 Filtres par catalogue

3.3.1 Filtre sur un catalogue unique

Table : F_ARTICLE
Champ : CL_No1
Valeur :

=15

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 :

IN (15, 18, 5)

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 :

IN (11, 9)

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 :

=51

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 :

=51

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 :

  1. Ouvrez la table F_COLLABORATEUR dans votre base de données
  2. Recherchez le collaborateur par son nom
  3. Notez la valeur du champ CO_No

Vous pouvez également utiliser cette requête SQL :

SELECT CO_No, CO_Nom, CO_Prenom 
FROM F_COLLABORATEUR 
WHERE CO_Vendeur = 1
ORDER BY CO_Nom

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

E.DO_Domaine = 0 
AND (C.CO_NoChefVentes = 10 OR C.CO_No = 10) 
AND C.CO_Vendeur = 1

  • DO_Domaine = 0 : Documents de vente
  • CO_NoChefVentes = 10 : Membres de l'équipe du chef n°10
  • CO_No = 10 : Le chef lui-même
  • CO_Vendeur = 1 : Uniquement les vendeurs actifs

Partie 2 : Tous les achats

E.DO_Domaine = 1

  • 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.CT_Type = 0 
AND (C.CO_NoChefVentes = 10 OR C.CO_No = 10)

  • CT_Type = 0 : Comptes clients
  • Les clients gérés par le chef ou son équipe

Partie 2 : Tous les fournisseurs

CT.CT_Type = 1

  • 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

E.DO_Domaine = 0 AND E.CO_No = 51

  • 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

E.DO_Domaine = 1

  • 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.CT_Type = 0 AND CT.CO_No = 51

  • CT_Type = 0 : Comptes clients
  • CT.CO_No = 51 : Uniquement les clients du représentant n°51

Partie 2 : Tous les fournisseurs

CT.CT_Type = 1

  • 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

  1. Identifiez le besoin : Performance, sécurité ou accès ?
  2. Déterminez le niveau : Société, Profil ou Utilisateur ?
  3. Testez en environnement de développement avant la production
  4. 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.