Se connecte aux systèmes ERP et MES comme

Intégrations / ERP / Odoo

Odoo propose-t-il un ordonnancement de production ? Comprendre le bouton Planifier et savoir quand ajouter SkyPlanner APS

Odoo propose un ordonnancement de production élémentaire, qui respecte la capacité réelle des machines et du personnel. Dans Odoo Manufacturing, le bouton Planifier place chaque ordre de fabrication dans le premier créneau libre du calendrier de son poste de charge. Deux ordres planifiés ne se chevauchent donc jamais sur un même poste. Mais Odoo ne planifie qu’un ordre de production à la fois, en tenant compte d’une seule contrainte. Il ne recalcule pas la séquence, n’optimise pas et ne replanifie pas l’ensemble des ordres. Les usines qui ont besoin d’ordonnancer tous leurs ordres selon les échéances et les réglages utilisent SkyPlanner APS en complément d’Odoo.

Diagramme de Gantt de SkyPlanner APS montrant les opérations ordonnancées par poste de travail, avec une liste des commandes en dessous.

Dans sa communication commerciale, Odoo affirme que vous pouvez « plan resources with finite capacity planning » (ordonnancer la production en respectant la capacité des ressources) (odoo.com/app/manufacturing). Voici ce que cela signifie dans Odoo 19.0, d’après la documentation officielle et le code source : le fonctionnement du bouton Planifier, ses limites et les cas où il suffit à vos besoins.

Comment Odoo planifie les ordres de fabrication, étape par étape

1. Activer les ordres de fabrication et configurer les postes de charge

Allez dans Manufacturing > Configuration > Settings et activez Work Orders. Work Centers apparaît alors sous Configuration. Chaque poste de charge (mrp.workcenter) comporte les champs utilisés pour la planification :

ChampRôle dans la planification
Working HoursCalendrier de disponibilité du poste de charge. Par défaut : « Standard 40 hours/week », du lundi au vendredi
Time EfficiencyPourcentage qui réduit ou allonge la durée de chaque ordre de fabrication sur ce poste de charge
Setup Time / Cleanup TimeMinutes ajoutées avant et après chaque ordre de fabrication
Alternative WorkcentersAutres postes de charge que la commande Plan peut utiliser à la place
Onglet Product CapacitiesNombre de pièces par cycle et temps de réglage et de nettoyage en minutes propres à chaque produit (mrp.workcenter.capacity)
OEE TargetObjectif de performance pour les rapports, non utilisé comme donnée de planification
Allowed EmployeesPersonnes autorisées à travailler sur ce poste. Il s’agit d’un filtre, pas d’une capacité

2. Les opérations dans la nomenclature

Il n’existe pas de gamme de fabrication de référence partagée. Les opérations sont définies dans chaque nomenclature, sous l’onglet Operations (mrp.routing.workcenter). Chaque opération comporte un champ Work Center et un mode de calcul défini dans Duration Computation : soit une durée fixe que vous saisissez, soit une durée calculée à partir des derniers ordres de fabrication (10 par défaut). La durée prévue correspond à la somme des temps de réglage et de nettoyage et du nombre de cycles multiplié par le temps de cycle. Seule la partie correspondant aux cycles est divisée par la valeur de Time Efficiency (mrp_routing.py).

Lorsque l’option Work Order Dependencies est activée, une opération peut être bloquée par une autre via Blocked By. La documentation Odoo précise : « A blocked work order is scheduled at the end of the time period specified in the Expected Duration field of the work order that precedes it. » (Un ordre de fabrication bloqué est planifié à la fin de la période indiquée dans le champ Expected Duration de l’ordre qui le précède.) (source)

3. Confirmer l’ordre de production, puis cliquer sur Planifier

La confirmation d’un ordre de production (mrp.production) crée les ordres de fabrication correspondants (mrp.workorder). Un clic sur Plan dans l’ordre de production lance la planification à partir des derniers ordres de fabrication : le système remonte récursivement les dépendances pour planifier d’abord chaque ordre bloquant. Chaque ordre est ensuite placé dans le temps, après ses prédécesseurs. Pour chaque ordre de fabrication, Odoo :

  1. Retient la date la plus tardive entre le début de l’ordre de production, l’instant présent et la fin des ordres de fabrication bloquants.
  2. Teste le poste de charge principal et chacun des postes de charge de remplacement.
  3. Recherche dans chaque calendrier, à partir de cette date, le premier créneau libre assez long pour la durée prévue.
  4. Choisit le poste de charge qui permet de terminer le plus tôt et réserve le créneau en créant un enregistrement resource.calendar.leaves dans ce calendrier.

Le code source de la version 19.0 énonce clairement la règle : « The available interval is disjoinct with all other workorders planned on this workcenter » (Le créneau disponible ne chevauche aucun autre ordre de fabrication planifié sur ce poste de charge) (mrp_workcenter.py). C’est en cela que la capacité est finie. Si un ordre de fabrication rencontre une période de fermeture, il reprend au prochain créneau travaillé. Si aucun créneau ne convient dans les 700 jours, l’horizon de recherche par défaut, la planification s’arrête avec le message « Impossible to plan the workorder. » (Impossible de planifier l’ordre de fabrication.)

4. Indisponibilités et postes de remplacement

Avec l’application Time Off et le mode développeur, vous pouvez bloquer un poste de charge pour une maintenance ou un jour férié. Le bouton Planifier affecte alors les ordres de fabrication aux postes de charge de remplacement. Sans poste de remplacement, la documentation Odoo indique : « work orders begin to pile up at the work center until it is operational again » (les ordres de fabrication commencent à s’accumuler sur le poste de charge jusqu’à sa remise en service) (source).

5. Vérifier et ajuster

Les menus Fabrication > Planification > Planification par production et Planification par poste de charge ouvrent les vues de planification des ordres de fabrication. Enterprise propose un diagramme de Gantt avec glisser-déposer. Community propose des vues en liste, calendrier, tableau croisé dynamique et graphique. La documentation décrit un ajustement manuel : « Times and planned work centers can be changed by clicking to access the individual work order. » (Les horaires et les postes de charge prévus peuvent être modifiés en cliquant pour accéder à chaque ordre de fabrication.) (source)

Les limites d’Odoo

  • Premier arrivé, premier servi. Le bouton Planifier traite les ordres de production un par un : le premier planifié prend les premiers créneaux. Si vous en sélectionnez plusieurs, Odoo les planifie dans son ordre par défaut : priorité, puis date de début. Aucun mécanisme n’arbitre entre échéances et changements de série, ni ne décale un ordre déjà planifié pour faire passer un ordre plus urgent.
  • Aucun séquencement selon les réglages. Setup Time ajoute une durée fixe à chaque ordre de fabrication : le même nombre de minutes, quelle que soit l’opération précédente. Odoo ne dispose d’aucune matrice de changement de série et ne regroupe pas les opérations similaires pour éviter ces changements.
  • Une seule contrainte. Seul le calendrier du poste de charge contraint la planification. Les opérateurs ne sont pris en compte que par le filtre Allowed Employees. Lorsque le bouton Planifier réserve un créneau, il ne vérifie ni les outils ni la disponibilité des matières. Les réservations de composants et les dates des commandes fournisseurs servent uniquement au réapprovisionnement.
  • Le MRP ne tient pas compte de la capacité. Les règles de réapprovisionnement et le MTO créent les ordres de production à partir du champ Manuf. Lead Time de la nomenclature, exprimé en jours calendaires. La documentation précise : « Lead times do not consider weekends, holidays, or work center capacity » (Les délais ne tiennent pas compte des week-ends, des jours fériés ni de la capacité des postes de charge) (source). Les échéances des ordres de production et les dates de livraison promises sont calculées en jours calendaires, et non à partir de la file d’attente réelle.
  • Le MPS reste une liste de suggestions. Le Master Production Schedule (Enterprise) ne tient pas compte de la charge non plus. « The MPS only suggests the amount of product to be replenished, requiring the user to actually create the replenishing POs/MOs. » (Le MPS suggère uniquement la quantité de produit à réapprovisionner ; l’utilisateur doit créer lui-même les commandes fournisseurs ou les ordres de production correspondants.) (source)
  • Aucune replanification automatique. Une panne ou une commande urgente ne décale rien automatiquement. Dès qu’un ordre de fabrication a démarré, Odoo refuse de déplanifier l’ordre de production : « Some work orders have already started, so you cannot unplan this manufacturing order. » (Certains ordres de fabrication ont déjà démarré ; vous ne pouvez donc pas déplanifier cet ordre de production.) (mrp_production.py)
  • Les sous-ensembles sont planifiés séparément. Les nomenclatures multiniveaux créent des ordres de production enfants distincts, chacun planifié séparément. Le planificateur doit les planifier dans le bon ordre pour que le sous-ensemble soit prêt lorsque l’opération parente en a besoin.
  • Le Gantt et le MPS sont réservés à Enterprise. La page des éditions indique que les fonctions « Scheduling » (ordonnancement) et « Shopfloor » (atelier) de Manufacturing sont réservées à Enterprise (odoo.com/page/editions). Dans Community, les planificateurs travaillent à partir de listes et d’un calendrier.

Quand la planification native d’Odoo suffit

Le bouton Planifier d’Odoo répond au besoin lorsque :

  • Le choix du poste de charge est évident pour chaque opération et les volumes sont modérés.
  • Peu d’ordres sollicitent le même goulot d’étranglement : la règle du premier arrivé, premier servi donne donc des dates acceptables.
  • Vos machines de remplacement sont identiques : les postes de charge de remplacement et Time Off permettent donc de gérer la plupart des aléas.
  • Les réglages sont courts ou ne dépendent pas de l’opération précédente.
  • Un planificateur peut consulter la planification par poste de charge une fois par jour et régler manuellement les quelques conflits.

Si votre usine correspond à ce profil, concentrez vos efforts sur la qualité des données. Attribuez un calendrier à chaque poste de charge et renseignez des valeurs réalistes pour Setup Time et Cleanup Time. Utilisez des durées fixes lorsque l’historique est trop irrégulier, activez les dépendances et planifiez les ordres de production par ordre de priorité.

Quand un outil d’ordonnancement de production devient nécessaire

Le bouton Planifier ne suffit plus lorsque plusieurs de ces situations se présentent :

  • De nombreux ordres sollicitent deux goulots d’étranglement ou plus, et les échéances doivent dicter la séquence.
  • Le réglage dépend de l’opération précédente : l’ordre des opérations influe donc sur le volume produit.
  • Les effectifs et les horaires d’équipe contraignent autant la planification que les machines.
  • L’arrivée des matières détermine quand une opération peut démarrer.
  • Les commandes urgentes, les pannes et les retards de livraison imposent de replanifier plusieurs fois par semaine.
  • Le service commercial a besoin de dates de livraison fondées sur la file d’attente réelle, et non sur Manuf. Lead Time.

Les critères à vérifier

  • Un ordonnancement de production qui respecte la capacité de tous les postes de travail simultanément, en tenant compte des horaires d’équipe, du personnel et des absences.
  • Un séquencement de l’ensemble des ordres selon les échéances et les priorités, et non ordre de production par ordre de production.
  • Une matrice des temps de changement de série tenant compte de la séquence, pour que le moteur choisisse l’ordre des opérations qui minimise les réglages.
  • Les outils et les équipes comme contraintes : un outil partagé utilisé sur une machine n’est pas disponible pour une autre, et une opération peut nécessiter plusieurs opérateurs simultanément.
  • Un ordonnancement tenant compte des matières, avec vérification des stocks et des commandes fournisseurs attendues.
  • Des postes de travail de remplacement que le moteur choisit en fonction de l’ensemble du planning, et non ordre de fabrication par ordre de fabrication.
  • La gestion des produits multiniveaux, pour que les sous-ensembles soient terminés avant que la fabrication du produit parent en ait besoin.
  • Une replanification automatique à mesure que la production avance ou que les ordres changent.
  • Un Gantt pour les planificateurs et une file d’opérations pour les opérateurs, y compris sur Community.
  • Une répartition claire des responsabilités avec Odoo. Dans Odoo, les dates des ordres de fabrication sont calculées à partir des créneaux réservés dans le calendrier. Un nouveau clic sur Plan les écrase. Convenez que l’ordonnanceur fait autorité sur le séquencement, réécrivez les dates et les postes de charge via mrp.workorder et excluez les ordres de fabrication déjà en cours.
  • Une API adaptée à votre version et à votre forfait. Odoo 19 dispose de l’External JSON-2 API. La suppression de XML-RPC et JSON-RPC est prévue dans Odoo 22 (Odoo Online 21.1). L’accès aux API externes est réservé aux forfaits Custom et n’est pas disponible avec One App Free ou Standard (documentation des API externes). Les modules personnalisés nécessitent Odoo.sh ou un hébergement sur site (tarifs Odoo).

Les solutions se répartissent en quatre catégories :

  • La planification native d’Odoo comprend le bouton Planifier et, dans Enterprise, la vue Gantt.
  • Les modules complémentaires intégrés au client Odoo améliorent le tableau de planification ou la logique d’affectation aux créneaux. Ils sont maintenus par un partenaire Odoo.
  • Les moteurs de planification de la chaîne logistique et les suites APS pour grandes entreprises sont connectés dans le cadre d’un projet de déploiement et exploités par une équipe de planification dédiée.
  • Les APS cloud avec exécution en atelier, catégorie à laquelle appartient SkyPlanner, ordonnancent automatiquement chaque ressource en complément d’Odoo. Ils replanifient au fil des évolutions de la production et mettent le planning à disposition des opérateurs.

La place de SkyPlanner

SkyPlanner APS répond à chacune des limites citées plus haut :

  • Le premier arrivé, premier servi laisse place à un véritable séquencement. En quelques secondes, le moteur Arcturus AI ordonnance tous les ordres ouverts ensemble en respectant la capacité disponible, selon la date de fin, la priorité, la priorité du client, Fast Track et Dynamic Priorities.
  • Des temps de réglage réduits, plutôt que fixes. Une matrice des temps de réglage consigne le temps de changement de série entre chaque paire de produits. Ce temps peut varier selon le sens du changement : du bleu au rouge, 30 minutes ; du rouge au bleu, 60. Le moteur d’ordonnancement choisit la séquence qui minimise les réglages et enchaîne les opérations similaires.
  • Toutes les contraintes sont prises en compte ensemble. Postes de travail, équipes, personnel, absences, outils et matières sont vérifiés dans un même planning. Les outils sont gérés à capacité finie : un montage utilisé sur une machine ne peut donc pas être réservé sur une autre au même moment. Une opération peut nécessiter plusieurs opérateurs à la fois, et le moteur se tourne vers d’autres machines ou d’autres personnes lorsque la ressource principale est indisponible. Les groupes de postes de travail, les rendements et la répartition d’une opération sur plusieurs postes font partie du même modèle. Le contrôle des matières couvre le stock disponible et les lignes ouvertes de purchase.order : les composants commandés sont considérés comme disponibles à la date de livraison de la commande d’achat, et le stock est mis à jour lorsque celle-ci est marquée comme livrée.
  • Des sous-ensembles prêts au bon moment. Les sous-ensembles et les produits à plusieurs niveaux sont ordonnancés pour que les pièces soient disponibles au moment où l’assemblage en a besoin.
  • Autopilot remplace la replanification manuelle. Autopilot recalcule automatiquement l’ordonnancement lorsque la production évolue, en respectant vos verrouillages, Running Time Lock et vos priorités.
  • Un Gantt et une interface atelier pour Community. Les planificateurs modifient le planning dans un diagramme de Gantt interactif. Les opérateurs consultent leur file d’opérations et enregistrent leur travail sur téléphone ou tablette avec Mobile Confirmations, Production Timer et Quick Log Mode.

Odoo reste le système de référence pour les produits, les nomenclatures, les stocks, les achats et la comptabilité. SkyPlanner échange des données avec Odoo dans les deux sens via l’External JSON-2 API, ou via XML-RPC et JSON-RPC pour les versions plus anciennes :

  • Données entrantes : mrp.production, mrp.workorder, mrp.workcenter, mrp.bom et lignes ouvertes de purchase.order.
  • Données renvoyées : dates de début et de fin planifiées et poste de charge choisi, au moyen d’un write sur chaque mrp.workorder (date_start, date_finished, workcenter_id). Cette écriture déplace le créneau réservé dans le calendrier d’Odoo : les vues de planification d’Odoo affichent donc les dates de SkyPlanner.
  • Atelier : les confirmations des opérateurs sont enregistrées sous forme de Time Logs mrp.workcenter.productivity.

Les webhooks de SkyPlanner transmettent les modifications du planning dès qu’elles surviennent. Chaque usine utilise Odoo différemment, avec ses propres opérations, calendriers et modules personnalisés. L’équipe SkyPlanner adapte l’intégration à votre configuration lors de la mise en route et en assure le support après la mise en production. Votre partenaire Odoo ou vos développeurs peuvent également s’appuyer sur l’API REST documentée de SkyPlanner (référence de l’API). Une clé API suffit pour démarrer. Vous trouverez les détails de l’API et des fonctionnalités dans la documentation SkyPlanner.

Choisissez SkyPlanner lorsque de nombreux ordres sollicitent les mêmes goulots d’étranglement et que les dates d’échéance doivent déterminer leur séquence globale.

Choisissez SkyPlanner lorsque les changements de série dépendent de la séquence, ou que les outils partagés et les opérations nécessitant plusieurs opérateurs déterminent ce qui peut être lancé ensuite.

Choisissez SkyPlanner lorsque vous replanifiez plusieurs fois par semaine et souhaitez disposer d’un planning exploitable pour votre production en quelques semaines, plutôt qu’au terme d’un long projet.

Commencez avec un export CSV ou XLSX pendant l’essai gratuit de 30 jours (jusqu’à 20 postes de travail, sans carte bancaire) et comparez le planning de SkyPlanner aux résultats du bouton Plan. Ensuite, les tarifs démarrent à 199 € par mois, avec 5 postes de travail inclus, une facturation mensuelle et une résiliation possible à tout moment. Un devis pour l’intégration, adapté à vos processus et à vos besoins, vous est remis à l’avance avec votre offre d’abonnement : vous connaissez ainsi le coût total avant de commencer. La mise en œuvre est généralement achevée dans les semaines qui suivent le début de l’accompagnement. Consultez les tarifs et les fonctionnalités.

Pour en savoir plus, consultez SkyPlanner pour Odoo, le guide d’intégration à Odoo et les autres intégrations ERP.

Les industriels témoignent sur SkyPlanner

Kalle Kalliomäki, spécialiste de la chaîne logistique chez UTU, dans l’atelier de fabrication de tableaux électriques à Ulvila

2 hgagnées chaque semaine

« Avec SkyPlanner, notre planification de la production est passée des feuilles de calcul Excel à l’optimisation de la production en temps réel. »

Kalle Kalliomäki, spécialiste de la chaîne logistique
UTU · Tableaux et appareillages électriques

La planification de la production permet de gagner 2 heures de travail chaque semaine, et une nouvelle file d’opérations parvient à la ligne en quelques secondes.

Lire le témoignage d’UTU

Opérateurs en tenue de salle blanche sur une ligne de remplissage de flacons dans l’usine pharmaceutique de Laboratory & Allied à Nairobi

+90%d’efficacité en production

« L’efficacité en production a augmenté de 90%. »

Abdul Rucyinga, responsable informatique
Laboratory & Allied · Fabrication pharmaceutique

L’efficacité en production a augmenté de 90%, et il faut moins de 30 minutes pour établir un planning optimisé sur trois mois couvrant tous les postes de travail.

Lire le témoignage de Laboratory & Allied

Anu Järvinen, responsable de production chez Fredman Operations, à côté d’une cellule robotisée de palettisation à Rauma

6 moisde visibilité sur la capacité disponible pour les commerciaux

« SkyPlanner apporte une base solide et fiable à toute la planification de la production. »

Anu Järvinen, responsable de production
Fredman Operations · Papiers d’emballage aptes au contact alimentaire

Les commerciaux voient la capacité disponible six mois à l’avance. Les demandes de modification du planning, qui nécessitaient une heure ou plus, reçoivent désormais une réponse en quelques secondes.

Lire le témoignage de Fredman Operations

Un soudeur de KJH-Comp meule une structure en acier soudée dans l’usine d’Alahärmä

98%de livraisons dans les délais, contre environ 50% auparavant

« SkyPlanner joue un rôle décisif dans le maintien de notre taux de respect des délais de livraison. »

Hannu Lahtinen, directeur général
KJH-Comp · Tôlerie et fabrication en sous-traitance

Le taux de respect des délais de livraison est passé d’environ 50% à un niveau pouvant atteindre 98%, et l’ordonnancement ne nécessite plus qu’un responsable au lieu de deux.

Lire le témoignage de KJH-Comp

FAQ

Odoo Community permet-il d’ordonnancer la production ?

Oui, avec des fonctions de base. Community propose les ordres de production, les ordres de fabrication, les postes de charge et le bouton Plan, avec des vues en liste, calendrier, tableau croisé dynamique et graphique. La vue d’ordonnancement Gantt, Shop Floor et Master Production Schedule sont des fonctionnalités d’Enterprise. SkyPlanner apporte aux usines qui utilisent Community un Gantt et une file d’opérations pour les opérateurs.

Le MRP d’Odoo tient-il compte de la capacité des postes de charge ?

Non. Le réapprovisionnement utilise des délais exprimés en jours calendaires. La documentation d’Odoo précise que ces délais « do not consider weekends, holidays, or work center capacity » (ne tiennent pas compte des week-ends, des jours fériés ni de la capacité des postes de charge). La capacité n’est prise en compte que lorsque vous cliquez sur Plan dans un ordre de production.

Odoo peut-il exécuter plusieurs opérations simultanément sur un même poste de charge ?

Pas dans son outil de planification. Le code de la version 19.0 réserve pour chaque ordre de fabrication un créneau sans chevauchement avec les autres ordres de fabrication du même poste de charge. L’onglet Product Capacities définit le nombre de pièces par cycle au sein d’un même ordre de fabrication, et non des ordres de fabrication en parallèle.

Odoo gère-t-il les temps de réglage dépendant de la séquence ?

Non. Setup Time et Cleanup Time sont des durées fixes en minutes, définies par poste de charge ou par produit dans l’onglet Product Capacities. Odoo les ajoute à chaque ordre de fabrication, quelle que soit l’opération précédente. La matrice des temps de réglage de SkyPlanner enregistre les temps de changement de série par paire de produits et par sens de transition, puis séquence les opérations pour les minimiser.

Comment SkyPlanner APS se connecte-t-il à Odoo ?

SkyPlanner échange des données avec Odoo dans les deux sens via l’API externe JSON-2, ou via execute_kw sur XML-RPC ou JSON-RPC pour les versions 16.0 à 18.0. Les dates planifiées et les postes de charge sont écrits dans chaque mrp.workorder, et les temps enregistrés deviennent des Time Logs dans Odoo. L’équipe SkyPlanner configure l’intégration lors de la mise en route et en assure le support après la mise en production. Vous trouverez les détails dans le guide d’intégration Odoo.

Puis-je tester SkyPlanner avant de l’intégrer à Odoo ?

Oui. L’essai de 30 jours fonctionne avec des exports CSV ou XLSX issus des vues en liste d’Odoo, avec jusqu’à 20 postes de travail et sans carte bancaire. Vous comparez le planning de SkyPlanner aux résultats du bouton Plan avant de connecter quoi que ce soit. Démarrez l’essai gratuit ou contactez l’équipe commerciale.