Integrações / ERP / Odoo
O Odoo tem programação da produção? Como funciona o botão Plan e quando complementar com o SkyPlanner APS
O Odoo dispõe de programação da produção a um nível básico, limitada à disponibilidade no calendário de cada centro de trabalho. O botão Plan do Odoo Manufacturing reserva para cada ordem de fabrico o primeiro intervalo livre no calendário do respetivo centro de trabalho. Assim, duas ordens de fabrico planeadas nunca se sobrepõem no mesmo centro de trabalho. Mas planeia uma ordem de produção de cada vez, tendo em conta uma única restrição, e não altera a sequência, nem otimiza, nem replaneia o conjunto das ordens. As fábricas que precisam de uma programação da produção que respeite a capacidade realmente disponível das máquinas e do pessoal e sequencie todas as ordens em função dos prazos de entrega e das preparações utilizam o SkyPlanner APS em conjunto com o Odoo.
O próprio Odoo afirma nos seus materiais comerciais que é possível “plan resources with finite capacity planning” (planear os recursos respeitando a capacidade disponível) (odoo.com/app/manufacturing). A seguir, explicamos o que isso significa no Odoo 19.0, com base na documentação oficial e no código-fonte: como funciona o Plan, quais os seus limites e em que situações é suficiente.
Como o Odoo planeia as ordens de fabrico, passo a passo
1. Ative as ordens de fabrico e configure os centros de trabalho
Aceda a Fabrico > Configuração > Definições e ative Ordens de fabrico. A opção Centros de trabalho passa então a aparecer em Configuração. Cada centro de trabalho (mrp.workcenter) tem os campos utilizados no planeamento:
| Campo | Função no planeamento |
|---|---|
| Working Hours | Calendário de recursos pelo qual se rege o centro de trabalho. Por predefinição, «Padrão de 40 horas/semana», de segunda a sexta-feira |
| Time Efficiency | Percentagem que acelera ou abranda cada ordem de fabrico neste centro de trabalho |
| Setup Time / Cleanup Time | Minutos acrescentados antes e depois de cada ordem de fabrico |
| Alternative Workcenters | Outros centros de trabalho que a função Planear pode utilizar em alternativa |
| Separador Capacidades por produto | Peças por ciclo e minutos de preparação e limpeza específicos de cada produto (mrp.workcenter.capacity) |
| OEE Target | Objetivo de desempenho para relatórios; não é um dado de entrada do planeamento |
| Allowed Employees | Define quem pode trabalhar neste centro. É um filtro, não define a capacidade. |
2. Operações na lista de materiais
Não existe uma gama operatória mestre partilhada. As operações são definidas em cada lista de materiais (BoM), no separador Operações (mrp.routing.workcenter). Cada operação tem um Work Center e um Duration Computation: um tempo fixo introduzido pelo utilizador ou um tempo calculado a partir das últimas ordens de fabrico (10 por predefinição). A duração prevista é a soma dos tempos de preparação e limpeza com o número de ciclos multiplicado pelo tempo de ciclo, sendo a parcela dos ciclos dividida pelo valor de Time Efficiency (mrp_routing.py).
Com a opção Work Order Dependencies ativada, uma operação pode ficar bloqueada por outra através de Blocked By. A documentação do Odoo explica: “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.” (Uma ordem de fabrico bloqueada é programada para o fim do período indicado no campo Expected Duration da ordem de fabrico que a precede.) (fonte)
3. Confirme a ordem de produção e clique em Plan
A confirmação de uma ordem de produção (mrp.production) cria as respetivas ordens de fabrico (mrp.workorder). Ao premir Planear na ordem de produção, o sistema parte das ordens de fabrico finais e programa primeiro, de forma recursiva, cada ordem de que estas dependem. Cada ordem de fabrico é programada para a frente no tempo, após as suas antecessoras. Para cada ordem de fabrico, o Odoo:
- Escolhe o momento mais tardio entre o início da ordem de produção, o momento atual e o fim das ordens de fabrico que a bloqueiam.
- Testa o centro de trabalho principal e todos os centros de trabalho alternativos.
- Procura, a partir desse momento, o primeiro intervalo livre em cada calendário com tempo suficiente para a duração prevista.
- Escolhe o centro de trabalho que permite terminar mais cedo e reserva o intervalo nesse calendário através de um registo
resource.calendar.leaves.
O código-fonte da versão 19.0 enuncia claramente a regra: “The available interval is disjoinct with all other workorders planned on this workcenter” (O intervalo disponível não se sobrepõe a nenhuma outra ordem de fabrico planeada neste centro de trabalho) (mrp_workcenter.py). É aqui que se aplica a capacidade finita. Se uma ordem de fabrico chegar a um período de encerramento, continua no próximo intervalo de trabalho. Se não encontrar espaço num prazo de 700 dias (a janela de pesquisa predefinida), o Plan para e apresenta a mensagem “Impossible to plan the workorder.” (Não é possível planear a ordem de fabrico.)
4. Indisponibilidades e alternativas
Com a aplicação Time Off e o modo de programador, pode bloquear um centro de trabalho para manutenção ou num feriado. O Plan encaminha então as ordens de fabrico para os centros de trabalho alternativos. Quando não há alternativa, a documentação do Odoo diz que “work orders begin to pile up at the work center until it is operational again” (as ordens de fabrico começam a acumular-se no centro de trabalho até este voltar a estar operacional) (fonte).
5. Reveja e ajuste
Fabrico > Planeamento > Planeamento por produção e Planeamento por centro de trabalho abrem as vistas de planeamento das ordens de fabrico. A edição Enterprise apresenta um gráfico de Gantt com a função de arrastar e largar. A edição Community apresenta vistas de lista, calendário, tabela dinâmica e gráfico. A documentação descreve o ajuste como manual: “Times and planned work centers can be changed by clicking to access the individual work order.” (Os horários e os centros de trabalho planeados podem ser alterados clicando para aceder à ordem de fabrico em questão.) (fonte)
Os limites do Odoo
- Quem chega primeiro é servido primeiro. O Plan trata uma ordem de produção de cada vez, e a primeira a ser planeada ocupa os primeiros intervalos disponíveis. Ao selecionar várias ordens de produção, estas são planeadas pela ordem predefinida do Odoo: primeiro a prioridade, depois a data de início. O sistema não pondera os prazos de entrega face às mudanças de produção, nem desloca uma ordem de produção já planeada para dar lugar a outra mais urgente.
- A sequência não tem em conta as preparações. O campo Setup Time acrescenta um tempo fixo a cada ordem de fabrico: os mesmos minutos, independentemente do que foi produzido antes. O Odoo não tem uma matriz de mudanças de produção nem agrupa tarefas semelhantes para evitar essas mudanças.
- Uma única restrição. Só o calendário do centro de trabalho limita o plano. Os operadores são apenas um filtro em Allowed Employees. Quando o Plan reserva um intervalo, não verifica as ferramentas nem a disponibilidade de materiais. As reservas de componentes e as datas das ordens de compra servem apenas para o reaprovisionamento.
- O MRP ignora a capacidade. As regras de reaprovisionamento e o MTO criam ordens de produção a partir do campo Manuf. Lead Time da lista de materiais, em dias de calendário. Segundo a documentação: “Lead times do not consider weekends, holidays, or work center capacity” (Os lead times não têm em conta fins de semana, feriados ou a capacidade dos centros de trabalho) (fonte). Os prazos das ordens de produção e as datas de entrega prometidas baseiam-se em dias de calendário, não na fila real de trabalho.
- O MPS é uma lista de sugestões. O Master Production Schedule (Enterprise) também não tem em conta a carga. “The MPS only suggests the amount of product to be replenished, requiring the user to actually create the replenishing POs/MOs.” (O MPS apenas sugere a quantidade de produto a repor; cabe ao utilizador criar as ordens de compra ou de produção para o reaprovisionamento.) (fonte)
- Sem replaneamento automático. Uma avaria ou uma encomenda urgente não altera, por si só, o que está planeado. Assim que uma ordem de fabrico é iniciada, o Odoo não permite retirar a ordem de produção do plano: “Some work orders have already started, so you cannot unplan this manufacturing order.” (Algumas ordens de fabrico já foram iniciadas, pelo que não é possível retirar esta ordem de produção do plano.) (mrp_production.py)
- Subconjuntos planeados separadamente. As listas de materiais multinível criam ordens de produção subordinadas, cada uma planeada de forma independente. O responsável pelo planeamento tem de as planear na sequência certa, para que o subconjunto esteja pronto quando a operação de nível superior precisar dele.
- Gantt e MPS só na edição Enterprise. A página das edições assinala as funções de fabrico “Scheduling” (programação) e “Shopfloor” (chão de fábrica) como exclusivas da edição Enterprise (odoo.com/page/editions). Na edição Community, os responsáveis pelo planeamento trabalham com listas e um calendário.
Quando o planeamento nativo do Odoo é suficiente
O botão Plan do Odoo é suficiente quando:
- O centro de trabalho a utilizar é evidente para cada operação e os volumes são moderados.
- Poucas ordens disputam o mesmo gargalo, pelo que a lógica de atender primeiro quem chega primeiro permite obter datas aceitáveis.
- As máquinas alternativas são idênticas, pelo que os centros de trabalho alternativos, em conjunto com o Time Off, permitem lidar com a maioria dos imprevistos.
- As preparações são curtas ou não dependem da tarefa anterior.
- O responsável pelo planeamento consegue rever o planeamento por centro de trabalho uma vez por dia e resolver manualmente os poucos conflitos.
Se esta é a realidade da sua fábrica, concentre os esforços na qualidade dos dados. Atribua um calendário a cada centro de trabalho e introduza valores realistas nos campos Setup Time e Cleanup Time. Use durações fixas quando o histórico apresentar muita variabilidade, ative as dependências e planeie as ordens de produção por ordem de prioridade.
Quando precisa de uma ferramenta de programação da produção
O Plan deixa de ser suficiente quando várias destas situações se verificam:
- Muitas ordens disputam dois ou mais gargalos e os prazos de entrega têm de determinar a sequência.
- A preparação depende do que foi produzido antes, pelo que a sequência das tarefas altera a quantidade produzida.
- As pessoas e os turnos limitam o plano tanto como as máquinas.
- A chegada dos materiais determina quando uma tarefa pode começar.
- Encomendas urgentes, avarias e atrasos nas entregas obrigam a replanear várias vezes por semana.
- A equipa comercial precisa de datas de entrega baseadas na fila real de trabalho, não no campo Manuf. Lead Time.
O que procurar
- Programação que respeita a capacidade disponível em todos os centros de trabalho em simultâneo, tendo em conta turnos, pessoal e ausências.
- Sequenciação do conjunto de todas as ordens por prazo de entrega e prioridade, e não de cada ordem de produção isoladamente.
- Uma matriz de tempos de preparação para as mudanças de produção que dependem da sequência, permitindo ao motor escolher a ordem das tarefas com menos tempo de preparação.
- Ferramentas e equipas como restrições: uma ferramenta partilhada em uso numa máquina fica indisponível para outra, e uma tarefa pode exigir vários operadores em simultâneo.
- Programação que tenha em conta os materiais, verificando o stock e as ordens de compra com receção prevista.
- Centros de trabalho alternativos que o motor seleciona tendo em conta o plano completo, e não uma ordem de fabrico de cada vez.
- Produtos multinível, para que os subconjuntos fiquem concluídos antes de serem necessários no nível superior.
- Reprogramação automática à medida que a produção avança ou as ordens são alteradas.
- Um Gantt para os responsáveis pelo planeamento e uma fila de tarefas para os operadores, também na edição Community.
- Uma regra clara sobre quem controla a programação no Odoo. As datas das ordens de fabrico no Odoo são calculadas a partir da reserva no calendário. Premir novamente Planear substitui essas datas. Defina que é o sistema de programação que controla a sequência, grave as datas e os centros de trabalho no Odoo através de
mrp.workordere exclua as ordens de fabrico já em curso. - A API adequada à sua versão e ao seu plano. O Odoo 19 dispõe da External JSON-2 API. A remoção de XML-RPC e JSON-RPC está prevista para o Odoo 22 (Odoo Online 21.1). O acesso à API externa só está disponível nos planos Custom, não nos planos One App Free ou Standard (documentação da API externa). Os módulos personalizados exigem Odoo.sh ou alojamento nas instalações da empresa (preços do Odoo).
As opções dividem-se em quatro grupos:
- O planeamento nativo do Odoo inclui o botão Plan e, na edição Enterprise, a vista de Gantt.
- Módulos adicionais no cliente Odoo, mantidos por um parceiro Odoo, melhoram o quadro de planeamento ou a lógica de atribuição de intervalos.
- Motores para a cadeia de abastecimento e soluções APS para grandes empresas são ligados através de um projeto de implementação e geridos por uma equipa dedicada ao planeamento.
- APS na nuvem com execução no chão de fábrica é a categoria em que se enquadra o SkyPlanner. Programa automaticamente todos os recursos em conjunto com o Odoo, continua a replanear à medida que a produção muda e coloca o plano nas mãos dos operadores.
Onde se enquadra o SkyPlanner
O SkyPlanner APS dá resposta a cada uma das limitações acima:
- A ordem de chegada dá lugar a uma verdadeira sequência. Em segundos, o motor Arcturus AI programa todas as ordens em aberto em conjunto, respeitando a capacidade disponível e ordenando-as por data de conclusão, prioridade, prioridade do cliente, Fast Track e Dynamic Priorities.
- Preparações mais curtas, em vez de tempos fixos. Uma matriz de tempos de preparação regista o tempo de mudança de produção entre cada par de produtos, que pode variar consoante o sentido: de azul para vermelho, 30 minutos; de vermelho para azul, 60. A ferramenta de programação escolhe a sequência com menos tempo de preparação e programa tarefas semelhantes para serem executadas consecutivamente.
- De uma restrição a todas as restrições. Centros de trabalho, turnos, pessoal, ausências, ferramentas e materiais são verificados no mesmo programa de produção. As ferramentas têm disponibilidade limitada, pelo que um dispositivo de fixação em utilização numa máquina não é reservado noutra ao mesmo tempo. Uma tarefa pode exigir vários operadores em simultâneo, e o motor recorre a máquinas ou pessoal alternativos quando o recurso principal não está disponível. O mesmo modelo abrange os grupos de centros de trabalho, as eficiências e a divisão de uma tarefa por vários centros de trabalho. A verificação de materiais inclui o stock disponível e as linhas em aberto de
purchase.order: os componentes encomendados são considerados disponíveis na data de entrega da encomenda de compra, e o stock é atualizado quando esta é marcada como Entregue. - Subconjuntos sincronizados. Os produtos intermédios e os produtos multinível são programados para que os componentes estejam prontos quando a montagem precisar deles.
- Do replaneamento manual ao Autopilot. O Autopilot reprograma automaticamente quando há alterações na produção, respeitando os bloqueios definidos, o Running Time Lock e as prioridades.
- O Community ganha um Gantt e acesso no chão de fábrica. Os planeadores editam um cronograma de Gantt interativo. Os operadores consultam a sua fila de tarefas e registam o trabalho no telemóvel ou tablet com Mobile Confirmations, Production Timer e Quick Log Mode.
O Odoo continua a ser o sistema de referência para produtos, listas de materiais, existências, compras e contabilidade. O SkyPlanner integra-se com o Odoo nos dois sentidos através da External JSON-2 API, ou de XML-RPC e JSON-RPC nas versões mais antigas:
- Entrada:
mrp.production,mrp.workorder,mrp.workcenter,mrp.bome linhas em aberto depurchase.order. - Retorno ao Odoo: início e fim planeados e centro de trabalho escolhido, através de um
writeem cadamrp.workorder(date_start,date_finished,workcenter_id). Esta operação desloca a reserva no calendário do próprio Odoo, pelo que as vistas de planeamento do Odoo passam a apresentar as datas do SkyPlanner. - Chão de fábrica: as confirmações dos operadores são criadas como registos Time Logs de
mrp.workcenter.productivity.
Os webhooks do SkyPlanner transmitem as alterações à programação assim que ocorrem. Cada fábrica utiliza o Odoo de forma diferente, com as suas próprias operações, calendários e módulos personalizados. A equipa do SkyPlanner configura a integração de acordo com a sua instalação durante a fase de arranque e presta apoio após a entrada em produção. O seu parceiro Odoo ou os seus próprios programadores também podem desenvolver a integração com base na REST API documentada do SkyPlanner (referência da API). Basta uma chave de API para começar. Os detalhes da API e das funcionalidades estão na documentação do SkyPlanner.
Escolha o SkyPlanner quando muitas ordens disputam os mesmos gargalos e os prazos de entrega têm de definir a sequência de todas elas.
Escolha o SkyPlanner quando as mudanças de produção dependem da sequência, ou quando as ferramentas partilhadas e as tarefas que exigem vários operadores determinam o que pode ser executado a seguir.
Escolha o SkyPlanner quando replaneia várias vezes por semana e quer uma programação operacional para a sua produção em semanas, em vez de esperar pelo fim de um projeto longo.
Comece com uma exportação CSV ou XLSX na avaliação gratuita de 30 dias (até 20 centros de trabalho, sem cartão de crédito) e compare a programação do SkyPlanner com os resultados do botão Plan. Depois, os preços começam nos 199 € por mês, com 5 centros de trabalho incluídos, faturação mensal e cancelamento a qualquer momento. O orçamento da integração é apresentado antecipadamente, de acordo com o seu processo e as suas necessidades, juntamente com o plano escolhido, para que conheça o custo total antes de começar. A implementação fica normalmente concluída num prazo de semanas após o início da fase de arranque. Consulte os preços e as funcionalidades.
Saiba mais sobre o SkyPlanner para Odoo, consulte o guia de integração com o Odoo e conheça outras integrações com ERP.
Opiniões de fabricantes sobre o SkyPlanner
2 hpoupadas por semana
“Com o SkyPlanner, passámos do planeamento da produção em folhas de cálculo Excel para a otimização da produção em tempo real.”
Kalle Kalliomäki, especialista em cadeia de abastecimento
UTU · Quadros elétricos e aparelhagem de comutação
O planeamento da produção poupa 2 horas de trabalho por semana, e uma nova fila de tarefas chega à linha em segundos.
+90%de eficiência na produção
“A eficiência na produção aumentou 90%.”
Abdul Rucyinga, responsável de TI
Laboratory & Allied · Produção farmacêutica
A eficiência na produção aumentou 90%, e criar um plano otimizado de três meses para todos os centros de trabalho demora menos de 30 minutos.
6 mesesde capacidade disponível visível para a equipa comercial
“O SkyPlanner serve de base a todo o planeamento da produção e confere-lhe fiabilidade.”
Anu Järvinen, responsável de produção
Fredman Operations · Papéis para embalagens de uso alimentar
A equipa comercial vê a capacidade disponível com seis meses de antecedência, e os pedidos de alteração à programação que demoravam uma hora ou mais recebem agora resposta em segundos.
98%de fiabilidade das entregas, face a cerca de 50% anteriormente
“O SkyPlanner tem um papel decisivo na manutenção da fiabilidade das nossas entregas.”
Hannu Lahtinen, diretor-geral
KJH-Comp · Componentes em chapa metálica e fabrico por contrato
A fiabilidade das entregas passou de cerca de 50% para valores que chegam aos 98%, e a programação precisa agora de um supervisor em vez de dois.
Perguntas frequentes
O Odoo Community permite programar a produção?
Sim, a um nível básico. O Community inclui ordens de produção, ordens de fabrico, centros de trabalho e o botão Plan, com vistas de lista, calendário, tabela dinâmica e gráfico. A vista de programação Gantt, o Shop Floor e o Master Production Schedule são funcionalidades do Enterprise. O SkyPlanner dá às fábricas que utilizam o Community um Gantt e uma fila de tarefas para os operadores.
O MRP do Odoo tem em conta a capacidade dos centros de trabalho?
Não. O reabastecimento usa lead times em dias de calendário, e a documentação do Odoo indica que estes “do not consider weekends, holidays, or work center capacity” (não têm em conta fins de semana, feriados ou a capacidade dos centros de trabalho). A capacidade só é considerada quando se carrega em Plan numa ordem de produção.
O Odoo permite executar várias tarefas ao mesmo tempo num centro de trabalho?
Na programação, não. O código da versão 19.0 reserva para cada ordem de fabrico um intervalo que não se sobrepõe ao de qualquer outra ordem nesse centro de trabalho. O separador Product Capacities define as peças por ciclo dentro de uma ordem de fabrico, não ordens de fabrico em paralelo.
O Odoo gere tempos de preparação que dependem da sequência?
Não. Os campos Setup Time e Cleanup Time definem minutos fixos por centro de trabalho, ou por produto no separador Product Capacities. O Odoo acrescenta esses tempos a cada ordem de fabrico, independentemente da tarefa anterior. A matriz de tempos de preparação do SkyPlanner regista as mudanças de produção por par de produtos e por sentido, e ordena as tarefas de forma a minimizar esses tempos.
Como se liga o SkyPlanner APS ao Odoo?
O SkyPlanner integra-se com o Odoo nos dois sentidos através da API externa JSON-2 ou de execute_kw via XML-RPC ou JSON-RPC nas versões 16.0 a 18.0. As datas planeadas e os centros de trabalho são gravados em cada mrp.workorder, e os tempos registados dão origem a registos Time Logs no Odoo. A equipa do SkyPlanner configura a integração durante a implementação e presta apoio após a entrada em produção. Consulte os detalhes no guia de integração com o Odoo.
Posso testar o SkyPlanner antes de o integrar com o Odoo?
Sim. A avaliação de 30 dias funciona com exportações CSV ou XLSX das vistas de lista do Odoo, com até 20 centros de trabalho e sem cartão de crédito. Pode comparar a programação do SkyPlanner com os resultados do botão Plan antes de estabelecer qualquer ligação. Inicie a avaliação gratuita ou fale com a equipa comercial.