Le mode « multi-entités »

Ce document a pour objectif d'apporter une aide lors de la mise en œuvre du mode multi-entités. Il s’adresse aux consultants expérimentés dans la mise en œuvre d’ACE.

La gestion du multi-entités regroupe les fonctionnalités suivantes :

Voir aussi :

Généralités

Le modèle multi-entités d’ACE permet d’adapter la structure des données et des flux manipulés par l’application à la structure opérationnelle et juridique des sociétés utilisatrices d’ACE.

Présentation

Exemple : supposons qu’un Client soit organisé en groupe contenant :

3 sociétés juridiques : S1, S2, S3

Un service achat commun : ACH

2 entrepôts de stockage partagés : E1, E2

2 sites internet de distribution :

  • @1 appartenant à S1
  • @2 appartenant à S2

Un service de vente par téléphone : TEL appartenant à S3.

Il serait possible dans ACE de modéliser l’organisation ainsi.

Les entités sont organisées en niveaux hiérarchiques. Les liens hiérarchiques sont organisés du haut vers le bas, c'est-à-dire qu’une entité de niveau bas dépend d’une et une seule entité de niveau haut (lien mère/fille). Deux entités d’un même niveau ne sont pas reliées directement entre elles. Si un lien existe entre deux entités de même niveau, c’est par leur dépendance à une même entité de niveau supérieur. Dans notre exemple, les sociétés S1 et S2 sont reliées par le fait qu’elles dépendant toutes les deux du Groupe.

Cette organisation en niveau permet d’organiser les données. C’est à dire qu’il est possible de définir pour chaque groupe d’information de la base de données (articles, tiers, stocks, etc.) à quel niveau il est géré. Ainsi, cela permet de cloisonner ou partager les données.

Exemple : supposons que dans notre Groupe :

Le fichier article soit partagé par toutes les entités.

Le fichier client soit spécifique à chaque société juridique.

Les stocks soient communs à toutes les entités.

Les tarifs ventes soient spécifiques à chaque site de vente.

Les taris achats soient communs à toutes les entités.

Il serait possible dans ACE de modéliser l’organisation ainsi :

  • Le niveau de gestion des stocks et des articles est le 1.
  • Le niveau de gestion des tarifs achats est le 1.
  • Le niveau de gestion des clients est le 2.
  • Le niveau de gestion des tarifs vente est le 3.

Dans l’exemple ci-dessus :

La société S1 n’a accès qu’à sa propre base client. Elle ne voit pas les clients de S2 et S3. Toutes les entités voient les mêmes articles. Le site @1 vend les articles selon son propre tarif. Le site @2 et le service TEL ne peuvent pas voir le tarif de @1 mais disposent de leurs propres tarifs de vente.

Il faut noter que le fichier article étant partagé par toutes les entités, la fiche d’un article n’existe qu’en un seul exemplaire pour tout le groupe :

Quelle que soit l’entité sur laquelle est créé ou modifié un article, c’est dans la base article de niveau 1 qu’est effectuée la création ou la modification des informations.

  • Toutes les entités disposent exactement des mêmes informations sur un même article.
  • Si certaines informations doivent être distinctes pour des entités de niveau bas alors il convient de descendre le niveau de gestion de la base article. L’inconvénient de positionner une donnée de gestion au niveau bas est qu’il faut créer autant de fiches que d’entités qui vont devoir l’utiliser. Dans notre exemple : si un même client travaille avec les trois sociétés alors il convient de créer sa fiche en trois exemplaires : une dans chaque société juridique. Par ailleurs, par exemple, si cela permet de disposer de conditions de règlements distinctes par société juridique, cela contraint également à gérer l’encours par société juridique et non pas au niveau groupe.

Il faut noter qu’une entité mère n’a pas accès aux informations propres aux entités filles.

Les évènements de flux (devis, commande, livraison, réception, facture, etc.) sont systématiquement stockés sur l’entité de saisie. Cela signifie par exemple que si une commande client est saisie sur l’entité de @1 alors la livraison devra être créée sur l’entité @1.

Le modèle multi-entités permet également de définir la structure juridique du Groupe, c'est-à-dire définir comment les différentes comptabilités du Groupe sont alimentées. Pour cela, ACE se base sur les liens entre tiers (les tiers associés aux entités). Par exemple, il est possible de définir que toutes les factures clients établies sur @1 sont déversées sur la comptabilité de S1. Il serait tout autant possible de définir que le Groupe ne gère qu’une seule comptabilité au niveau Groupe ou que chaque site de vente gère sa propre comptabilité.

Choix de l’entité de travail

Dans de nombreux écrans principaux, il vous est possible d’activer le pop-up Choix de l’entité de travail pour changer facilement d’entité sans avoir à vous reconnecter au niveau du menu principal. Une liste déroulante vous propose alors l’ensemble des entités pour lesquelles vous êtes habilité à travailler.

Préambule

La gestion du mode multi-entités apporte de nombreuses fonctionnalités qui couvrent l'ensemble des modules d’ACE. Elle a des incidences sur la structure physique de la base de données.

Toutes les vues associées sont plus complexes en termes de tables utilisées. Il en résulte des conséquences sur les temps des traitements qui utilisent ces vues (majorité des éditions : uniquement pour l'ordre SELECT et certaines recherches). Les mesures effectuées montrent qu'en fonction des requêtes effectuées, on obtient des temps de réponses plus ou moins longs (lors d'accès effectués directement sous SQL ou par des outils de type info-centre). Il est très souvent possible d'optimiser une requête par la création ou la modification d'index mais aucune méthode n’est offerte pour optimiser toutes les requêtes.

Afin de ne pas pénaliser les clients qui n'utilisent pas le mode multi-entités, deux jeux de vues sont livrés. Si vous voulez utiliser ce mode, il faut effectuer les opérations suivantes avant de lancer la création de la base pour une première installation ou de lancer la mise à niveau pour une nouvelle installation : copiez les fichiers ora_genegos_vue_m.sql et ora_genephi_vue_m.sql du répertoire sql_o en ora_genegos_vue.sql etora_genephi_vue.sql.

Exemple sous UNIX :

  • cp sql_o/ora_genegos_vue_m.sql sql_o/ora_genegos_vue.sql
  • cp sql_o/ora_genephi_vue_m.sql sql_o/ora_genephi_vue.sql

Remarque : le mode de gestion multi-sociétés doit être positionné à OUI dans le fichier Generix.ini.

Codification

Dans un contexte multi-entités, s'il est effectivement possible d'avoir un client M. DUPOND référencé 0001 dans une entité A et un autre client M. DURAND référencé également 0001 mais dans une autre entité B, il faut savoir que cette utilisation de la même référence peut être source de confusion dans toutes les fonctions de consolidation.

Pour exemple, si l'utilisateur ne précise pas tous les critères de sélection, le chiffre d’affaires cumulé du client 0001 dans plusieurs entités risque de ne pas refléter la réalité. Il est donc judicieux d'utiliser une codification unique qui permette d'identifier un client ou un produit dans toutes les entités. Le système pourra gérer l'ambiguïté ; pas forcément l'utilisateur.

Glossaire

Entité : élément de la structure opérationnelle (agences, guichets, dépôts, etc.) ou juridique (société, groupe, filiale).

Propriétaire du stock : entité qui possède au sens juridique un article dans un dépôt. Il est unique.

Segment : champ d'une table qui permet de partager celle ci de façon différente. Le segment est obligatoirement une partie de la clé conceptuelle.

Définition des entités

Paramétrage général

Attention !

Quelle que soit la fonction utilisée, il est obligatoire de gérer les tables PEV (paramétrage d’événement) et PARAV (personnalisation des paramètres) sur la société de plus haut niveau. En effet, si vos paramétrages sont différents sur les entités de bas niveau, vous risqueriez de rencontrer des problèmes d’exécution des fonctions interactives et différées.

Il faut positionner dans la fonction GPEV le paramètre MULENT au niveau général :

A1 Type de lien utilisé pour définir la structure opérationnelle (maximum 3 caractères)
A2 Type de lien utilisé pour définir la structure juridique (maximum 3 caractères)
A3 Gestion de la propagation des données (O/N)
N1 Niveau de la hiérarchie qui correspond à la société juridique. Le niveau société juridique est important car il conditionne par exemple le calcul de la position fiscale : au sein d’une même société juridique, tous les événements doivent être valorisés sans TVA. Il doit être défini dans la table des familles de sociétés (Figure 0‑8 : Familles de sociétés.). Dans notre exemple, le niveau société juridique est le niveau 2.

Pour la fonction de duplication d’un événement d’une entité sur une autre, il faut positionner le paramètre DUPENT pour la fonction concernée :

A1 Code fonction dans l’entité destinataire à utiliser
N1

0 : la référence de l’événement généré sera constituée des informations entité origine / achat vente / type d’événement / numéro d’événement. Dans ce cas, l’invalidation de l’événement d’origine sera possible si l’événement généré est supprimé manuellement dans l’entité destinataire.

1 : le libellé complémentaire de l’événement généré sera constitué des informations entité origine / achat vente / type d’événement / numéro d’événement. Dans ce cas, l’invalidation de l’événement d’origine sera impossible.

Pour déterminer la position fiscale d’un événement au sein d’une même société juridique, il faut positionner l’option A2 du paramètre POSFIS :

A1 Position fiscale proposée par défaut dans la fiche tiers
A2 Position fiscale proposée pour les événements de cession

Figure 0‑1 : Paramétrage général

Figure 0‑2 : Paramétrage de la duplication

Figure 0‑3 : Paramétrage de la duplication pour transfert

Figure 0‑4 : Paramétrage pour la position fiscale.

Pour un bon fonctionnement, il faut aussi positionner le paramètre UTIFAM, afin de gérer les familles dans la table FAM. Ce paramètre est nécessaire pour définir des familles de sociétés qui sont différentes des familles de clients et des familles de fournisseurs.

Définition des types de lien

Les types de liens définis dans le paramétrage général doivent être présents dans la table des types de lien (fonction GTTLI). Les fonctionnalités du mode multi-entités se basent sur deux hiérarchies :

  • La hiérarchie opérationnelle qui sera utilisée pour le partage, la propagation des données et l'ensemble des points fonctionnels d’ACE COMMERCE.
  • La hiérarchie juridique qui sera utilisée pour tous les liens entre ACE COMMERCE et ACE FINANCE.

Les deux types de liens peuvent être identiques.

Figure 0‑5 : Types de liens

Ces types de liens figurent dans les données d’installation.

Définition des niveaux hiérarchiques

Les niveaux hiérarchiques doivent être définis comme familles de tiers. Il est alors souhaitable de définir des familles de société indépendantes (fonction GTTTI) afin de créer une fonction de gestion des familles de sociétés (fonction GFSO).

Figure 0‑6 : Types de tiers

L’utilisation d’une famille de type SOC permet d’isoler les familles d’entités des autres familles utilisées dans le produit.

Figure 0‑7 : Paramétrage GFSO

Ce paramétrage permet d’indiquer le type de famille à gérer dans la fonction générale de gestion des familles.

Figure 0‑8 : Familles de sociétés

Cet exemple permet de gérer une hiérarchie à cinq niveaux. On retrouve le niveau correspondant à la société juridique (2), un niveau de consolidation (1) et des niveaux purement opérationnels (3, 4 et 5).

Remarque : le niveau qui correspond à la société juridique (ici 2) doit correspondre à la valeur N1 du paramètre MULENT.

Définition des entités

La société de connexion

Toutes les entités doivent être définies en tant que société dans les outils d'exploitation d’ACE (ACE Manager). Il est recommandé de définir l'entité qui se trouve au niveau le plus haut comme société de référence et comme société physique. Les informations code société et sigle sont très importantes et elles ne devront plus être modifiées par la suite.

Les sociétés de connexion sont initialisées par les outils d’exploitation. Il faut néanmoins les modifier afin de renseigner correctement le sigle. Cette information ne doit plus être modifiée par la suite. Le code société est limité à 4 caractères (vois fonction USOC).

Remarque : il faut toujours continuer de partager les tables de la structure d'accueil (AGL_*, UT_*) dans le fichier Generix.ini.

Le tiers entité

La définition des entités, des structures et du paramétrage (partage et propagation des données) doit absolument être faite dans l'entité de plus haut niveau (01). Le détail des informations de l'entité sera défini dans la fiche tiers. Le type de tiers correspondant est par défaut SOC mais il peut être modifié par le paramètre TYPSOC.

Figure 0‑10 : Paramétrage GSOC

Ce paramétrage permet d’indiquer le type de tiers à gérer dans la fonction générale de gestion des tiers.

Figure 0‑11 : Le tiers entité

Cette fonction permet de renseigner les données fonctionnelles liées à l’entité. Cette fiche est un complément par rapport à l’enregistrement société de connexion. Cette saisie est simplifiée par le mode opératoire suivant :

  • Activer la fonction GSOC, option Créer.
  • Sur le champ sigle tiers, activer la recherche complémentaire. Le système affiche la liste des sociétés de connexion (table UT_SOC).
  • Sélectionner l’un des éléments. Le système alimente en automatique :
  • Le sigle tiers avec le sigle société (surtout ne pas modifier),
  • Le nom réduit avec le sigle société,
  • Le code intra-groupe représente le code de connexion de l’entité. Il ne doit jamais être modifié car il permet de faire un lien entre le tiers et la société de connexion.
  • La famille (zone obligatoire) représente le niveau dans la hiérarchie,
  • Les autres données sont facultatives.

Définition des hiérarchies

Les liens sont définis par l'écran de gestion des liens entre les tiers (pop-up accessible depuis l’écran GTIE_1 ).

Figure 0‑12 : Les liens entre entités

Tous les liens possèdent une période de validité, ce qui permet notamment de disposer d’un historique des structures. Cependant, les changements de structure (réorganisation générale d’un groupe avec transfert d’activités) peuvent avoir des répercussions importantes sur les aspects fonctionnels.

L’impact dépend principalement du paramétrage mis en place. Il faut donc absolument faire une étude complémentaire et mettre en place une procédure adaptée à chaque site. Les points les plus importants sont la gestion des encours (qu’il est possible de recalculer par un traitement différé) et la propriété de stock (le plus simple et d’effectuer un mouvement de sortie de stock qui provoquera la génération d’une facture de cession puis un mouvement d’entrée dans la nouvelle entité propriétaire).

Multi-entités et multi-établissements

Les deux modes sont compatibles. On peut très bien envisager une gestion sans établissement dans ACE COMMERCE et une gestion avec établissements dans ACE FINANCE. Il faut alors créer un lien juridique entre une entité et un établissement comptable qui lui-même sera relié à la société juridique. Dans ce cas, le code intra-groupe de l'établissement doit être renseigné.

Figure 0‑13 : Le tiers établissement

Le code intra-groupe du tiers établissement, comme pour le tiers entité, est une notion très importante.

Figure 0‑14 : Les liens entité – établissement

Ce lien détermine l’établissement comptable lors de la génération d’écritures comptables alors que l’établissement n’est pas géré en gestion commerciale.

Consultation des hiérarchies

La hiérarchie opérationnelle peut être consultée via pop-up dans la fonction GSOC.

Note : pour voir apparaître, dans la consultation des hiérarchies, les sociétés venant d'être créées, il faut quitter la fonction et l’activer de nouveau.

Figure 0‑15 : Hiérarchie opérationnelle

Cette fonction permet de visualiser la hiérarchie opérationnelle avec un découpage par indentation de chaque niveau hiérarchique. La hiérarchie juridique peut également être consultée via pop-up dans la fonction GSOC (voir écranGTIE_MEP).

Figure 0‑16 : Hiérarchie juridique

Cette fonction permet de visualiser la hiérarchie juridique avec un découpage par indentation de chaque niveau hiérarchique. Dans cet écran, on retrouve uniquement les trois niveaux comptables : groupe, société et établissement.

Partage d’informations

Le but du partage d'informations est de mettre en commun les données de plusieurs entités. Il n'y a donc pas de duplication : les données sont uniques pour toutes les entités concernées. Le partage, réalisé non pas par entité mais par niveau de la structure opérationnelle, peut être défini table par table voire même pour un sous-ensemble d'une table identifiable par un segment.

La table des tiers (TIE) peut être partagée de façon différente entre les clients et les fournisseurs. Voici la liste des tables à segment :

Table Clé

Code de la

table généralisée

TIE Typtie Type de tiers
LAD Typtie Type de tiers
ADR Typtie Type de tiers
TIA Typtie Type de tiers
TIF Typtie Type de tiers
TIG Typtie Type de tiers
TII Typtie Type de tiers
TIL Typtie Type de tiers
TIR Typtie Type de tiers
TIS Typtie Type de tiers
Attention : la table des RIB n'a pas de segment, dans le cas de partage ou de propagation; il ne faut pas oublier cette table qui n'est pas générée automatiquement par le système.
FAM Typtie Type de tiers
FML Typtie Type de tiers
ZOD Typtie Type de tiers
TXT Typtie Type de tiers
PRC Typtie Type de tiers
TAS Achvte Achat / vente
TSC Achvte Achat / vente
TCO Achvte Achat / vente
TAB Achvte Achat / vente
TAC Achvte Achat / vente
TAL Achvte Achat / vente
TAT Achvte Achat / vente
TAV Achvte Achat / vente
CNT (on ne peut partager les contrats (tables CNT etCNP) que si les conditions tarifaires dont le type de condition est « LIG » et ayant le même code « achvte », sont déjà partagées. Achvte Achat / vente
CNP (on ne peut partager les contrats (tables CNT etCNP) que si les conditions tarifaires dont le type de condition est « LIG » et ayant le même code « achvte », sont déjà partagées. Achvte Achat / vente
CTS Achvte Achat / vente
PCI Achvte Achat / vente
BAP Achvte Achat / vente
CQQ Achvte Achat / vente
P_PLE P_plncod Code du plan
CTP   Si cette table existe encore dans votre environnement, Il faut la partager.

Remarque : le code segment est forcément un champ qui fait partie de la clé conceptuelle. Il ne peut pas correspondre par exemple à la famille de produit. Pour les tables à segment, il faut absolument le renseigner lors de la définition du partage et de la propagation.

Il est aussi possible de dupliquer un enregistrement pour tous les segments d'une table. Pour partager toutes les tables généralisées de la même façon, il suffit de définir un exemple (validation puis retour sur la ligne) et activer le pop-up PF2-B (la source est la table des tables). Cette manière de procéder est aussi valable pour les tiers, la source étant les types de tiers.

Vous avez la possibilité de partager la table des compteurs (UT_CPT) et la table des « trous » (TROU) en utilisant le paramètre NUMEVE (fonctionnalité disponible depuis la version ACE 4.4-00).

Partage minimum

Lors d'un paramétrage en multi-entités, il vous faut partager au minimum certaines tables. De la même manière, d’autres tables ne doivent surtout pas être partagées:

Doivent être partagés impérativement :

  • TIE segment SOC niveau01
  • TIL segment SOC niveau01

De plus, certains segments doivent être précisés en clair. Par exemple :

  • TSC segment A niveau02
  • TSC segment B niveau02

Si vous indiquez uniquement TSC niveau02, le partage ne fonctionne pas.

Attention !

Toutes les tables ut_*, et autres vues utiles pour le partage des habilitations sont à partager via le fichier Generix.ini. Certaines tables (TBL-tti, TBL-tct, TBL-rzo, TBL-tbl et TBL-ttu, table cot, table p_pln) doivent être partagées sur le niveau 1 de la hiérarchie.

Les tables suivantes ne doivent jamais être partagées ni propagées :

CAL - les calendriers

CAP - les périodes des calendriers

Pourquoi cette règle de gestion sur CAP et CAL ?

Aucun problème de fond si vous utilisez uniquement ACE COMMERCE. En revanche, si vous utilisez ACE FINANCE, les tables CAL et CAP ne peuvent pas être partagées car celles-ci portent des informations comptables mises à jour à la clôture d'exercice. Or comme les clôtures s'effectuent société par société, si vous partagez CAP et CAL, la clôture d'une première société vous empêchera de clôturer les autres.

Paramétrage

Le paramétrage est réalisé via pop-up F1-P dans la fonction GSOC (option Modifier). Pour chaque table à partager (et éventuellement son segment), il faut préciser le niveau de la hiérarchie opérationnelle où est gérée l'information. Les tables (et éventuellement son segment) non précisées dans le paramétrage du mode multi-entités ne seront pas partagées. Il est fondamental de respecter la cohérence du modèle de données dans la définition du partage.

Gérer un enregistrement DSK à un niveau et un enregistrement LSK à un autre est par exemple absolument interdit.

Même si aucun contrôle de cohérence n’est effectué, une aide vous permet de générer automatiquement des informations cohérentes. Elles seront toujours modifiables par la suite mais il faudra, dans ce cas, apporter une attention toute particulière à la cohérence.

Figure 0‑1 : Partage des tables

Mode opératoire

Pour partager les stocks, il faut définir le partage de la table DSK.

  • Valider la ligne correspondant à la table DSK.
  • La sélectionner de nouveau et activer le pop-up Transmission des données , pour une gestion commerciale (tables relatives aux stocks).

Le système va dupliquer la ligne pour les tables associées : LSK, ESK, PSK, FSK, ISK, NSK, SKT, SSK et OST. La table DSK déclenche la propagation des données, les autres sont les tables associées.

Données Pop-up Table source Tables impactées par la propagation
Produits F1A PRO PRU, PRR, PRN, PRL, PRM, PRP, PRX, PVA, FAM/PRO, FML/PRO, TXT/PRO, ZOD/PRO
Stocks F1B DSK LSK, ESK, PSK, FSK, ISK, NSK, SKT, SSK
Tiers F1C TIE LAD, ADR, FAM, FML, TIF, TIA, TIG, TII, TIL, TIR, TIS, TXT, ZOD
Tarifs F1D TAS TAB, TAC, TAV, TAL, TAF, TAT, TSC, TCO
Paramétrage F1E PEV PARAV, PARAM, OSK, CSK, ASK, BSTP, CAL, CAP, COM, CPO, DEM, DNO, ENB, ENC, MEP, TVA, ANA, PCG, CPO, ETS, LOC, PCI, BAP, CQQ
Encours F1F ENE ENT
Comptabilité générale F3A P_1PL P_1GC, P_1JA, P_1AP, P_1NU, P_1PP, P_PLE, P_PLN
Distributeurs F3B P_1DP P_1LD
Schémas F3C P_2ECP P_2CPP, P_2MVP, M_2TAP
Comptabilité tiers F3D P_3CT P_3FC
Guides F3E P_3GG P_3GRV, P_3TRV
Trésorerie F3F P_4BQ P_4CB, P_4JF, P_4MP
Comptabilité analytique