mrp.workorder : champs, relations et API
Le modèle mrp.workorder (« Ordre de travail ») est un modèle persistant déclaré par le module Fabrication, puis enrichi par 2 autres modules. Il expose 90 champs, dont 60 déclarés directement sur le modèle ; 7 champs d'autres modèles pointent vers lui. Retrouvez ci-dessous chaque champ avec son nom technique, son type, son libellé français et ses relations, puis un exemple d'appel à l'API JSON-2 d'Odoo 20.
Fiche d'identité
- Nom technique
mrp.workorder- Libellé
- Ordre de travail
- Type
- Persistant (models.Model)
- Table SQL
mrp_workorder- Module d'origine
- Fabrication (
mrp) - Étendu par
- mrp_account, project_mrp_account
- Tri par défaut (_order)
date_start, sequence, id- Hérite de (mixins)
- mail.threadmail.activity.mixinproduct.catalog.mixin
Champs du modèle
60 champs propres, 24 hérités des mixins et 6 champs automatiques de l'ORM. Cliquez sur un nom pour obtenir le lien direct vers le champ.
90 champs affichés sur 90
| Nom technique | Libellé | Type | Détails |
|---|---|---|---|
| allow_workorder_dependencies | Allow Workorder Dependencies | boolean | related : |
| backorder_count | Count of linked backorders | integer | calculé |
| barcode | Code-barres | char | calculé, stocké |
| blocked_by_workorder_ids | Bloqué par | many2many | |
| color | Couleur | integer | related : |
| company_id | Société | many2one | related : |
| cost | Coût Coût réel total de l'ordre de travail basé sur la durée et le coût horaire. | float | calculé, stocké |
| cost_mode | Mode coût | selection | Valeurs : |
| costs_hour | Coût horaire | float | |
| date_finished | Fin | datetime | calculé, stocké |
| date_start | Date planifiée | datetime | calculé, stocké |
| decoration_dates | Dates de décoration | char | calculé |
| duration | Durée réelle | float | calculé, stocké |
| duration_expected | Durée prévue | float | calculé, stocké |
| duration_percent | Déviation de durée (%) | integer | lecture seulecalculé, stocké |
| duration_unit | Durée par unité | float | lecture seulecalculé, stocké |
| has_conflicts | A des conflits | boolean | calculé |
| has_planning_issues | A des problèmes de planification | boolean | calculé |
| is_planned | Est planifié | boolean | calculé |
| is_produced | A été fabriqué | boolean | calculé |
| is_user_working | L'utilisateur actuel travaille-t-il ? | boolean | calculé |
| last_working_user_id | Dernier utilisateur ayant travaillé sur l'ordre de travail. | many2one | calculé |
| leave_id | Quitter Créneau dans le calendrier du poste de travail une fois planifié | many2one | |
| mo_analytic_account_line_ids | Ligne de compte analytique OF | many2many | ajouté par Accounting - MRP ( |
| move_finished_ids | Mouvements terminés | one2many | inverse : |
| move_line_ids | Mouvements à suivre Mouvements d'inventaire pour lesquels vous devez scanner un numéro de lot dans cet ordre de travail | one2many | inverse : |
| move_raw_ids | Mouvements bruts | one2many | inverse : |
| name | Ordre de travail | char | requis |
| needed_by_workorder_ids | Blocs | many2many | |
| operation_id | Opération | many2one | |
| picking_type_id | Type de transfert | many2one | related : |
| priority | Priorité | selection | related : |
| product_id | Produit | many2one | related : |
| product_tracking | Suivi de produit | selection | related : |
| product_variant_attributes | Product Variant Attributes | many2many | related : |
| production_availability | Disponibilité des stocks | selection | lecture seule related : |
| production_bom_id | Production Bom | many2one→ mrp.bom | related : |
| production_date | Date de production | datetime | calculé, stocké |
| production_id | Ordre de fabrication | many2one | requislecture seule |
| production_lot_producing_id | Production Lot Producing | many2many | related : |
| production_reference_ids | Références | many2many | lecture seule related : |
| production_state | Statut de production | selection | lecture seule related : |
| progress | Progrès réalisé (%) | float | calculé |
| properties | Propriétés | properties | |
| qty_produced | Quantité faite Quantity already processed in this work order. If continuous production is active on the bill of materials, recording quantities will unblock the next operation. | float | |
| qty_producing | Quantité actuellement produite | float | calculé |
| qty_production | Quantité originale à produire | float | lecture seule related : |
| qty_ready | Quantité prête | float | calculé |
| qty_remaining | Quantité à produire | float | calculé |
| qty_reported_from_previous_wo | Quantité transférée La quantité déjà fabriquée en attente d'allocation dans la chaîne des reliquats. | float | |
| qty_to_produce | Quantité à produire The quantity to produce in this workorder in the backorders chain. | float | calculé |
| remaining_time | Temps de travail restant Le temps restant pour terminer cet ordre de travail. | float | calculé |
| sequence | Séquence | integer | calculé, stocké |
| state | Statut | selection | calculé, stocké Valeurs : |
| time_ids | Temps | one2many | inverse : |
| uom_id | Uom | many2one→ uom.uom | related : |
| wc_analytic_account_line_ids | Ligne de compte analytique poste de travail | many2many | ajouté par Accounting - MRP ( |
| workcenter_id | Poste de travail | many2one | requis |
| working_state | Statut du poste de travail | selection | related : |
| working_user_ids | Utilisateur travaillant sur cet ordre de travail. | one2many | calculé |
| activity_calendar_event_id | Activité suivante de l'événement du calendrier | many2one | calculé hérité de mail.activity.mixin |
| activity_date_deadline | Date limite de l'activité à venir | date | lecture seulecalculé hérité de mail.activity.mixin |
| activity_exception_decoration | Indicateur d’exception d’activité Type d'activité d'exception enregistrée. | selection | calculé Valeurs : hérité de mail.activity.mixin |
| activity_exception_icon | Icône Icône pour indiquer une activité d'exception. | char | calculé hérité de mail.activity.mixin |
| activity_ids | Activités | one2many | inverse : hérité de mail.activity.mixin |
| activity_plans_ids | Plans d'activité | many2many | calculé hérité de mail.activity.mixin |
| activity_state | Statut de l'activité Status based on activities Overdue: Due date is already passed Today: Activity date is today Planned: Future activities. | selection | calculé Valeurs : hérité de mail.activity.mixin |
| activity_summary | Résumé de l'activité suivante | char | related : hérité de mail.activity.mixin |
| activity_type_icon | Icône de type d'activité | char | related : hérité de mail.activity.mixin |
| activity_type_id | Type d'activités à venir | many2one | related : hérité de mail.activity.mixin |
| activity_user_id | Utilisateur responsable | many2one | lecture seulecalculé hérité de mail.activity.mixin |
| has_message | A un message | boolean | calculé hérité de mail.thread |
| message_attachment_count | Nombre de pièces jointes | integer | calculé hérité de mail.thread |
| message_follower_ids | Abonnés | one2many | inverse : hérité de mail.thread |
| message_has_error | Erreur d'envoi du message Si coché, certains messages ont une erreur de livraison. | boolean | calculé hérité de mail.thread |
| message_has_error_counter | Nombre d'erreurs Nombre de messages avec des erreurs d'envoi | integer | calculé hérité de mail.thread |
| message_has_sms_error | Erreur d'envoi SMS Si coché, certains messages ont une erreur de livraison. | boolean | calculé hérité de mail.thread |
| message_ids | Messages | one2many | inverse : hérité de mail.thread |
| message_is_follower | Est un abonné | boolean | calculé hérité de mail.thread |
| message_needaction | Nécessite une action Si coché, de nouveaux messages demandent votre attention. | boolean | calculé hérité de mail.thread |
| message_needaction_counter | Nombre d'actions Nombre de messages nécessitant une action | integer | calculé hérité de mail.thread |
| message_partner_ids | Abonnés (Partenaires) | many2many | calculé hérité de mail.thread |
| my_activity_date_deadline | Échéance de mon activité | date | lecture seulecalculé hérité de mail.activity.mixin |
| rating_ids | Évaluations | one2many | inverse : hérité de mail.thread |
| create_date | Créé le | datetime | lecture seuleautomatique |
| create_uid | Créé par | many2one | lecture seuleautomatique |
| display_name | Nom affiché | char | lecture seulecalculéautomatique |
| id | ID | integer | lecture seuleautomatique |
| write_date | Dernière mise à jour le | datetime | lecture seuleautomatique |
| write_uid | Dernière mise à jour par | many2one | lecture seuleautomatique |
Relations
Modèles liés depuis ce modèle
- account.analytic.line : mo_analytic_account_line_ids, wc_analytic_account_line_ids
- mrp.bom : production_bom_id
- mrp.production : production_id
- mrp.routing.workcenter : operation_id
- mrp.workcenter : workcenter_id
- mrp.workcenter.productivity : time_ids
- mrp.workorder : blocked_by_workorder_ids, needed_by_workorder_ids
- product.product : product_id
- product.template.attribute.value : product_variant_attributes
- res.company : company_id
- res.users : last_working_user_id, working_user_ids
- resource.calendar.leaves : leave_id
- stock.lot : production_lot_producing_id
- stock.move : move_finished_ids, move_raw_ids
- stock.move.line : move_line_ids
- stock.picking.type : picking_type_id
- stock.reference : production_reference_ids
- uom.uom : uom_id
Champs d'autres modèles qui pointent ici
- expiry.picking.confirmation : workorder_id
- mrp.production.serials : workorder_id
- mrp.workcenter.productivity : workorder_id
- mrp.workorder : blocked_by_workorder_ids, needed_by_workorder_ids
- stock.move : workorder_id
- stock.move.line : workorder_id
Lire ce modèle par l'API
Exemple d'appel à l'API JSON-2 d'Odoo 20 : lecture des cinq premiers enregistrements avec des champs réels du modèle. Remplacez l'instance, la base et la clé API par les vôtres.
curl -X POST "https://votre-instance.odoo.com/json/2/mrp.workorder/search_read" \
-H "Authorization: bearer $ODOO_API_KEY" \
-H "X-Odoo-Database: votre-base" \
-H "Content-Type: application/json" \
-d '{"domain":[],"fields":["name","production_id","workcenter_id","state","company_id"],"limit":5}'import requests
BASE_URL = "https://votre-instance.odoo.com/json/2"
headers = {"Authorization": f"bearer {API_KEY}", "X-Odoo-Database": "votre-base"}
res = requests.post(
f"{BASE_URL}/mrp.workorder/search_read",
headers=headers,
json={"domain": [], "fields": ["name","production_id","workcenter_id","state","company_id"], "limit": 5},
)
res.raise_for_status()
print(res.json())- L'accès à l'API externe est réservé à la formule Custom d'Odoo.
- XML-RPC et JSON-RPC seront retirés dans Odoo 22 (automne 2028) : préférez JSON-2.
- Les droits d'accès et règles d'enregistrement de l'utilisateur de la clé s'appliquent.
Citer cet outil
Vous rédigez un tutoriel, une documentation interne ou une réponse sur un forum ? Copiez ce lien pour renvoyer vos lecteurs vers la fiche à jour.
<a href="https://aidoo.ai/fr/outils/explorateur-modeles-odoo/mrp-workorder">mrp.workorder (Odoo 20.0)</a>Sources
- Code source du modèle sur GitHub
- Documentation Odoo 20 : ORM API
- Documentation Odoo 20 : API externe JSON-2
Données vérifiées le 25 septembre 2026 · Odoo 20.0 Community
Vous avez un projet Odoo ou souhaitez exploiter votre ERP avec l'IA ? Échangeons
Intégration, développement de modules, connexion de Claude ou ChatGPT à vos données : décrivez-nous votre contexte, nous vous répondons sous 24 heures ouvrées.