Ordem de Produção: Apontamento — Documentação Complementar

Abrir o processo, registrar o que foi consumido, quem trabalhou, quais máquinas rodaram e o que saiu pronto — e desfazer, enquanto ainda dá

1. Introdução

Apontar é registrar o que de fato aconteceu na produção: quais insumos foram consumidos, quem trabalhou e por quanto tempo, quais máquinas rodaram e sob que motivo de setup, e quanto produto saiu pronto. Tudo isso acontece dentro de um processo aberto, e é isso que dá a esta página a sua forma: uma espinha de quatro operações que abrem e fecham o processo, com um bloco de cinco apontamentos entre elas.

Esta página pressupõe a Ordem de Produção já criada, programada, firmada e com estoque reservado — ver Criação e Preparação. E pressupõe a página central do módulo lida, porque a configuração da instância muda o comportamento deste fluxo mais do que o de qualquer outro.

O primeiro apontamento fecha a janela de reversibilidade da preparação. A partir dele, alterar a quantidade a fabricar, trocar previsão de insumo, liberar reserva, cancelar ou remover a Ordem de Produção passam todos a recusar. O caminho de volta existe — são as rotinas de remoção dos Passos 9 a 12 e as de desfazer dos Passos 13 e 14 —, mas ele é assimétrico, e vale a pena conhecê-lo antes de apontar o primeiro item.

2. Onde encontrar o dicionário oficial da sua API

Esta documentação é complementar. A fonte da verdade sobre parâmetros, tipos, domínios e exemplos é o dicionário da sua instância, gerado a partir do que o seu token alcança. A explicação de como chegar a ele está na página central do módulo.

Confirme no dicionário da sua instância se o objeto que você precisa está disponível para o seu token. O escopo varia por instalação e por token: um objeto citado aqui pode não estar liberado na sua. Se faltar, peça ao gestor do ERP a revisão do cadastro de API.

3. Como a API funciona

Os métodos usados nesta página:

MétodoPara que serve aquiExemplo de objeto
PATCH Executar as catorze rotinas de apontamento, remoção e controle do processo. FAB_PRC_APTABRIRPROCESSO, FAB_PRC_APTINSUMOS
GET Consultar os insumos apontáveis, os lotes e números de série disponíveis, as pessoas e as máquinas. FAB_RES_APTORDPRO61, FAB_VIEW_PESSOA

4. Visão geral do fluxo

O fluxo tem uma espinha de duas operações obrigatórias, e entre elas um bloco de cinco apontamentos que não têm ordem entre si:

  1. Abrir o processoFAB_PRC_APTABRIRPROCESSO. Marca o início realizado e consome automaticamente os insumos configurados como "Automático do Previsto".
  2. Apontar — insumos, mão de obra, setup de máquina e produto fabricado, em qualquer ordem, quantas vezes for preciso, enquanto o processo estiver aberto.
  3. Fechar o processoFAB_PRC_APTFECHARPROCESSO. Marca o término realizado, consome os insumos configurados como "Conforme o Produzido" e devolve o saldo reservado não consumido.

Os processos são abertos e fechados na ordem de execução declarada na Fórmula. Um processo só abre depois que todos os de ordem anterior estiverem concluídos.

Os dois momentos de consumo automático são distintos, e é o campo OPD_APONTAMENTO de cada insumo reservado que decide qual vale. O valor 1 é consumido na abertura; o valor 2, no fechamento. Os dois são automáticos, mas tratá-los como a mesma coisa é o erro que mais confunde este fluxo. A tabela completa está no Passo 3.

5. Diagrama de execução

Convenção visual: verde (avanço do fluxo) · azul (desfazer) · tracejado (bloco sem ordem interna).

6. Aviso sobre liberação na retaguarda

Três configurações da instância mudam o que este fluxo faz, e nenhuma se resolve pela API.

Além delas, o verbo PATCH precisa estar liberado no cadastro de API para cada rotina que você pretende chamar.

Pré-requisitoPor que importa
Ordem de Produção Firmada (OPD_STATUS = 1)Todas as rotinas de apontamento a exigem. Ver Preparação, Passo 9.
Estoque reservadoSem reserva, o consumo automático não acontece e o apontamento manual de insumo pode ser recusado — ver o Passo 4.
Funcionários (FABPESSOA1)Quem aponta mão de obra por funcionário. Consulte por FAB_VIEW_PESSOA; os afastamentos estão em FAB_VIEW_AFASTAMENTO.
Tipos de RH (FABTIPORH)As funções apontáveis no modelo por função.
Máquinas (FABMAQUINA1)Precisam estar no processo da Ordem de Produção, ou na Fórmula — ver o Passo 6. Consulte por FAB_VIEW_MAQUINA.
Motivos de setup (FABMOTIVOSETUP)O MSU_TIPO de cada motivo decide se ele é de parada ou de início, e se pode incluir máquina nova.
Lotes (PRODLOTE) e números de série (PRODNS)Onde os lotes e séries do estoque vivem. O lote do insumo é obrigatório quando a filial e o produto usam controle de lote.
A Fórmula bem configuradaTrês campos dela governam este fluxo: FRM_APONTAMENTO de cada insumo, FRM_MODELOAPTRH e a sugestão de número de série. Ver Fórmula de Fabricação.

É o ponto de partida correto antes de apontar insumo: lista os insumos do processo com a quantidade prevista e a quantidade já apontada de cada um. Recebe a Ordem de Produção e o processo, e não grava nada.

{
    "method": "GET",
    "objectType": "PROCEDURE RESULT",
    "objectName": "FAB_RES_APTORDPRO61",
    "params": [
        { "name": "P_OPD_COD", "value": "1001" },
        { "name": "P_PRO_COD", "value": "10" }
    ]
}

O conjunto que ela devolve depende da instância. O campo CFG_VERINSUMOAPT governa a lista:

ValorO que a consulta devolve
0Os insumos já apontados do processo.
1Os insumos reservados, com a quantidade já apontada quando houver.
2Os insumos previstos, mais os reservados que não estavam previstos.

Consulte CFG_VERINSUMOAPT antes de interpretar uma lista vazia — pode ser configuração, não ausência de insumo. Com o valor 1, lista vazia significa que o processo ainda não teve estoque reservado: reserve primeiro, pelo Passo 10 da Preparação.

No retorno, PREV_UND e PREV_QTD trazem a unidade e a quantidade previstas; OPD_UNI e OPD_QTD, as já apontadas. Insumo ainda não apontado vem com as colunas de apontamento vazias. OPD_ITM identifica o item, e é o valor que a remoção do Passo 9 vai exigir.

OPD_TIPO no retorno é o tipo do apontamento [1-Consumo; 2-Perda; 3-Devolução], e não o tipo da Ordem de Produção. São dois campos homônimos em tabelas diferentes, e confundi-los leva a montar a chamada errada.

Marca o início realizado do processo e o usuário responsável. É a primeira operação da espinha.

{
    "method": "PATCH",
    "objectType": "PROCEDURE",
    "objectName": "FAB_PRC_APTABRIRPROCESSO",
    "params": [
        { "name": "P_OPD_COD",         "value": "1001" },
        { "name": "P_PRO_COD",         "value": "10" },
        { "name": "P_OPD_DATINIREAL",  "value": "2026-08-20 08:00:00" }
    ]
}

Valores ilustrativos. Os códigos acima são exemplos. Use os cadastros da sua instância. A assinatura completa e autoritativa está no dicionário oficial.

P_OPD_DATINIREAL nula assume a data e hora atuais. Os segundos são sempre zerados — a data é truncada ao minuto, para que os apontamentos de pessoas e máquinas casem com a janela do processo.

O que a abertura consome sozinha

Para cada insumo reservado do processo com OPD_APONTAMENTO = 1, a abertura lança automaticamente um apontamento de consumo, pela quantidade reservada. Só o valor 1.

Os cinco valores de OPD_APONTAMENTO

Este é o campo que decide o comportamento de cada insumo no apontamento. Ele nasce em FABORDPRO6 herdado do FRM_APONTAMENTO daquele insumo na Fórmula, no momento da reserva:

ValorSignificadoQuando o consumo acontece
0ManualNunca sozinho. Só por chamada explícita do Passo 4.
1Automático do PrevistoNa abertura do processo, pela quantidade reservada.
2Conforme o ProduzidoNo fechamento do processo, proporcional ao que foi produzido — ver o Passo 8.
3Conforme Lotes — Iniciais e ComplementaresNenhum consumo automático — ver o aviso abaixo.
4Conforme Lotes — SequenciaisNenhum consumo automático — ver o aviso abaixo.

Os valores 3 e 4 são aceitos no cadastro, mas nenhuma rotina de apontamento os trata.1 e 2 disparam consumo automático — na abertura e no fechamento, respectivamente. Insumo gravado com 3 ou 4 se comporta como Manual: nada é consumido sozinho, e o apontamento fica por sua conta.

A view FAB_VIEW_APTOINSUMO só oferece os dois valores em instalações específicas, e o cadastro ainda exige que o produto controle lote para aceitá-los — "Para usar a configuração ‘Conforme Lotes Informados (3)’ é necessário que o produto N controle Lote". Nenhuma das duas conferências, porém, faz o consumo acontecer.

Este domínio não aparece no dicionário. Ele está publicado aqui porque é onde você consegue lê-lo por inteiro. A lista dos valores oferecidos na sua instalação está na view FAB_VIEW_APTOINSUMO.

Duas situações em que o Passo 3 se comporta de outro jeito

SituaçãoO que acontece
CFG_RESERVAPARCIAL = 0 A abertura não consome nada, qualquer que seja o valor de OPD_APONTAMENTO. Ela lê a quantidade reservada de FABORDPRO6, e sem reserva essa tabela está vazia. Todo o apontamento de insumo passa a ser manual.
Ordem de Produção de OPD_TIPO = 2
Produção em Terceiros
Não é preciso chamar este passo. Se o processo ainda não estiver aberto, FAB_PRC_APTINSUMOS o abre sozinha. É o que faz o fluxo de nota de terceiros funcionar sem chamada de abertura. O mesmo vale para FAB_PRC_APTPRODUTOFABRICADO.

Ordem de abertura

Todos os processos de ordem de execução anterior precisam estar concluídos — iniciados e fechados. A recusa lista os processos pendentes. Processos de mesma ordem de execução correm em paralelo e podem ser abertos independentemente.

Registra consumo, perda ou devolução de um insumo no processo. São doze parâmetros:

ParâmetroDescrição
P_OPD_CODOrdem de Produção. Precisa estar Firmada.
P_PRO_CODProcesso, que precisa estar aberto — salvo em Produção em Terceiros, onde a rotina o abre.
P_SPR_CODSubprocesso. Pode vir nulo: o servidor o preenche sozinho somente quando existe exatamente um subprocesso cadastrado. Com dois ou mais, informe.
P_PD_CODProduto insumo. Precisa estar ativo no cadastro.
P_PD_UNIUnidade do apontamento. A quantidade é convertida para unidade de estoque pelo fator de PRODEQUIV; sem equivalência cadastrada o fator usado é 1.
P_PD_LOTELote. Obrigatório quando a filial e o produto usam controle de lote.
P_PD_NUNSERNúmero de série do insumo. Aceito e gravado, mas sem captura na tela do ERP.
P_LE_CODLocal de estoque. Pode vir nulo — ver a cascata abaixo.
P_EE_CODEndereço de estoque. Opcional.
P_OPD_QTDQuantidade, na unidade informada.
P_OPD_TIPOTipo do apontamento [1-Consumo; 2-Perda; 3-Devolução].
P_OBSObservações livres.

Exemplo — apontar consumo de um insumo

{
    "method": "PATCH",
    "objectType": "PROCEDURE",
    "objectName": "FAB_PRC_APTINSUMOS",
    "params": [
        { "name": "P_OPD_COD",  "value": "1001" },
        { "name": "P_PRO_COD",  "value": "10" },
        { "name": "P_SPR_COD",  "value": "1" },
        { "name": "P_PD_COD",   "value": "204" },
        { "name": "P_PD_UNI",   "value": "KG" },
        { "name": "P_PD_LOTE",  "value": "L2608A" },
        { "name": "P_LE_COD",   "value": "1" },
        { "name": "P_OPD_QTD",  "value": "12.500000" },
        { "name": "P_OPD_TIPO", "value": "1" },
        { "name": "P_OBS",      "value": "Consumo do turno da manhã" }
    ]
}

Como o local de estoque é resolvido quando você não informa

Com P_LE_COD nulo, o servidor procura o local nesta ordem, e usa o primeiro que encontrar:

  1. a reserva daquele insumo na Ordem de Produção;
  2. a previsão do insumo no processo;
  3. o insumo na Fórmula;
  4. o insumo alternativo na Fórmula.

Nenhuma das quatro resolvendo, a chamada é recusada pedindo o local de estoque. Informar P_LE_COD explicitamente evita a cascata inteira e é o caminho previsível.

Quando a reserva prévia é exigida

Para Ordem de Produção de Produção Própria Interna ou de finalidade Fracionamento, com CFG_RESERVAPARCIAL = 1 e o insumo configurado como Manual na Fórmula, o processo precisa ter estoque reservado antes do apontamento. Reserve primeiro pelo Passo 10 da Preparação.

O custo unitário real é calculado pelo servidor, conforme o tipo de preço de custo configurado na Fórmula e a tabela de preços dela. Apontamento de devolução (tipo 3) entra com custo zerado.

A Ordem de Produção aceita uma das duas rotinas, nunca as duas. Quem decide é o campo OPD_MODELOAPTRH do cabeçalho, herdado de FRM_MODELOAPTRH da Fórmula:

ValorModeloRotina aceita
0Por FuncionárioFAB_PRC_APTMAODEOBRA
1Por FunçãoFAB_PRC_APTMAODEOBRAFUNCAO

Chamar a rotina errada é recusado. Consulte OPD_MODELOAPTRH em FAB_VIEW_ORDEMPRODUCAO antes de montar a integração — ele não muda depois que a Ordem de Produção nasce.

Por funcionário — FAB_PRC_APTMAODEOBRA

Registra o início ou a parada de um colaborador no processo. Seis parâmetros: Ordem de Produção, processo, código da pessoa, ocorrência, observação e data e hora da ocorrência.

PontoDetalhe
Domínio de P_OPD_OCR[1-Parar; 2-Iniciar]. Confira a ordem: existem comentários antigos que a invertem, e estão errados.
A função não é parâmetroO tipo de RH é descoberto pelo servidor a partir do código da pessoa, no cadastro de funcionários.
O item também nãoO número do item do apontamento é gerado pelo servidor, como o maior existente mais um.

Data e hora nula faz a chamada não fazer nada, e não é erro. A rotina encerra em silêncio, sem gravar e sem mensagem. Se o seu integrador puder enviar data nula, valide antes: um apontamento que "deu certo" e não existe é difícil de rastrear depois.

Por função — FAB_PRC_APTMAODEOBRAFUNCAO

Registra a função e a quantidade de pessoas num intervalo, em vez de nomear cada colaborador. Sete parâmetros; os três últimos são opcionais.

O apontamento pode ser feito em duas etapas: uma chamada só com o início abre o apontamento, e uma chamada posterior para a mesma função só com o término o completa — em vez de criar um registro novo.

Enquanto houver apontamento em aberto para uma função, o servidor recusa iniciar outro da mesma função. Feche o que está aberto antes de abrir o próximo. As recusas são explícitas: uma pede o término antes, a outra pede o início antes.

Exige quantidade de pessoas maior que zero, e ao menos um entre início e término preenchido. A data de início não pode ser anterior ao início real do processo, e o término precisa ser posterior ao início quando os dois vierem.

Registra a parada ou o início de uma máquina no processo, sempre com um motivo de setup. Seis parâmetros: Ordem de Produção, processo, máquina, motivo, ocorrência e data e hora.

O motivo e a ocorrência precisam ser coerentes

Cada motivo de setup tem um MSU_TIPO, e ele determina qual ocorrência é aceita:

MSU_TIPOMotivoOcorrência exigida
0NormalQualquer uma.
1Parada FábricaP_OPD_OCR = 1, Parar.
2Início FábricaP_OPD_OCR = 2, Iniciar.
3Parada por Defeito ImpeditivoP_OPD_OCR = 1, Parar.
4Início de Nova MáquinaP_OPD_OCR = 2, Iniciar.

O domínio de P_OPD_OCR é [1-Parar; 2-Iniciar]. Incoerência entre motivo e ocorrência é recusada nomeando qual das duas o motivo exige.

A máquina precisa estar no processo — com uma exceção

Em regra, a máquina já tem de estar cadastrada no processo da Ordem de Produção. A exceção é o motivo de MSU_TIPO = 4, "Início de Nova Máquina":

SituaçãoO que acontece
Máquina não está no processo, motivo com MSU_TIPO = 4, e a máquina consta na FórmulaO servidor insere a máquina no processo automaticamente, com horas e custos zerados, e aceita o apontamento.
Máquina não está no processo, motivo com MSU_TIPO = 4, e a máquina não consta na FórmulaRecusa nomeando a Fórmula. Acrescente a máquina na Fórmula antes.
Máquina não está no processo, motivo de outro tipoRecusa nomeando a Ordem de Produção.
Máquina está no processo, motivo com MSU_TIPO = 4Recusa: o motivo é inválido nesse caso. Use um motivo de outro tipo.

Esta é a única forma de acrescentar máquina a um processo já em execução pela API. Cadastre um motivo de setup com MSU_TIPO = 4 na retaguarda, garanta que a máquina conste na Fórmula, e aponte o setup com esse motivo e ocorrência de Início. Sem isso, o caminho é a troca de máquina do Passo 8 da Preparação, que só vale antes da abertura.

O processo precisa estar aberto: iniciado e ainda não fechado.

Registra a quantidade produzida ou perdida de produto acabado. Sete parâmetros: Ordem de Produção, produto, unidade, lote, quantidade, tipo [1-Produção; 2-Perda] e endereço de estoque.

Quando o apontamento é aceito

Depende de FRM_APTPRODANTESPROC, da Fórmula. Com o valor 0 — "Somente ao término dos Processos" —, todos os processos precisam estar iniciados e fechados; a recusa lista os pendentes. Com os valores 1 a 4, o apontamento é aceito antes. A matriz dos cinco valores está na página de Fórmula.

Com FRM_APTPRODANTESPROC = 2, o apontamento dispara a Nota Fiscal de entrada do produto acabado automaticamente. Os efeitos fiscais de cada valor estão em Documentos e Encerramento.

Lote: quem informa depende da Fórmula

Configuração da FórmulaQuem informa o lote
FRM_SUGESTAOLOTE = 0Você, em P_PD_LOTE — obrigatório se o produto usa controle de lote. Se já houver lote gravado para o produto na Ordem de Produção, ele prevalece sobre o parâmetro.
FRM_SUGESTAOLOTE diferente de 0O servidor, pelo método configurado. P_PD_LOTE precisa vir vazio: informar lote nesse caso é recusado.

Número de série: não há parâmetro, e a configuração decide tudo

FAB_PRC_APTPRODUTOFABRICADO não tem parâmetro de número de série. Os números são gerados pelo servidor, e somente quando as três condições valem ao mesmo tempo:

  • o produto controla número de série (PROD.PD_CTRLNSERIE = 2);
  • a Fórmula tem FRM_SUGESTAOSERIE diferente de 0;
  • a Fórmula tem FRM_MOMSUGESTAOSERIE = 0, "No Apontamento".

Configure a sugestão de número de série na Fórmula antes de apontar produto que controla série. Fora dessa configuração o apontamento é aceito e gravado sem série, sem nenhum aviso — e o rastreio se perde em silêncio. Ver Fórmula, Passo 3.

Quando as três condições valem, é gerado um número de série por unidade de estoque da quantidade apontada.

A amostra de qualidade sai junto

Se a Fórmula reserva quantidade para teste de qualidade e a amostra ainda não foi apontada, a chamada é decomposta em dois lançamentos: um para a amostra, no local de estoque de amostras da Fórmula, e outro para o restante. Nesse caso a quantidade informada precisa ser igual ou maior que a quantidade de teste, senão a chamada é recusada.

Em Produção em Terceiros esta rotina também abre o processo sozinha, como FAB_PRC_APTINSUMOS. Nos demais tipos, exige ao menos um processo já iniciado.

Marca o término realizado. É a operação mais densa do fluxo: antes de gravar, ela executa dois lançamentos automáticos e cinco conferências.

O que ela faz automaticamente, nesta ordem

  1. Consome os insumos de OPD_APONTAMENTO = 2 — "Conforme o Produzido" — proporcionalmente ao que foi produzido. Só entram os itens que ainda não têm apontamento nenhum, e só quando há produto fabricado apontado com quantidade real maior que zero.
  2. Devolve o saldo reservado não consumido desses mesmos insumos, com um apontamento de devolução e observação automática.

A devolução automática alcança também o que você apontou à mão. Diferente do consumo automático, ela não filtra por ausência de apontamento anterior: para todo insumo com OPD_APONTAMENTO = 2, se sobrar saldo reservado não consumido, a diferença é devolvida — ainda que o consumo tenha sido lançado manualmente. Se a intenção era manter o saldo reservado, libere a reserva excedente antes de fechar.

Falha em um insumo não interrompe o laço: os erros são acumulados e devolvidos numa mensagem consolidada, uma linha por insumo, com o código do insumo e a causa original.

A regra de momento do produto, e a mensagem que engana

Com insumos de OPD_APONTAMENTO = 2 no processo, o produto fabricado precisa ter sido apontado antes do fechamento. Sem ele, o consumo automático não roda — ele depende da quantidade real produzida —, os insumos ficam sem apontamento, e a conferência seguinte recusa com uma mensagem sobre insumo:

É necessário informar os apontamentos de Insumo para o processo N da O.P. M.

A causa não é insumo faltando: é produto não apontado. Aponte o produto fabricado pelo Passo 7 e feche em seguida.

As cinco conferências do fechamento

ConferênciaO que exige
Apontamento de insumoAo menos um apontamento de insumo no processo.
Apontamento de mão de obraAo menos um. A mensagem distingue o modelo: a versão por função diz "(por Função)".
Processos anterioresTodos os de ordem anterior com início e término preenchidos.
Setup de máquina em abertoNenhum setup iniciado e não encerrado.
Mão de obra em abertoNenhum apontamento de pessoa iniciado e não encerrado. Ordens de Serviço abertas também são conferidas.

O processo precisa ter início preenchido e término ainda vazio, e a Ordem de Produção precisa estar Firmada.

Recebe um único parâmetro: uma lista serializada dos apontamentos a remover.

ParâmetroFormato
P_INSUMOS{OPD_COD;PRO_COD;OPD_ITM;OPD_ORD} por apontamento, concatenados sem separador nenhum. As chaves e os ponto-e-vírgulas fazem parte do formato.

Os quatro números são, na ordem: Ordem de Produção, processo, item do apontamento e ordem de digitação — todos vindos de FABORDPRO61. Dois apontamentos ficam assim:

{1001;10;1;1}{1001;10;2;1}

Todos os processos citados na lista precisam estar abertos. A conferência é feita sobre o conjunto inteiro, não item a item: basta um processo fechado para a chamada inteira ser recusada com "O processo não está aberto." — mensagem que não diz qual. Removendo apontamentos de mais de um processo numa chamada, confira antes se todos estão abertos, ou remova processo a processo.

O que a remoção desfaz vai além do apontamento: reverte a movimentação de estoque e de endereçamento, exclui a Nota Fiscal e a ficha geradas, remove os números de série órfãos, e por fim apaga o apontamento. A reserva correspondente também some, quando fica sem saldo reservado e sem nenhum outro apontamento.

Ficha de estoque bloqueada impede a remoção. Antes de excluir, o servidor confere se o período dos movimentos permite alteração, filial a filial. Período fechado é recusa.

Duas rotinas, espelhando as duas de apontamento — e com a mesma assinatura: Ordem de Produção, processo, código do Tipo de RH e item.

RotinaRemove de
FAB_PRC_REMOVERAPTMAODEOBRAO apontamento por funcionário.
FAB_PRC_REMOVERAPTMAODEOBRAFUNCAOO apontamento por função.

O terceiro parâmetro é o Tipo de RH, não o código da pessoa. Mesmo na rotina por funcionário, onde o apontamento foi feito informando a pessoa: o servidor converteu a pessoa em tipo de RH ao gravar, e a remoção pede o tipo. Comentários antigos do produto o chamam de "código da pessoa" — estão errados.

As duas exigem processo aberto. Cada chamada apaga um registro, identificado pela chave completa — e no modelo por funcionário isso significa que um par de início e parada exige duas chamadas, uma para cada item.

Item inexistente não produz mensagem: a exclusão afeta zero linhas e a chamada termina normalmente. Confira o resultado consultando a tabela de apontamento depois. A versão por função não reagrega o consolidado da função — se o total consolidado importa, recalcule o custo previsto pelo Passo 15 da Preparação.

Três parâmetros: Ordem de Produção, processo e máquina. Exige processo aberto.

Ela remove apenas o último apontamento daquela máquina — o de maior item —, não o histórico inteiro. Para desfazer vários, chame repetidamente, uma vez por apontamento, do último para o primeiro. Não há parâmetro de item: não dá para escolher qual remover.

E ela zera as horas e os custos da máquina no processo, independentemente de quantos apontamentos restem. As horas reais, as horas ociosas, o custo unitário real e o custo unitário ocioso voltam todos a zero. Depois de remover um setup de uma máquina que tem outros, os totais dela ficam zerados mesmo com apontamentos remanescentes. Recalcule o custo antes de tomar decisão sobre esses números.

Como a remoção de insumo, recebe um único parâmetro com a lista serializada — mas o formato tem três números, não quatro:

ParâmetroFormato
P_PRODUTOS{OPD_COD;OPD_PD_COD;OPD_ITM} por apontamento, concatenados sem separador. Ordem de Produção, produto e item — vindos de FABORDPRO12.
{1001;138;1}{1001;138;2}

Não confunda os dois formatos. O da remoção de insumo tem quatro números e o segundo é o processo; o de produto tem três e o segundo é o produto. Trocar um pelo outro não produz erro: a chamada simplesmente não encontra nada e termina em silêncio, sem ter removido coisa alguma.

Esta é a remoção com o limite diferente das outras

Ela não exige processo aberto — exige apenas Ordem de Produção Firmada. A recusa é "A O.P. não está Firmada." Isso significa que o apontamento de produto pode ser removido com o processo já fechado, o que as outras três não permitem. Mas não é irrestrito: o limite se fecha quando a Ordem de Produção é fechada ou cancelada.

Como a de insumo, ela reverte a movimentação de estoque, exclui a Nota Fiscal e a ficha geradas, remove os números de série órfãos e por fim apaga o apontamento. E também confere se o período da ficha de estoque permite alteração.

Desfaz o início do processo: a data e hora de início realizado e o usuário responsável voltam a nulo, e o processo retorna ao estado de não iniciado. A janela prevista é preservada.

ParâmetroDescrição
P_OPD_CODOrdem de Produção.
P_PRO_CODProcesso. Opcional: nulo faz o servidor escolher o último processo aberto.

Informe o processo. Com P_PRO_COD nulo, o servidor escolhe sozinho o processo aberto de maior ordem de execução, desempatando pela data de início mais recente — e não devolve qual escolheu. Numa Ordem de Produção com processos concomitantes, você não sabe qual foi afetado sem consultar depois.

Só é possível desfazer do fim para o começo. Informando um processo que não esteja na maior ordem de execução aberta, a chamada é recusada apontando que existem processos de ordem superior.

O processo não pode ter apontamento nenhum de setup, mão de obra ou insumo — a recusa lista os tipos encontrados. Remova-os primeiro, pelos Passos 9 a 11. E sendo o único processo iniciado da Ordem de Produção, também não pode haver produto fabricado apontado.

Desfaz o fechamento: a data e hora de término realizado e o usuário responsável voltam a nulo. O início é preservado, então o processo fica aberto — não volta a não iniciado.

As duas rotinas de desfazer são complementares, não alternativas. FAB_PRC_REABRIRAPTPROCESSO desfaz o fechamento; FAB_PRC_CANCELARAPTPROCESSO desfaz a abertura. Para voltar um processo fechado ao estado de não iniciado são duas chamadas, nesta ordem: reabrir, remover os apontamentos, cancelar a abertura.

Exige Ordem de Produção Firmada. Como o cancelamento, respeita a ordem inversa da execução: nenhum processo de ordem posterior pode ter sido iniciado ou fechado, e não pode haver outro processo aberto em ordem diferente.

Com FRM_APTPRODANTESPROC = 0 na Fórmula, produto acabado já apontado impede a reabertura. A recusa é "A O.P. N já recebeu apontamento de Produtos Acabados." Nos valores 1 a 4 essa conferência não se aplica — ali o produto pode ser apontado antes do fim, e a reabertura continua possível.

Com o processo informado, o servidor não confere se ele está realmente fechado. Passar um processo aberto não produz mensagem e não muda nada. Com P_PRO_COD nulo, o servidor escolhe o último processo fechado — e também não devolve qual foi.

Validações e erros

As mensagens abaixo são as que o servidor devolve. N e M são substituídos pelos códigos envolvidos. Várias vêm precedidas do prefixo interno DBMATENCAO,OPERACAO| — descarte-o ao exibir para o usuário final.

Abrir e fechar o processo

MensagemCausaO que fazer
O processo N não existe na O.P. M.Par de Ordem de Produção e processo inexistente.Confira o processo em FAB_VIEW_AGENDAPROCESSO.
A O.P. N não está com o Status de "Firmada".Ordem de Produção em Simulação, Fechada ou Cancelada.Firme a Ordem de Produção — ver Preparação, Passo 9.
O processo N da O.P. M já foi iniciado.Abertura de processo que já está aberto.Siga para o apontamento. Para reabrir a janela, cancele a abertura pelo Passo 13.
O processo N da O.P. M não tem a "Data/Hora de Início" informada.Fechamento de processo que nunca foi aberto.Abra o processo primeiro.
O processo N da O.P. M já tem a "Data/Hora de Término" informada.Fechamento de processo já fechado.Reabra pelo Passo 14 se precisar alterar.
É necessário informar os apontamentos de Insumo para o processo N da O.P. M.Nenhum insumo apontado — ou o produto fabricado não foi apontado e o consumo "Conforme o Produzido" não pôde rodar.Confira as duas causas. Se há insumos de OPD_APONTAMENTO = 2, aponte o produto antes de fechar.
É necessário informar os apontamentos de Mão de Obra para o processo N da O.P. M.Nenhuma mão de obra apontada. A versão por função acrescenta "(por Função)" à mensagem.Aponte pelo Passo 5, na rotina compatível com o modelo da Ordem.
Os processos (N) não tem "Data/Hora Inicio" e/ou "Data/Hora Fim" preenchidas.Processos de ordem anterior ainda não concluídos.Conclua-os antes.
Os apontamentos de Setup (N) ... / Os apontamentos de Mão de Obra (N) ...Apontamento iniciado e não encerrado no fechamento.Encerre os apontamentos em aberto antes de fechar.
Falha no apontamento automático dos insumos "Conforme o Produzido" do processo N da O.P. M: ...Erro num ou mais insumos do consumo automático. A mensagem traz uma linha por insumo.Corrija o que cada linha aponta. Há mensagem análoga para a devolução automática.

Apontamentos

MensagemCausaO que fazer
A O.P. N não está Firmada.Apontamento de insumo ou produto com a Ordem fora do status Firmada.Firme a Ordem de Produção.
O processo N da O.P. M não está aberto.Apontamento de insumo, mão de obra ou setup com o processo não iniciado, ou já fechado.Abra o processo pelo Passo 3, ou reabra pelo Passo 14.
O produto N está inativo no cadastro.Insumo com status diferente de ativo.Ative o produto no cadastro.
A O.P. N não é compatível com apontamento de mão de obra por Função.Ordem de Produção com OPD_MODELOAPTRH = 0.Use FAB_PRC_APTMAODEOBRA, a rotina por funcionário.
A Quantidade de Pessoas deve ser maior que zero.Quantidade zerada ou negativa no apontamento por função.Informe ao menos uma pessoa.
Informe ao menos a Data/Hora de Início ou a Data/Hora de Término do apontamento.As duas datas nulas no apontamento por função.Informe pelo menos uma das duas.
O Motivo de Setup N tem que ser informado como ocorrência de "Parada" / de "Início".Ocorrência incoerente com o MSU_TIPO do motivo.Ver a tabela do Passo 6.
A máquina N não existe para o processo P da Fórmula F.Motivo de MSU_TIPO = 4 com máquina que não consta na Fórmula.Acrescente a máquina na Fórmula antes.
A máquina N não existe para o processo P da O.P. M.Máquina fora do processo, com motivo que não é de inclusão.Use um motivo de MSU_TIPO = 4, ou troque a máquina antes da abertura.
Motivo de Setup inválido! A máquina N já existe para o processo P da O.P. M.Motivo de inclusão de máquina usado com máquina já presente.Use um motivo de outro tipo.

Remoções e desfazer

MensagemCausaO que fazer
O processo não está aberto.Remoção de insumo com algum dos processos da lista fechado. A mensagem não diz qual.Confira os processos da lista, ou remova processo a processo.
A O.P. não está Firmada.Remoção de apontamento de produto com a Ordem fora de Firmada.É o único limite dessa remoção — o processo pode estar fechado.
Não há processos para cancelar a abertura na O.P. N.Cancelamento sem processo informado e sem nenhum processo aberto.Confira o estado dos processos.
Existem processos com a Ordem de Execução superior a do processo N na O.P. M.Cancelamento fora da ordem inversa da execução.Cancele do fim para o começo.
O processo N da O.P. M ja tem apontamentos de ...Cancelamento de abertura com apontamento existente. A mensagem lista os tipos.Remova os apontamentos pelos Passos 9 a 11.
A O.P. N ja tem apontamentos de PRODUTO FABRICADO.Cancelamento da abertura do único processo iniciado, com produto já apontado.Remova o apontamento de produto pelo Passo 12.
Não há processos para reabrir na O.P. N.Reabertura sem processo informado e sem nenhum processo fechado.Confira o estado dos processos.
A O.P. N já recebeu apontamento de Produtos Acabados.Reabertura com produto apontado, em Fórmula de FRM_APTPRODANTESPROC = 0.Remova o apontamento de produto antes.
Os processos (N) da O.P. M ja foram realizados posteriormente ao processo P.Reabertura fora da ordem inversa da execução.Reabra do fim para o começo.
Os processos (N) da O.P. M estão abertos.Reabertura com outro processo aberto em ordem diferente.Feche o que está aberto antes.

Termos desta página

Abrir e fechar processo
As duas operações que delimitam a janela em que se pode apontar. Abrir grava o início realizado e consome os insumos de comportamento "Automático do Previsto". Fechar grava o término realizado, consome os de "Conforme o Produzido" e devolve o saldo reservado não usado. Entre uma e outra, o processo está aberto — iniciado e ainda não fechado —, que é o estado exigido por quase todas as rotinas desta página.
Mão de obra por funcionário × por função
Dois modelos mutuamente exclusivos de registrar trabalho, escolhidos na Fórmula e herdados pela Ordem de Produção em OPD_MODELOAPTRH. Por funcionário nomeia a pessoa e registra início e parada em chamadas separadas. Por função registra a função e a quantidade de pessoas num intervalo, e admite ser preenchido em duas etapas. Cada modelo tem a sua rotina de apontamento e a sua de remoção; a Ordem de Produção aceita só um dos dois.
Setup e motivo de setup
Setup é a parada ou o início de uma máquina dentro do processo — troca de ferramenta, limpeza, ajuste, defeito. Todo setup exige um motivo cadastrado, e o MSU_TIPO desse motivo decide se ele é de parada ou de início, e se permite trazer uma máquina nova para o processo.
Lote
Identificação de um conjunto de unidades produzidas ou recebidas juntas, usada para rastrear origem e validade. No apontamento de insumo, o lote é obrigatório quando a filial e o produto usam controle de lote, e é você quem informa. No apontamento de produto fabricado, quem informa depende da sugestão de lote configurada na Fórmula.
Número de série
Identificação individual de cada unidade produzida. Diferente do lote, não há parâmetro de número de série no apontamento de produto: os números são gerados pelo servidor, e somente sob as três condições do Passo 7. Fora delas o apontamento é gravado sem série e sem aviso.

Dica — identificar a tabela e o campo a partir da interface do ERP

Quando você souber o que quer gravar mas não souber onde, use a própria interface do ERP para descobrir. Posicione o cursor no campo da tela e pressione F1: a Ajuda embutida mostra a tabela e o campo correspondentes.

Com o nome da tabela e do campo em mãos, procure-os no dicionário da sua instância para confirmar o tipo, o domínio e se estão liberados para o seu token.

Relação com páginas vizinhas

PáginaComo se liga a esta
Módulo de Produção
central
A regra de fronteira, a configuração da instância e o encadeamento dos cinco fluxos. Leia antes desta.
Ordem de Produção: Criação e Preparação É o passo anterior. O que a reserva separa lá é o que a abertura consome aqui, e o primeiro apontamento desta página fecha a janela de reversibilidade daquela.
Fórmula de Fabricação Três campos dela governam este fluxo: FRM_APONTAMENTO de cada insumo decide o momento do consumo automático, FRM_MODELOAPTRH decide qual rotina de mão de obra vale, e a sugestão de número de série decide se o produto sai rastreado.
Ordem de Produção: Documentos e Encerramento O passo seguinte. FRM_APTPRODANTESPROC decide quando a Nota Fiscal sai sozinha a partir do apontamento de produto, e o fechamento da Ordem de Produção tem conferências próprias.
Cadastro de Produto É lá que o controle de lote e o controle de número de série são configurados — e são eles que decidem o que este fluxo exige em cada apontamento.

Onde aprofundar

O dicionário da sua instância é a referência autoritativa: assinatura de cada rotina, domínio de cada campo e exemplo de uso pronto, sempre limitado ao que o seu token alcança.

Para consultar antes de apontar: FAB_RES_APTORDPRO61 lista os insumos apontáveis do processo, FAB_VIEW_INSUMODISPONIVEL e FAB_VIEW_INSUMODISPONIVELLOTE mostram o saldo, FAB_VIEW_PESSOA e FAB_VIEW_AFASTAMENTO trazem os funcionários, e FAB_VIEW_MAQUINA as máquinas da fábrica.

Com todos os processos fechados, o próximo passo é Ordem de Produção: Documentos e Encerramento.