Le calcul de besoins classique part des prévisions : on estime la demande, on en déduit les approvisionnements, et l'on se trompe. DDMRP part de l'inverse — on place des tampons de stock aux bons endroits, et on les réapprovisionne sur consommation réelle.
Dix-neuf modules communautaires portent cette méthode dans Odoo. C'est le projet industriel le plus abouti du catalogue, et terminent le dépôt ddmrp.
Résumé
Le module central crée les tampons de stock avec leurs profils, leurs facteurs de délai et de variabilité, et une méthode de calcul de la consommation moyenne journalière paramétrable. Il déclare huit dépendances externes, dont le calcul de besoins multiniveau, les estimations de demande et un calendrier d'entrepôt.
Quatre modules traitent les ajustements : des facteurs d'ajustement par période — la saisonnalité —, un assistant matriciel pour les saisir en deux dimensions, l'exclusion de certains mouvements du calcul de consommation, et son extension aux ventes.
Cinq modules traitent l'exploitation : l'exécution du calcul en travaux de fond, les avertissements de configuration sur les tampons et leur exécution en travaux de fond, une conversation sur les tampons, et l'historique des tampons.
Cinq modules enfin traitent les compléments : les jours de couverture, les conditionnements, le remplacement de produit avec son outil assisté et sa colle, et le masquage de l'état de stock sur les achats.
Quatre modules traitent les contraintes et l'analyse : une limite de capacité de stockage jamais dépassée, une route forcée au réapprovisionnement, l'accès à l'analyse des ventes depuis un tampon, et un rapport d'indice de flux des pièces.
L'essentiel
- Des tampons de stock à zones, dimensionnés par profil.
- Une consommation moyenne journalière calculée par méthode paramétrable.
- Des ajustements par période : la saisonnalité, en matrice.
- Des mouvements exclus du calcul de consommation.
- Des avertissements de configuration sur les tampons.
- Une limite de capacité de stockage jamais dépassée.
- L'historique des tampons, pour voir évoluer le dimensionnement.
- Huit dépendances externes pour le seul module central.
Ce que ces modules ajoutent à l'instance
| Famille | Modules | Nombre |
|---|---|---|
| Socle | ddmrp | 1 |
| Ajustements | ddmrp_adjustment, ddmrp_adjustment_matrix, ddmrp_exclude_moves_adu_calc, ddmrp_exclude_moves_adu_calc_sales | 4 |
| Exploitation | ddmrp_cron_actions_as_job, ddmrp_warning, ddmrp_warning_as_job, ddmrp_chatter, ddmrp_history | 5 |
| Compléments | ddmrp_coverage_days, ddmrp_packaging, ddmrp_product_replace, ddmrp_packaging_product_replace, ddmrp_purchase_hide_onhand_status | 5 |
| Contraintes et analyse | stock_buffer_capacity_limit, stock_buffer_route, stock_buffer_sales_analysis, ddmrp_report_part_flow_index | 4 |
Les menus : Inventaire ▸ Produits ▸ Stock Buffers, Inventaire ▸ Configuration ▸ DDMRP avec ses six référentiels — profils de tampon, facteurs de délai et de variabilité, méthode de calcul de la consommation, exécution, outil de remplacement —, Inventaire ▸ Plannification de la Demande ▸ Buffer Adjustments et Create Buffer Adjustments, Inventaire ▸ Analyse ▸ DDMRP Historique de Buffer, DDMRP Warnings et Parts Plan Flow Index, Achats ▸ Commandes ▸ PO lines On-Hand Status.
Pourquoi des tampons plutôt que des prévisions
Le calcul de besoins classique amplifie l'erreur : une prévision fausse à un niveau se propage à tous les niveaux inférieurs, et l'on commande des composants pour des produits qui ne se vendront pas. DDMRP coupe cette propagation en plaçant des tampons qui absorbent la variation.
ddmrp (version 18.0.1.10.2) crée les tampons de stock : un point de découplage dans la chaîne, dimensionné en zones — rouge, jaune, verte — selon un profil de tampon, un facteur de délai et un facteur de variabilité.
Le dimensionnement repose sur la consommation moyenne journalière, calculée selon une méthode paramétrable : moyenne glissante sur le passé, estimation à venir, ou combinaison. Référentiel sous Inventaire ▸ Configuration ▸ DDMRP ▸ Méthode de calcul de la CMJ.
Le module déclare huit dépendances externes : le calcul de besoins multiniveau, les estimations de demande, les sous-emplacements, les quantités en unité produit, un calendrier d'entrepôt, l'exclusion mutuelle d'actions planifiées, les achats, et un widget de graphique.
Le calendrier d'entrepôt dans les dépendances n'est pas anodin : un tampon se réapprovisionne en jours ouvrés, pas en jours calendaires. Un délai de cinq jours sur un pont de mai n'est pas un délai de cinq jours.
Les estimations de demande et le calcul multiniveau sont traités dans le calcul de besoins multiniveau.
Les ajustements : la saisonnalité
ddmrp_adjustment (version 18.0.2.0.0) permet d'appliquer des facteurs d'ajustement aux tampons par période, en s'appuyant sur les plages de dates. Menu sous Inventaire ▸ Plannification de la Demande ▸ Buffer Adjustments.
ddmrp_adjustment_matrix ajoute un assistant matriciel en deux dimensions pour les saisir — produits en lignes, périodes en colonnes.
L'assistant matriciel est ce qui rend l'ajustement praticable : saisir un facteur par produit et par mois dans un formulaire représente des centaines d'ouvertures d'écran. En matrice, c'est un tableau qu'on remplit.
Deux modules traitent l'inverse — ce qu'il faut exclure du calcul :
ddmrp_exclude_moves_adu_calcdéfinit des règles d'exclusion de mouvements du calcul de consommation moyenne.ddmrp_exclude_moves_adu_calc_sales(version 18.0.2.0.0) l'étend aux ventes.
L'exclusion est indispensable : une commande exceptionnelle, un transfert interne ou un rebut comptés comme de la consommation font gonfler tous les tampons du produit pour des mois.
Exploiter la méthode
ddmrp_warning ajoute des avertissements de configuration sur les tampons, avec un référentiel de définitions d'avertissement et un écran de consultation sous Inventaire ▸ Analyse ▸ DDMRP Warnings.
Les avertissements de configuration sont le module décisif d'un projet DDMRP : un tampon mal paramétré ne produit pas d'erreur, il produit un mauvais dimensionnement — invisible jusqu'à la rupture ou au surstock. Les détecter automatiquement est la seule approche tenable sur plusieurs centaines de tampons.
ddmrp_cron_actions_as_jobexécute le calcul des tampons en travaux de fond, etddmrp_warning_as_jobfait de même pour les avertissements.ddmrp_chatterajoute une conversation et des activités sur les tampons — le dimensionnement se discute, et la trace de la décision compte.ddmrp_history(version 18.0.1.2.0) stocke l'historique des tampons, consultable sous Inventaire ▸ Analyse ▸ DDMRP Historique de Buffer.
L'historique est la condition de l'amélioration : voir comment un tampon a évolué, et le confronter aux ruptures constatées, est la seule façon de régler la méthode.
Compléments, contraintes et analyse
ddmrp_coverage_daysimplémente les jours de couverture — l'autre façon de lire un tampon : non pas en quantité, mais en durée.ddmrp_packagingintègre les conditionnements : un tampon se réapprovisionne par cartons ou par palettes, pas à l'unité.ddmrp_product_replacefournit un outil assisté de remplacement de produit, avec son menu en configuration ;ddmrp_packaging_product_replaceest la colle entre les deux précédents.ddmrp_purchase_hide_onhand_statusremplace l'affichage de l'état de stock sur les achats par un bouton.
Le remplacement de produit est un cas de fin de vie : une référence est remplacée par une autre, et le tampon de la nouvelle doit hériter de l'historique de consommation de l'ancienne — sinon il démarre à zéro et provoque une rupture.
Les contraintes physiques
stock_buffer_capacity_limitgarantit que les limites de stockage ne sont jamais dépassées : un tampon ne peut pas demander plus que ce que l'emplacement peut recevoir.stock_buffer_routepermet de forcer une route au réapprovisionnement depuis un tampon.stock_buffer_sales_analysisdonne accès à l'analyse des ventes depuis un tampon.ddmrp_report_part_flow_indexfournit un rapport d'indice de flux des pièces, avec son référentiel de groupes de flux.
La limite de capacité est le garde-fou qui manque le plus souvent : la méthode calcule une zone verte optimale sans savoir que l'emplacement ne contient que douze palettes. Le résultat est un ordre d'approvisionnement qu'on ne peut pas stocker.
Limites connues
- Huit dépendances externes pour le seul module central : DDMRP est un projet lourd, comparable à Shopfloor en coût d'installation et de maintenance.
- La méthode précède l'outil : DDMRP suppose d'avoir identifié les points de découplage de sa chaîne. Installer les modules sans ce travail produit des tampons partout, ce qui est l'inverse de la méthode.
- Le calcul de consommation moyenne journalière est le paramètre critique : sa méthode, sa période et ses exclusions déterminent tout le dimensionnement.
- Les exclusions de mouvements sont indispensables : sans elles, une commande exceptionnelle fait gonfler les tampons pour des mois.
- Les avertissements de configuration sont à installer dès le départ : un tampon mal paramétré ne produit pas d'erreur, il produit un mauvais dimensionnement invisible.
- Le calcul en travaux de fond exige une infrastructure de travailleurs surveillée : sur plusieurs centaines de tampons, le calcul synchrone n'est pas tenable.
ddmrp_adjustment_matrixdépend d'un widget de matrice (web_widget_x2many_2d_matrix), seul module AGPL-3 du dépôt.- La limite de capacité suppose les capacités de stockage renseignées : sans elles, elle ne contraint rien.
Identité technique
Les dix-neuf modules viennent du dépôt OCA ddmrp, branche 18.0 — dont tous les modules sont désormais documentés ici. Dix-huit sont en LGPL-3, ddmrp_adjustment_matrix est en AGPL-3. Les dépendances externes du module central : mrp_multi_level, stock_demand_estimate, stock_location_is_sublocation, stock_move_quantity_product_uom, stock_warehouse_calendar, base_cron_exclusion, purchase_stock et web_widget_bokeh_chart. Puis date_range pour les ajustements, queue_job pour les travaux de fond, sale et sales_team pour l'analyse.
Voir aussi le calcul de besoins multiniveau et routage, valorisation et rebut du stock.
Questions fréquentes
Qu'est-ce que DDMRP apporte par rapport au calcul de besoins classique ?
Le calcul classique part des prévisions et amplifie l'erreur : une prévision fausse à un niveau se propage à tous les niveaux inférieurs. DDMRP coupe cette propagation en plaçant des tampons de stock aux points de découplage, réapprovisionnés sur consommation réelle. Le module ddmrp les dimensionne par zones selon un profil.
Peut-on tenir compte de la saisonnalité dans les tampons ?
Oui : ddmrp_adjustment applique des facteurs par période, et ddmrp_adjustment_matrix les fait saisir dans une matrice produits × périodes. Sans la matrice, saisir un facteur par produit et par mois représente des centaines d'ouvertures d'écran — l'ajustement est alors abandonné.
Pourquoi exclure certains mouvements du calcul ?
Parce qu'une commande exceptionnelle, un transfert interne ou un rebut comptés comme de la consommation font gonfler tous les tampons du produit pour des mois. ddmrp_exclude_moves_adu_calc définit les règles d'exclusion, et son extension les applique aux ventes.
Comment détecter un tampon mal paramétré ?
Avec ddmrp_warning, qui ajoute des avertissements de configuration et leur référentiel de définitions. C'est le module décisif : un tampon mal paramétré ne produit pas d'erreur, il produit un mauvais dimensionnement — invisible jusqu'à la rupture ou au surstock. Sur plusieurs centaines de tampons, la détection automatique est la seule approche tenable.
DDMRP peut-il demander plus de stock que l'entrepôt ne peut en contenir ?
Oui, et c'est le garde-fou qui manque le plus souvent — la méthode calcule une zone verte optimale sans connaître la capacité physique. stock_buffer_capacity_limit garantit que les limites de stockage ne sont jamais dépassées, à condition que ces capacités soient renseignées.
Se faire accompagner
DDMRP est une méthode avant d'être un logiciel : elle suppose d'avoir identifié les points de découplage de sa chaîne — là où un tampon absorbe la variation plutôt que de la transmettre. Installer les dix-neuf modules sans ce travail produit des tampons partout, c'est-à-dire exactement ce que la méthode cherche à éviter.
Nous commençons donc par cartographier la chaîne et par trancher la méthode de calcul de consommation avec ses exclusions, avant d'installer quoi que ce soit. Puis les avertissements de configuration, dès le premier tampon. Voir les prestations d'Atalios Consulting ou demander un rappel.
Pour aller plus loin
En résumé
Le calcul de besoins classique part des prévisions et amplifie l'erreur. DDMRP place des tampons aux points de découplage et les réapprovisionne sur consommation réelle. Dix-neuf modules portent la méthode — mais la méthode précède l'outil. Parlons de votre chaîne d'approvisionnement.