Skip to Content
Odoo Menu
  • Prihlásiť sa
  • Vyskúšajte zadarmo
  • Aplikácie
    Financie
    • Účtovníctvo
    • Fakturácia
    • Výdavky
    • Tabuľka (BI)
    • Dokumenty
    • Podpis
    Predaj
    • CRM
    • Predaj
    • POS Shop
    • POS Restaurant
    • Manažment odberu
    • Požičovňa
    Webstránky
    • Tvorca webstránok
    • eShop
    • Blog
    • Fórum
    • Živý chat
    • eLearning
    Supply Chain
    • Sklad
    • Výroba
    • Správa životného cyklu produktu
    • Nákup
    • Údržba
    • Manažment kvality
    Ľudské zdroje
    • Zamestnanci
    • Nábor zamestnancov
    • Voľné dni
    • Hodnotenia
    • Odporúčania
    • Vozový park
    Marketing
    • Marketing sociálnych sietí
    • Email marketing
    • SMS marketing
    • Eventy
    • Marketingová automatizácia
    • Prieskumy
    Služby
    • Projektové riadenie
    • Pracovné výkazy
    • Práca v teréne
    • Helpdesk
    • Plánovanie
    • Schôdzky
    Produktivita
    • Tímová komunikácia
    • Schvalovania
    • IoT
    • VoIP
    • Znalosti
    • WhatsApp
    Third party apps Odoo Studio Odoo Cloud Platform
  • Priemyselné odvetvia
    Retail
    • Book Store
    • Clothing Store
    • Furniture Store
    • Grocery Store
    • Hardware Store
    • Toy Store
    Food & Hospitality
    • Bar and Pub
    • Reštaurácia
    • Fast Food
    • Guest House
    • Beverage distributor
    • Hotel
    Reality
    • Real Estate Agency
    • Architecture Firm
    • Konštrukcia
    • Estate Managament
    • Gardening
    • Property Owner Association
    Poradenstvo
    • Accounting Firm
    • Odoo Partner
    • Marketing Agency
    • Law firm
    • Talent Acquisition
    • Audit & Certification
    Výroba
    • Textile
    • Metal
    • Furnitures
    • Jedlo
    • Brewery
    • Corporate Gifts
    Health & Fitness
    • Sports Club
    • Eyewear Store
    • Fitness Center
    • Wellness Practitioners
    • Pharmacy
    • Hair Salon
    Trades
    • Handyman
    • IT Hardware and Support
    • Solar Energy Systems
    • Shoe Maker
    • Cleaning Services
    • HVAC Services
    Iní
    • Nonprofit Organization
    • Environmental Agency
    • Billboard Rental
    • Photography
    • Bike Leasing
    • Software Reseller
    Browse all Industries
  • Komunita
    Vzdelávanie
    • Tutoriály
    • Dokumentácia
    • Certifikácie
    • Školenie
    • Blog
    • Podcast
    Empower Education
    • Vzdelávací program
    • Scale Up! Business Game
    • Visit Odoo
    Softvér
    • Stiahnuť
    • Porovnanie Community a Enterprise vierzie
    • Releases
    Spolupráca
    • Github
    • Fórum
    • Eventy
    • Preklady
    • Staň sa partnerom
    • Services for Partners
    • Register your Accounting Firm
    Služby
    • Nájdite partnera
    • Nájdite účtovníka
    • Meet an advisor
    • Implementation Services
    • Zákaznícke referencie
    • Podpora
    • Upgrades
    ​Github Youtube Twitter Linkedin Instagram Facebook Spotify
    +1 (650) 691-3277
    Získajte demo
  • Cenník
  • Pomoc

Odoo is the world's easiest all-in-one management software.
It includes hundreds of business apps:

  • CRM
  • e-Commerce
  • Účtovníctvo
  • Sklady
  • PoS
  • Projektové riadenie
  • MRP
All apps
You need to be registered to interact with the community.
All Posts People Badges
Tagy (View all)
odoo accounting v14 pos v15
About this forum
You need to be registered to interact with the community.
All Posts People Badges
Tagy (View all)
odoo accounting v14 pos v15
About this forum
Pomoc

Automated Action for Creating Work Order

Odoberať

Get notified when there's activity on this post

This question has been flagged
workorderautomation
2 Replies
1271 Zobrazenia
Avatar
James Gaspelin

Hi all!

I have multiple operators that utilize the shop floor app only, and sometimes they have to add in work/tasks that would be outside of normal planning.


I would like to add a dummy work order that they can access and record time/notes for when those occurrences do happen. I already have that set up.


Upon marking it complete, I would like to have an automated action repopulate another identical work order in it's place, but with a new number that would be next in sequence.


Assuming the "execute python code" function is necessary here. Is there someone that can help me out with the code to complete this?

TIA!

0
Avatar
Zrušiť
James Gaspelin
Autor

After some trial and error, I have come up with a working solution. Before, I was trying to add to the work order sequence, however, there is no sequence setup for a workorder as those are tied to the manufacturing order. The code below will creates a new MO based on defined variables

#set variables for new MO:
mo_vals = {
'product_id': 3765,
'qty_producing': 1.0,
'product_uom_id': 1,
'bom_id': 18
}
#create new MO based on variables above and will follow the existing sequence:
new_mo = env['mrp.production'].create(mo_vals)
#confirm the MO so it is available in the shop floor app:
new_mo.action_confirm()

Avatar
James Gaspelin
Autor Best Answer

I am getting a forbidden opcode error when saving after copying your code in. Are there any other ways to do this, or a way to override the error? Also, I forgot to mention, I am on Odoo 18 if that makes a difference

0
Avatar
Zrušiť
STAFFINSIDE

Hi, there are a few things you can try:

1- Security Constraints: Check if there are any specific security rules applied to the model that might prevent the copy() method from being executed. You may need to tweak access control or create a custom group to allow this operation.

2- Permission Issues: Make sure that the user or group running the automated action has the proper permissions to access and modify work orders. Sometimes these errors are related to insufficient access rights.

3- Alternative Solution with Scheduled Action:
If the execute python code method is not working, you could consider using a scheduled action to periodically check for completed dummy work orders and duplicate them with a new number.

Here’s an example of how you might implement this:
- Create a scheduled action that runs periodically (like every minute or hour).
- Check for work orders that are in the "done" state.
- For each completed work order, copy it, reset the fields, and assign a new sequence number.

Python code for the scheduled action:

workorders = self.env['mrp.workorder'].search([('state', '=', 'done'), ('production_id', '!=', False)])
for wo in workorders:
new_wo = wo.copy({
'state': 'ready',
'time_ids': [(5, 0, 0)],
'qty_produced': 0,
})
new_wo.name = self.env['ir.sequence'].next_by_code('mrp.workorder') or new_wo.name

This way, the scheduled action runs automatically without needing the "execute Python code" method within the automated action.

4- Override the Forbidden Opcode Error (if applicable):
If you believe the code should run as intended, you could try overriding the security rules for the specific field or action causing the issue. However, this could have security implications, so it's better to first test with less risky solutions like the scheduled action approach.

Let me know if any of these suggestions help.

James Gaspelin
Autor

I do not believe it is a security or permission issue, but I have been working on an alternative solution. I am trying to create a new record by attaching the proper id to each mandatory field, however, I am not sure how to implement the next_by_code sequence as the production_id.
workorder_data = {
'name': 'Rework Cover',
'production_id':
'operation_id': 24,
'workcenter_id': 19,
'product_id': 18,
'product_uom_id': 1,
'qty_producing': 1.0,
'state':'ready'
}
new_workorder = env['mrp.workorder'].create(workorder_data)

This method does create a new workorder but there are other issues with it because it has the same work order number assigned as the previous. What can I do to add the sequence as production_id? or is that based on an existing work order?

Avatar
Cybrosys Techno Solutions Pvt.Ltd
Best Answer

Hi,

You can solve this by creating an Automated Action on the Work Order (mrp.workorder) model with trigger On Update, and using the following Python code in the action:


if record.state == 'done' and record.production_id:

    new_wo = record.copy({

        'state': 'ready',

        'time_ids': [(5, 0, 0)],

        'qty_produced': 0,

    })

    new_wo.name = self.env['ir.sequence'].next_by_code('mrp.workorder') or new_wo.name


This will duplicate your dummy work order when marked done, reset it to ready, clear logs, and give it the next sequence number.


Hope it helps

0
Avatar
Zrušiť
Enjoying the discussion? Don't just read, join in!

Create an account today to enjoy exclusive features and engage with our awesome community!

Registrácia
Related Posts Replies Zobrazenia Aktivita
How to avoid non-literal domain
automation
Avatar
Avatar
Avatar
2
aug 25
1575
Copy custom field when lead create contact and opportunity Solved
automation
Avatar
Avatar
Avatar
2
aug 25
2474
Error: Automated action CRM/Discuss
automation
Avatar
0
feb 25
2492
Setting automation rule based on date field
automation
Avatar
Avatar
1
aug 25
3402
Automation rule to restrict close won
automation
Avatar
Avatar
2
dec 24
2666
Komunita
  • Tutoriály
  • Dokumentácia
  • Fórum
Open Source
  • Stiahnuť
  • Github
  • Runbot
  • Preklady
Služby
  • Odoo.sh hosting
  • Podpora
  • Vyššia verzia
  • Custom Developments
  • Vzdelávanie
  • Nájdite účtovníka
  • Nájdite partnera
  • Staň sa partnerom
O nás
  • Naša spoločnosť
  • Majetok značky
  • Kontaktujte nás
  • Pracovné ponuky
  • Eventy
  • Podcast
  • Blog
  • Zákazníci
  • Právne dokumenty • Súkromie
  • Bezpečnosť
الْعَرَبيّة Català 简体中文 繁體中文 (台灣) Čeština Dansk Nederlands English Suomi Français Deutsch हिंदी Bahasa Indonesia Italiano 日本語 한국어 (KR) Lietuvių kalba Język polski Português (BR) română русский язык Slovenský jazyk slovenščina Español (América Latina) Español ภาษาไทย Türkçe українська Tiếng Việt

Odoo je sada podnikových aplikácií s otvoreným zdrojovým kódom, ktoré pokrývajú všetky potreby vašej spoločnosti: CRM, e-shop, účtovníctvo, skladové hospodárstvo, miesto predaja, projektový manažment atď.

Odoo prináša vysokú pridanú hodnotu v jednoduchom použití a súčasne plne integrovanými biznis aplikáciami.

Website made with

Odoo Experience on YouTube

1. Use the live chat to ask your questions.
2. The operator answers within a few minutes.

Live support on Youtube
Watch now