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 |
|---|---|---|
| Ligne OPEX | Un coût récurrent, reporté d'une année sur l'autre | Gestion budgétaire > Lignes budgétaires |
| Ligne CAPEX | Un investissement, reporté d'une année sur l'autre | Gestion budgétaire > Lignes budgétaires |
| Colonnes budgétaires | Les cinq colonnes de montants que chaque ligne budgétaire 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'une ligne |
| Ventilation | La répartition du coût d'une année d'une ligne entre sociétés ou départements | L'onglet Ventilations d'une ligne |
| 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 lignes budgétaires | 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 |
|---|---|---|
| Ligne 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. Une sur une nouvelle ligne pour une dimension obligatoire | |
| 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'une ligne | 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 |
Une ligne 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 lignes budgétaires¶
Lignes OPEX et CAPEX¶
Une ligne vit sur plusieurs années : une licence sur trois ans est une ligne avec trois années budgétaires. KANAP donne un numéro à chaque ligne budgétaire à sa création, sa référence BL-12, dans la même série pour l'OPEX et le CAPEX. La liste, l'espace de travail et l'adresse de la page l'affichent. Les lignes budgétaires créées avant cette série avaient aussi un numéro OPX-12 ou CPX-3 : les liens, les recherches et le fichier budgétaire retrouvent toujours une ligne par ce numéro. Dans un fichier sans colonne nature, un nombre seul garde son sens antérieur (CPX-3 quand la liste est filtrée sur CAPEX). Voir Références.
| Champ | Colonne du fichier budgétaire | Obligatoire | Remarques |
|---|---|---|---|
| Nature | nature |
Oui | opex ou capex. Un fichier ne change pas la nature d'une ligne existante (voir Changer le type d'une ligne). Un fichier sans cette colonne est lu comme des lignes OPEX, ou comme des lignes CAPEX quand la liste est filtrée sur CAPEX |
| Numéro | item_number |
Attribué par KANAP | BL-12. Vide dans le fichier : crée une ligne |
| Titre | name |
Oui | La colonne Nom du produit de la liste |
| Description | description |
Non | |
| 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> |
Pour une dimension obligatoire | Une colonne par dimension active. Une ligne ne prend de valeurs que sur les dimensions de sa nature. Une dimension obligatoire demande une valeur sur une nouvelle ligne de sa nature. Un nouvel espace de travail démarre avec les dimensions recommandées, dont aucune n'est obligatoire |
| 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'une ligne |
| Notes | notes |
Non |
Une ligne n'a pas de statut à charger. Elle est active jusqu'à sa fin de validité, puis désactivée dans l'heure. Le responsable budgétaire affiché sur une ligne vient de son centre de coûts et n'est pas enregistré sur la ligne.
Changer le type d'une ligne¶
Une ligne passe d'OPEX à CAPEX, ou l'inverse, dans son espace de travail (Changer le type... dans le menu ..., voir Changer le type). Un fichier budgétaire ne le change jamais. Le changement commence le 1er janvier d'une année :
- À partir de la première année de la ligne, la ligne elle-même change de type. Elle garde son numéro
BL, ses années budgétaires, ventilations, liens, pièces jointes et tâches - À partir d'une année ultérieure, la ligne se termine le 31 décembre de l'année précédente et garde ses années budgétaires antérieures. Une nouvelle ligne de l'autre type, avec son propre numéro
BL, porte les années budgétaires suivantes, les contacts et les liens vers les applications, actifs, contrats, projets et demandes. La nouvelle ligne enregistre la ligne à laquelle elle succède, et chaque ligne budgétaire affiche l'autre
Une ligne est remplacée par une seule ligne au plus. Le changement est refusé tant qu'une colonne gelée contient des montants de la ligne sur les années qui changent.
Années budgétaires¶
Chaque ligne budgétaire 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 ligne budgétaire 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 type (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 de la ligne. 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'une ligne 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, pour les lignes OPEX et CAPEX. Aucun fichier ne les importe. Copier les colonnes budgétaires 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 de la ligne, ou du projet | Le fichier budgétaire porte un projet par ligne budgétaire 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 de la ligne, ou de l'application | Non |
| Actifs | L'onglet Relations de l'actif | Non |
| Contrats | L'onglet Relations de la ligne, ou du contrat | Non |
| Contacts, sites web, pièces jointes | L'onglet Relations de la ligne | Non |
| Tâches | L'onglet Vue d'ensemble de la ligne | 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 une ligne 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'une ligne budgétaire doit exister dans le plan de sa société payeuse, et chaque compte indique s'il sert aux lignes OPEX, aux lignes CAPEX ou aux deux. 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'une ligne peut utiliser. Son responsable budgétaire s'affiche sur chaque ligne budgétaire 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. Une ligne 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 |
|---|---|---|---|---|
| Lignes OPEX et CAPEX et leurs montants | Oui | Oui | item_number (BL-12) |
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 lignes 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 de la ligne budgétaire sur la même ligne du fichier. 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. Un seul fichier contient les deux types de ligne, et sa colonne nature indique lequel. Gestion budgétaire > Lignes budgétaires exporte les lignes budgétaires qu'elle affiche, des deux types, et importe un fichier qui contient les deux, avec le niveau Admin sur Budget.
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 budgétaire depuis la liste pour obtenir la ligne d'en-tête de votre organisation, avec une colonne par dimension analytique. Une liste sans ligne budgétaire exporte la ligne d'en-tête seule.
- Remplissez une ligne par ligne budgétaire avec sa
nature, en laissantitem_numbervide, avec une colonne de montant par colonne budgétaire et par année (budget_2027), ou par mois (budget_2027_03). - Importez le fichier. 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, 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.