Modèle de données du budget¶
Cette page décrit comment KANAP organise les données budgétaires : les objets, leurs relations, les champs qui identifient un enregistrement et les fichiers qui font entrer et sortir chaque objet. Elle s'adresse aux contrôleurs de gestion et aux administrateurs du budget qui préparent un passage depuis des tableurs ou un autre outil, et à l'équipe technique qui branche un outil de BI sur une installation on-premise.
Les fichiers décrits ici sont le contrat sur lequel s'appuyer. Leurs colonnes sont documentées dans ce manuel et vérifiées à l'import, et quand une disposition change, un import refuse un fichier à l'ancienne disposition et en donne la raison. Les tables de la base de données derrière eux sont internes : elles changent quand KANAP évolue. Appuyez un passage depuis un autre outil, et toute intégration, sur les fichiers.
Les objets en un coup d'œil¶
| Objet | Ce qu'il contient | Où le gérer |
|---|---|---|
| Poste OPEX | Un coût récurrent, reporté d'une année sur l'autre | Gestion budgétaire > OPEX |
| Poste CAPEX | Un investissement, reporté d'une année sur l'autre | Gestion budgétaire > CAPEX |
| Colonnes budgétaires | Les cinq colonnes de montants que chaque poste a pour chaque année | Gestion budgétaire > Administration > Colonnes budgétaires |
| Lignes Quantité et prix | Les lignes à partir desquelles une colonne peut être calculée | L'onglet Budget d'un poste |
| Ventilation | La répartition du coût d'une année d'un poste entre sociétés ou départements | L'onglet Ventilations d'un poste |
| Société | Une entité juridique qui paie, avec ses indicateurs annuels | Données de référence > Sociétés |
| Département | Une unité d'une société, avec son effectif annuel | Données de référence > Départements |
| Plan comptable et compte | Les comptes sur lesquels une société impute ses postes | Données de référence > Plans comptables |
| Centre de coûts | Qui porte la dépense, dans une arborescence de groupes | Données de référence > Centres de coûts |
| Fournisseur | Qui est payé | Données de référence > Fournisseurs |
| Dimension analytique et valeur | Des classifications libres pour le reporting | Données de référence > Dimensions analytiques |
| Calendrier de jours ouvrés | Les jours ouvrés par mois et par année, pour les prix par jour | Données de référence > Calendriers de jours ouvrés |
| Utilisateur | Responsables IT et métier, responsables budgétaires | Administration > Utilisateurs |
| Devises | Devises autorisées, devise de reporting, taux de change | Gestion budgétaire > Administration > Devises |
Les relations entre les objets¶
| Objet | Fait référence à | Combien |
|---|---|---|
| Poste OPEX ou CAPEX | Société payeuse | Une |
| Compte, dans le plan comptable de la société payeuse | Un | |
| Devise, parmi les devises autorisées | Une | |
| Centre de coûts | Zéro ou un. Un groupe ne peut pas être utilisé | |
| Fournisseur | Zéro ou un | |
| Valeur de chaque dimension analytique active | Zéro ou une par dimension | |
| Responsable IT et responsable métier (utilisateurs) | Zéro ou un chacun | |
| Années budgétaires | Une par année | |
| Année budgétaire d'un poste | Colonnes budgétaires | Cinq, chacune avec douze montants mensuels |
| Lignes Quantité et prix | Jusqu'à 50 par colonne | |
| Ventilation | Une méthode, avec ses sociétés ou ses départements | |
| Ligne Quantité et prix avec un prix par jour | Calendrier de jours ouvrés | Un |
| Centre de coûts | Société | Une |
| Responsable budgétaire (utilisateur) | Zéro ou un | |
| Groupe parent | Zéro ou un | |
| Groupe de centres de coûts | Groupe parent | Zéro ou un. Un groupe n'a pas de société |
| Société | Plan comptable | Un. Une société sans plan propre utilise le plan par défaut des autres pays |
| Pays et devise de base | Un de chaque | |
| Indicateurs : effectif, utilisateurs IT, chiffre d'affaires | Un jeu par année | |
| Département | Société | Une |
| Compte | Plan comptable | Un |
| Valeur analytique | Dimension analytique | Une |
Un poste se lie aussi à des projets, des demandes, des applications, des actifs, des contrats, des contacts, des tâches, des sites web et des pièces jointes. Voir Liens vers d'autres objets.
Les postes budgétaires¶
Postes OPEX et CAPEX¶
Un poste vit sur plusieurs années : une licence sur trois ans est un poste avec trois années budgétaires. KANAP donne un numéro à chaque poste à sa création : OPX-12 pour l'OPEX, CPX-3 pour le CAPEX. Le numéro identifie le poste dans le fichier budgétaire.
| Champ | Colonne du fichier budgétaire | Obligatoire | Remarques |
|---|---|---|---|
| Numéro | item_number |
Attribué par KANAP | Vide dans le fichier : crée un poste |
| Nom du produit (OPEX), titre (CAPEX) | name |
Oui | |
| Description (OPEX) | description |
Non | |
| Type d'immobilisation (CAPEX) | ppe_type |
Oui | hardware ou software |
| Type d'investissement (CAPEX) | investment_type |
Oui | replacement, capacity, productivity, security, conformity, business_growth ou other |
| Priorité (CAPEX) | priority |
Oui | mandatory, high, medium ou low |
| Société payeuse | company_name |
Oui | Reprise du centre de coûts quand seul le centre de coûts est donné |
| Fournisseur | supplier_name, supplier_erp_id |
Non | |
| Compte | account_number |
Oui | Dans le plan comptable de la société payeuse |
| Centre de coûts | cost_center_code |
Non | Un groupe est refusé |
| Run ou build | run_build |
Non | run ou build |
| Valeurs analytiques | analytics:<code> |
Non | Une colonne par dimension active |
| Responsable IT, responsable métier | owner_it_email, owner_business_email |
Non | Utilisateurs actifs |
| Projet | project |
Non | Un numéro de projet, par exemple PRJ-3 |
| Devise | currency |
Oui | Code ISO à trois lettres |
| Début d'effet | effective_start |
Oui | Dans un fichier, le 1er janvier de la première année portant un montant dans la ligne, sinon de l'année en cours |
| Fin de validité | end_of_validity |
Non | La seule date de fin d'un poste |
| Notes | notes |
Non |
Un poste n'a pas de statut à charger. Il est actif jusqu'à sa fin de validité, puis désactivé dans l'heure. Le responsable budgétaire affiché sur un poste vient de son centre de coûts et n'est pas enregistré sur le poste.
Années budgétaires¶
Chaque poste porte un budget par année. L'onglet Budget affiche l'année en cours, les deux années précédentes et les deux suivantes. Un fichier budgétaire peut exporter jusqu'à douze années à la fois.
Une année budgétaire contient les cinq colonnes budgétaires avec leurs montants mensuels, les lignes Quantité et prix de chaque colonne et la ventilation de l'année.
Colonnes budgétaires¶
Chaque poste a les mêmes cinq colonnes pour chaque année. Elles sont définies une fois pour toute l'organisation, pour l'OPEX comme pour le CAPEX.
| Position | Nom standard | Nom dans les fichiers |
|---|---|---|
| 1 | Budget | budget |
| 2 | Révision | revision |
| 3 | Prévision (masquée par défaut) | forecast |
| 4 | Réalisé | actual |
| 5 | Atterrissage prévu | landing |
- Un administrateur du budget peut renommer une colonne (jusqu'à 40 caractères), la masquer et choisir la colonne par défaut. Le nom dans les fichiers reste le même : un fichier continue de fonctionner après un renommage. Voir Colonnes budgétaires.
- Une colonne masquée garde ses montants et accepte toujours les imports.
- Les colonnes sont gelées par année, par colonne et par périmètre (OPEX ou CAPEX). Une colonne gelée refuse les modifications, les imports, les copies et les réinitialisations. Voir Geler / Dégeler les données.
Il n'y a pas de sixième colonne. Pour conserver plusieurs tours budgétaires, utilisez une colonne par tour, ou copiez une colonne vers une autre année ou une autre colonne avec Copier les colonnes budgétaires.
Montants mensuels¶
Chaque colonne d'une année budgétaire contient douze montants mensuels, à deux décimales, dans la devise du poste. Le total annuel est la somme des mois. Un fichier peut porter le total annuel ou les douze mois d'une colonne : un total annuel est réparti sur la période de la colonne, comme dans l'onglet Budget.
Chaque colonne enregistre aussi sa période dans l'année et l'origine de ses montants : une répartition, une copie, une saisie à la main ou ses lignes Quantité et prix. Les rapports convertissent les montants dans la devise de reporting avec les taux de change de l'année. Voir Paramètres de devises.
Lignes Quantité et prix¶
Une colonne peut être calculée à partir de lignes, chacune une quantité multipliée par un prix unitaire. Chaque ligne a une description (jusqu'à 200 caractères), une quantité (jusqu'à 3 décimales), une unité (personnes, jours ou pièces), un prix unitaire (jusqu'à 4 décimales), une fréquence, une période ou une date, et un calendrier de jours ouvrés quand le prix est par jour. L'ETP de la colonne est déduit des lignes. Voir Quantité et prix.
Ces lignes se saisissent dans l'onglet Budget. Aucun fichier ne les porte. Un fichier budgétaire écrit les montants mensuels d'une colonne, et les lignes restent avec elle comme référence.
Ventilations¶
Chaque année budgétaire d'un poste a une méthode de ventilation :
| Méthode | Répartition selon |
|---|---|
| Par défaut | La méthode par défaut de l'organisation pour l'année, définie dans Méthode de ventilation par défaut |
| Effectif, Utilisateurs IT, Chiffre d'affaires | Les indicateurs des sociétés pour l'année |
| Manuel par société | Un indicateur, entre les sociétés que vous choisissez |
| Manuel par département | L'effectif des départements que vous choisissez |
| Pourcentages manuels | Les pourcentages que vous saisissez, dont la somme fait 100 % |
Les ventilations alimentent les rapports de refacturation. Aucun fichier ne les importe. Copier les ventilations les reporte d'une année sur la suivante, et les rapports de refacturation exportent leurs tableaux en CSV. Voir Rapports.
Liens vers d'autres objets¶
| Lien | Où il se crée | Dans un fichier |
|---|---|---|
| Projets | L'onglet Relations du poste, ou du projet | Le fichier budgétaire porte un projet par poste dans project. Les liens de l'onglet Relations ne sont pas dans le fichier. Les listes affichent les deux |
| Demandes | L'onglet Relations de la demande | Non |
| Applications | L'onglet Relations du poste, ou de l'application | Non |
| Actifs | L'onglet Relations de l'actif | Non |
| Contrats | L'onglet Relations du poste, ou du contrat | Non |
| Contacts, sites web, pièces jointes | L'onglet Relations du poste | Non |
| Tâches | L'onglet Vue d'ensemble du poste | Non |
Données de référence¶
Le fichier budgétaire retrouve les données de référence par des identifiants métier. Chargez d'abord les données de référence. Le fichier budgétaire crée les fournisseurs manquants quand Créer les fournisseurs manquants est cochée, ainsi que les valeurs analytiques manquantes. Il ne crée rien d'autre.
| Objet | Identifié dans les fichiers par | Obligatoire | Sur un poste budgétaire |
|---|---|---|---|
| Société | name |
Nom, pays, devise de base. L'écran demande aussi une ville | company_name |
| Département | company_name et name |
Société, nom | Utilisé par les ventilations |
| Plan comptable | Son code (coa_code dans le fichier des comptes) |
Code, nom, portée | Par la société payeuse |
| Compte | account_number dans son plan (coa_code dans le fichier global) |
Numéro, nom | account_number |
| Centre de coûts | code, sans tenir compte de la casse |
Code, nom, type, et la société d'un centre de coûts | cost_center_code |
| Fournisseur | name |
Nom | supplier_erp_id, puis supplier_name |
| Dimension analytique | Son code | Code | L'en-tête de colonne analytics:<code> |
| Valeur analytique | axis_code et name |
Nom | La cellule de la colonne de sa dimension |
| Calendrier de jours ouvrés | code, sans tenir compte de la casse |
Code, nom | Utilisé par les lignes Quantité et prix |
| Utilisateur | email |
owner_it_email, owner_business_email |
Les points qui comptent quand vous faites correspondre un autre outil à KANAP :
- Les sociétés portent leur effectif, leurs utilisateurs IT et leur chiffre d'affaires par année. Le chiffre d'affaires est en millions de la devise de base de la société. Les ventilations par effectif, utilisateurs IT ou chiffre d'affaires ont besoin des indicateurs de l'année.
- Les comptes appartiennent à un plan comptable, et une société utilise un plan. Un numéro de compte est un nombre entier, unique dans son plan. Le compte d'un poste budgétaire doit exister dans le plan de sa société payeuse. Voir Plans comptables et gestion des comptes.
- Les centres de coûts forment une arborescence. Un groupe rassemble des centres de coûts et d'autres groupes, et peut couvrir plusieurs sociétés. Un centre de coûts appartient à une société, n'a pas d'enfants et est le seul nœud qu'un poste peut utiliser. Son responsable budgétaire s'affiche sur chaque poste qu'il porte. Voir Centres de coûts.
- Les fournisseurs sont mis en correspondance par leur nom dans leur propre fichier. Le fichier budgétaire les retrouve d'abord par l'ID ERP, puis par le nom : renseignez l'ID ERP quand votre ERP en a un.
- Les dimensions analytiques se créent sur leur page, chacune avec un code. Un poste porte au plus une valeur par dimension. Voir Dimensions analytiques.
- Les calendriers de jours ouvrés sont standard (ils suivent les jours fériés d'un pays) ou personnalisés. Ils contiennent les jours ouvrés de chaque mois, année par année. Voir Calendriers de jours ouvrés.
- Les devises sont des codes ISO à trois lettres. Les devises autorisées, la devise de reporting et les taux de change se règlent à l'écran et n'ont pas de fichier.
Formats d'échange¶
Chaque fichier ci-dessous s'exporte et s'importe depuis la page qui gère l'objet. Les imports se font en deux étapes : une vérification qui n'écrit rien, puis un chargement. À l'exception du fichier des contrats, ils partagent les règles d'encodage, de séparateur, de dates et de montants et la limite de taille décrites dans Fichiers CSV.
| Objet | Export | Import | Correspondance par | Détails |
|---|---|---|---|---|
| Postes OPEX et leurs montants | Oui | Oui | item_number |
Charger un budget depuis un tableur |
| Postes CAPEX et leurs montants | Oui | Oui | item_number |
Charger un budget depuis un tableur |
| Sociétés et leurs indicateurs | Oui | Oui | name |
Sociétés |
| Départements | Oui | Oui | company_name et name |
Départements |
| Comptes | Oui | Oui | account_number dans le plan |
Plans comptables et gestion des comptes |
| Plans comptables | Non | Non | Créés sur la page ou depuis un modèle. Voir Plans comptables et gestion des comptes | |
| Centres de coûts | Oui | Oui | code |
Centres de coûts |
| Fournisseurs | Oui | Oui | name |
Fournisseurs |
| Valeurs analytiques | Oui | Oui | axis_code et name |
Dimensions analytiques |
| Calendriers de jours ouvrés | Oui | Oui | code, une ligne par calendrier et par année |
Calendriers de jours ouvrés |
| Utilisateurs | Oui | Oui | email |
Fichier CSV des utilisateurs |
| Contrats | Oui | Oui | name et supplier_name |
Contrats. Le fichier ne porte pas les liens vers les postes budgétaires |
| Ventilations | Depuis les rapports de refacturation | Non | Rapports | |
| Lignes Quantité et prix, paramètres des colonnes budgétaires, gels, devises | Non | Non | Réglés à l'écran |
Le fichier budgétaire lit et écrit les montants de n'importe quelle colonne et année, en totaux annuels ou en mois, avec le détail du poste sur la même ligne. C'est la porte d'entrée d'un budget préparé ailleurs et la porte de sortie vers un tableur ou un outil de BI. Chaque liste budgétaire exporte et importe son propre fichier : le fichier OPEX depuis Gestion budgétaire > OPEX, le fichier CAPEX depuis Gestion budgétaire > CAPEX.
Faire entrer un budget dans KANAP¶
- Faites correspondre chaque objet de votre outil actuel aux tableaux ci-dessus, et ses identifiants à la colonne Correspondance par.
- Chargez les données de référence dans l'ordre donné dans Charger un budget complet.
- Exportez le fichier OPEX et le fichier CAPEX pour obtenir la ligne d'en-tête de votre organisation, avec une colonne par dimension analytique. Une liste sans poste exporte la ligne d'en-tête seule.
- Remplissez une ligne par poste, en laissant
item_numbervide, avec une colonne de montant par colonne budgétaire et par année (budget_2027), ou par mois (budget_2027_03). - Importez les fichiers. La vérification signale les erreurs par ligne du fichier, et rien n'est écrit avant le chargement.
Un jeu cohérent de fichiers d'exemple, avec une société fictive et ses données de référence, se trouve dans le dépôt KANAP.
Lire les données directement¶
Sur une installation on-premise, la base PostgreSQL vous appartient : KANAP tourne sur la base que vous fournissez. Vous pouvez la lire, la sauvegarder et y brancher des outils.
Avant de le faire, gardez trois points en tête.
La sécurité au niveau des lignes filtre chaque lecture. KANAP se connecte avec un rôle applicatif dédié qui ne peut pas contourner la sécurité au niveau des lignes. Il refuse de démarrer avec un rôle superutilisateur ou un rôle qui la contourne. Chaque table qui contient vos données ne montre ses lignes qu'à une session qui a indiqué l'espace de travail qu'elle lit. Une session qui ne l'a pas indiqué obtient des résultats vides, sans erreur.
Les tables sont internes. Leurs noms, leurs colonnes et leur stockage changent d'une version à l'autre, par les migrations qui s'exécutent à chaque mise à jour. Les noms de colonnes en base sont des clés de stockage et diffèrent des noms affichés à l'écran et dans les fichiers. Une requête écrite sur les tables d'aujourd'hui peut renvoyer des résultats faux ou vides après une mise à jour.
Vos objets peuvent bloquer une mise à jour. PostgreSQL refuse de modifier ou de supprimer une colonne dont dépend une vue. Une vue créée sur les tables de KANAP peut faire échouer une mise à jour. Gardez vos requêtes dans l'outil de BI ou dans une base de reporting séparée.
Pour un outil de BI, utilisez d'abord les exports. Le fichier budgétaire et les fichiers des données de référence portent des noms et des identifiants métier, documentés dans ce manuel.
Quand un outil doit lire la base, donnez-lui son propre rôle en lecture seule. Ne réutilisez jamais le rôle applicatif. Par exemple, en tant qu'administrateur PostgreSQL, avec kanap comme rôle applicatif et comme base :
-- The workspace of this installation
SELECT id FROM tenants;
CREATE ROLE kanap_bi LOGIN PASSWORD 'change-me' NOSUPERUSER NOBYPASSRLS;
GRANT CONNECT ON DATABASE kanap TO kanap_bi;
GRANT USAGE ON SCHEMA public TO kanap_bi;
GRANT SELECT ON spend_items, capex_items, companies, accounts TO kanap_bi;
ALTER ROLE kanap_bi IN DATABASE kanap SET app.current_tenant = '<id from the first query>';
N'accordez SELECT que sur les tables dont vos rapports ont besoin. La base contient aussi des comptes utilisateurs, des données de connexion et des paramètres dont un outil de reporting n'a pas l'usage. Vérifiez les droits et les requêtes après chaque mise à jour.