Fórmula de Fabricação (FABFORMULA1 / FABFORMULA3) — Documentação Complementar

Como cadastrar, validar e ativar a Fórmula de Fabricação pela API: as treze tabelas FABFORMULA*, a ordem de gravação e o ciclo de status

1. Introdução

A Fórmula de Fabricação é a receita do que se produz: o que sai pronto, por quais processos passa, que insumos consome, com que máquinas, com que mão de obra e sob que plano de análise. Nenhum outro fluxo do módulo de Produção começa sem ela — a Ordem de Produção nasce de uma Fórmula ativa, e a Produção do Dia só enxerga Fórmulas que atendam a restrições adicionais.

Esta página cobre o ciclo completo: criar o cadastro, preencher as treze tabelas na ordem em que elas dependem umas das outras, conferir a consistência antes de ativar, e ativar. Cobre também editar uma Fórmula já ativa, duplicar uma existente e simular o custo de produção antes de gerar qualquer Ordem.

Se você ainda não leu a página central do módulo, leia antes: a regra de fronteira, a configuração da instância e o encadeamento dos fluxos valem para o módulo inteiro e não se repetem aqui.

A Fórmula é uma das duas áreas do módulo que admitem gravação direta. As treze tabelas FABFORMULA* são cadastro, não movimento — você grava nelas por POST e PUT, dentro do ciclo de status descrito nesta página. As tabelas da Ordem de Produção, ao contrário, são de leitura.

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. Ele lista cada objeto liberado com a assinatura exata e um exemplo de uso pronto. A explicação de como chegar ao dicionário 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
POST Incluir linhas nas treze tabelas da Fórmula. FABFORMULA1, FABFORMULA3
PUT Alterar linhas já gravadas — inclusive mudar o status da Fórmula, que é como se ativa. FABFORMULA1
GET Consultar as Fórmulas cadastradas, os domínios de sugestão de lote e série, e simular o custo de produção. FAB_VIEW_FORMULA_FABRICACAO, FAB_RES_CUSTOFORMULA
PATCH Executar as rotinas de ação da Fórmula: conferir a consistência e duplicar. FAB_PRC_VALIDARFORMULA, FAB_PRC_DUPLICARFORMULA

As rotinas do módulo respondem a PATCH, não a POST. É a convenção do produto para rotina de ação. Se você montar a chamada com POST, ela é recusada mesmo com o objeto liberado.

4. Visão geral do fluxo

O cadastro de uma Fórmula nova segue oito operações via API, precedidas pelos cadastros de retaguarda:

  1. Obter o próximo código (method: GET em FABFORMULA1) — o FRM_COD é informado por você, não gerado pelo servidor.
  2. Criar o cabeçalho (method: POST em FABFORMULA1). Ele nasce com FRM_STATUS = 2, "Em Edição".
  3. Informar os produtos a fabricar (method: POST em FABFORMULA11).
  4. Informar os processos (method: POST em FABFORMULA2).
  5. Informar os insumos (method: POST em FABFORMULA3) e, se houver, os alternativos em FABFORMULA31.
  6. Informar os complementos de cada processo — mão de obra, máquinas, setups, ferramentas, especificações e fabricantes.
  7. Conferir a consistência (method: PATCH em FAB_PRC_VALIDARFORMULA). Passo opcional, mas é o que evita descobrir os problemas um a um na ativação.
  8. Ativar (method: PUT em FABFORMULA1) alterando FRM_STATUS para 1. É aqui que a validação completa roda.

O ciclo de status é o eixo desta página. A Fórmula só é editável em FRM_STATUS = 2 ("Em Edição"), e a passagem para 1 ("Ativa") dispara a validação completa no servidor. Para mexer numa Fórmula já ativa, o caminho é sempre o mesmo: voltar o status para 2, editar, e devolver para 1.

Toda gravação via API passa pelas mesmas regras de validação aplicadas quando a operação é feita pela tela do ERP — as validações são executadas no servidor e atuam igualmente em todos os canais de entrada.

5. Diagrama de execução

Convenção visual: azul (Retaguarda do ERP) · verde (Via API).

6. Aviso sobre liberação na retaguarda

Atenção — liberações e cadastros necessários na retaguarda.

O cadastro de Fórmula pela API depende de duas coisas controladas fora dela:

Equivalência de unidade em PRODEQUIV é o pré-requisito que mais derruba integração nova. A Fórmula exige equivalência cadastrada para a unidade de fabricação de cada produto a fabricar — sem condição alguma, independentemente de como os demais campos de unidade estejam preenchidos. A matriz completa está no Passo 4.

Os cadastros abaixo precisam existir antes, porque são referenciados pelas tabelas da Fórmula e validados pelo servidor na inclusão:

CadastroOnde é referenciadoObservação
Equivalências de unidade (PRODEQUIV)FABFORMULA3.FRM_PD_UNI e as validações de ativaçãoÉ o pré-requisito mais exigido da Fórmula. Ver a matriz no Passo 4.
Unidades (PRODUNI)FRM_UNI, FRM_UNIVOLUnidade de fabricação e unidade de volumetria.
Produtos (PROD)FRM_PD_COD, FRM_PD_CODPROC, FABFORMULA11, FABFORMULA3, FABFORMULA6Precisam estar ativos (PD_STATUS = 1). Ver Cadastro de Produto.
Processo (FABPROCESSO)FABFORMULA2.PRO_CODCada etapa de fabricação é um processo cadastrado.
Subprocesso (FABSUBPROCESSO)FABFORMULA3.SPR_CODCompõe a chave do insumo. Obrigatório mesmo quando a Fórmula não subdivide o processo.
Linha de produção (FABLINHAPRODUCAO)FABFORMULA1.LPR_CODCampo obrigatório do cabeçalho.
Local de estoque (LOCEST)FRM_LE_COD, FRM_LE_CODAM, FABFORMULA3.FRM_LE_CODLocal do produto fabricado, das amostras e de cada insumo.
Tipo de RH (FABTIPORH)FABFORMULA4.TRH_CODSó se a Fórmula prevê mão de obra.
Máquina (FABMAQUINA1)FABFORMULA5.MAQ_CODSó se a Fórmula prevê máquina programável.
Motivo de setup (FABMOTIVOSETUP)FABFORMULA51.MSU_CODSó se a Fórmula prevê setup.
Especificação de produto (FABPRODESP)FABFORMULA8.EPD_CODSó se a Fórmula tem especificações.
Funcionário (FABPESSOA1)FABFORMULA7.RHM_CODResponsável por cada item do plano de análise.
Tabela de preço (TABPRECO1)TBP_COD, TBP_COD2Obrigatória apenas nas configurações de custo que a exigem — ver o Passo 3.
Fabricante (PRODFABRICANTE)FABFORMULA32O par produto–fabricante já precisa existir no cadastro de produto.

Para conhecer os objetos exatos e as chaves de referência aceitas, consulte o dicionário oficial da sua instância.

O código da Fórmula (FRM_COD) é a chave primária de FABFORMULA1 e é informado pelo integrador. A coluna não tem valor automático e o servidor não a atribui na inclusão: a regra é o maior código existente mais um.

próximo FRM_COD = MAX(FRM_COD em FABFORMULA1) + 1

Recupere esse máximo com uma consulta prévia (method: GET) sobre FABFORMULA1. A forma exata de pedir o agregado está no dicionário oficial, na entrada do objeto.

Cuidado com concorrência. Com dois integradores criando Fórmulas ao mesmo tempo, ambos podem calcular o mesmo "próximo código", e o segundo POST falha por chave duplicada. Serialize a sequência consultar o próximo código → enviar o POST, ou trate o erro de chave duplicada e tente de novo com o código seguinte.

O mesmo vale para FRM_ITM em FABFORMULA7 e para os demais itens sequenciais das tabelas filhas: são numerados por quem grava.

Com o FRM_COD livre em mãos, inclua o cabeçalho por uma requisição com "method": "POST" sobre FABFORMULA1.

Campos obrigatórios sem valor automático

Os quinze campos abaixo são obrigatórios e não têm preenchimento automático — precisam vir no corpo da requisição:

CampoDescrição
FRM_CODCódigo da Fórmula, obtido no Passo 2.
FRM_DESDescrição da Fórmula.
FRM_UNIUnidade de fabricação. Campo central: é a unidade para a qual todo produto a fabricar precisa ter equivalência.
FRM_QTDMINQuantidade mínima recomendada.
FRM_QTDTESTEQuantidade destinada a teste de qualidade. Maior que zero restringe os métodos de sugestão de lote aceitos.
FRM_DATAData de cadastro da Fórmula.
FRM_TPPRCOrigem do preço de custo do insumo [0-Nenhum; 1-Preço de Tabela; 2-Custo Contábil; 3-Custo Gerencial; 4-Preço Médio; 5-Preço Médio Gerencial].
FRM_LE_CODLocal de estoque do produto fabricado.
LPR_CODLinha de produção da fábrica.
FRM_PRODUCAODIAParticipação na Produção do Dia [0-Não; 1-Sim; 2-Fórmula Genérica].
FRM_APTINSUFIMPROCGerar Nota Fiscal de insumos ao fim do processo [0-Não; 1-Sim].
FRM_MOMSUGESTAOLOTEMomento da sugestão do lote [0-No Apontamento; 1-Na Criação da OP].
FRM_MOMSUGESTAOSERIEMomento da sugestão da série [0-No Apontamento; 1-Na Criação da OP].
FRM_USAUNIVOLUso da unidade de volumetria [0-Não usar; 1-Insumo; 2-Fabricado; 3-Ambos].
FRM_FABMODELOModelo de produção [0-Quantidade Variável; 1-Quantidade Fixa]. Decide qual conjunto de percentuais os produtos a fabricar precisam ter — ver o Passo 4.

Campos com valor automático

Não é necessário enviar os campos abaixo; o servidor assume o valor padrão quando eles são omitidos:

CampoPadrãoObservação
FRM_STATUS2"Em Edição". É o único valor aceito na inclusão — ver o aviso abaixo.
FRM_TIPO1Tipo de produção [1-Própria Interna; 2-Própria em Terceiros; 3-Para Terceiros].
FRM_FINALIDADE0Finalidade [0-OP de Produção; 1-OP de Fracionamento/Embalagem].
FRM_APTPRODANTESPROC0Momento do apontamento do produto acabado — ver a tabela do próximo bloco.
FRM_TPPRC20Preço de custo do produto fabricado [0-Custo Total da O.P.; 1-Custo dos Insumos; 2-Preço de Tabela].
FRM_SUGESTAOLOTE0Método de sugestão de lote. Domínio completo em FAB_VIEW_SUGESTAOLOTE.
FRM_SUGESTAOSERIE0Método de sugestão de série. Domínio completo em FAB_VIEW_SUGESTAOSERIE.
FRM_UNIVALLOTE3Unidade da validade do lote [1-Dias; 2-Semanas; 3-Meses; 4-Anos].
FRM_EXIGEPERDA0Obrigatoriedade de registrar perda de produto acabado [0-Não; 1-Sim].
FRM_MODELOAPTRH0Modelo de apontamento de mão de obra [0-Por Funcionário; 1-Por Função]. Decide qual das duas rotinas de apontamento a Ordem de Produção aceita — ver a página de Apontamento.

A Fórmula nasce obrigatoriamente em "Em Edição". Enviar FRM_STATUS = 1 na inclusão é recusado com "A Fórmula N deve ser inserida com o status ‘Em Edição’". Inclua sem o campo, ou com o valor 2, e ative depois pelo Passo 10.

Os cinco valores de FRM_APTPRODANTESPROC

Este campo decide quando o produto acabado pode ser apontado e o que acontece em seguida. Ele governa o encerramento da Ordem de Produção, e por isso é o campo do cabeçalho com maior efeito nas outras páginas:

ValorSignificadoEfeito no fluxo da Ordem de Produção
0Somente ao término dos ProcessosO produto só é apontado depois que todos os processos estiverem fechados.
1Apontar antes do términoO apontamento do produto é aceito com processos ainda abertos.
2Apontar e gerar NF antes do términoAlém de apontar antes, a Nota Fiscal do produto acabado sai junto.
3Apontar e gerar NF no término do último ProcessoApontamento e nota saem automaticamente quando o último processo fecha.
4Apontar, gerar NF e fechar a O.P.Fechar o último processo aponta, emite a nota e fecha a Ordem de Produção.

Este domínio não aparece no dicionário. Ele está publicado aqui porque é onde você consegue lê-lo por inteiro. A matriz do efeito de cada valor sobre nota fiscal e encerramento está na página de Documentos e Encerramento.

Campos condicionados entre si

Se você informarEntão
FRM_TPPRC = 1TBP_COD é obrigatório. Com qualquer outro valor de FRM_TPPRC, TBP_COD precisa ficar nulo.
FRM_TPPRC2 = 2TBP_COD2 é obrigatório. Com qualquer outro valor de FRM_TPPRC2, TBP_COD2 precisa ficar nulo.
FRM_USAUNIVOL diferente de 0FRM_UNIVOL é obrigatório. Com FRM_USAUNIVOL = 0, FRM_UNIVOL precisa ficar vazio.
FRM_PD_CODPROC (Produto em Processo)O produto precisa estar ativo, ter o Tipo de Produto SPED configurado como "Produto em Processo (3)", ter equivalência para FRM_UNI, e a Fórmula precisa ter FRM_FINALIDADE = 0 e FRM_APTPRODANTESPROC igual a 0 ou 3.
FRM_SUGESTAOLOTE = 1FRM_FINALIDADE não pode ser 1.

Exemplo — POST FABFORMULA1 (cabeçalho da Fórmula)

{
    "method": "POST",
    "objectType": "TABLE",
    "objectName": "FABFORMULA1",
    "dataFields": [
        { "name": "FRM_COD",              "value": 42 },
        { "name": "FRM_DES",              "value": "Xarope base 500ml" },
        { "name": "FRM_UNI",              "value": "L" },
        { "name": "FRM_QTDMIN",           "value": 100.000000 },
        { "name": "FRM_QTDTESTE",         "value": 0.000000 },
        { "name": "FRM_DATA",             "value": "2026-08-16" },
        { "name": "FRM_TPPRC",            "value": 4 },
        { "name": "FRM_LE_COD",           "value": 1 },
        { "name": "LPR_COD",              "value": 1 },
        { "name": "FRM_PRODUCAODIA",      "value": 0 },
        { "name": "FRM_APTINSUFIMPROC",   "value": 0 },
        { "name": "FRM_MOMSUGESTAOLOTE",  "value": 0 },
        { "name": "FRM_MOMSUGESTAOSERIE", "value": 0 },
        { "name": "FRM_USAUNIVOL",        "value": 0 },
        { "name": "FRM_FABMODELO",        "value": 0 },
        { "name": "FRM_STATUS",           "value": 2 }
    ]
}

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

Ordem de gravação das treze tabelas

Cada tabela filha aponta para uma tabela acima dela, e a referência é conferida na inclusão. Grave nesta ordem:

OrdemTabelaO que guardaDepende de estar gravado
1FABFORMULA1Cabeçalho da Fórmula
2FABFORMULA11Produtos a fabricarFABFORMULA1
3FABFORMULA2Processos da FórmulaFABFORMULA1
4FABFORMULA3Insumos, por processo e subprocessoFABFORMULA2 · PRODEQUIV · FABSUBPROCESSO
5FABFORMULA31Insumos alternativosFABFORMULA3
6FABFORMULA4Tipos de RH previstosFABFORMULA2
7FABFORMULA5Máquinas programáveis do processoFABFORMULA2
8FABFORMULA51Setup de máquina previstoFABFORMULA5
9FABFORMULA6Ferramentas do processoFABFORMULA2
10FABFORMULA8Especificações do produtoFABFORMULA2, quando PRO_COD for informado
11FABFORMULA32Produto × fabricantePRODFABRICANTE
12FABFORMULA7Plano de análiseFABFORMULA1 · FABPESSOA1
13FABFORMULA71Cronograma do plano de análiseFABFORMULA7

Uma linha por produto que a Fórmula produz. A chave é (FRM_COD, FRM_PD_COD).

CampoDescrição
FRM_CODCódigo da Fórmula.
FRM_PD_CODCódigo do produto a fabricar.
FRM_PD_PERSOBDEMANDAPercentual sob demanda da quantidade a fabricar. Exigido quando FRM_FABMODELO = 0.
FRM_PD_QTDSOBDEMANDAQuantidade sob demanda. Exigida quando FRM_FABMODELO = 1.
FRM_PD_PERCUSTOPercentual de distribuição do custo entre os produtos. Padrão 0.
FRM_PD_QTDVALLOTE e FRM_PD_UNIVALLOTEValidade específica do lote deste produto. Nulos, valem os valores do cabeçalho. Preencha os dois ou nenhum.

Os percentuais dependem de FRM_FABMODELO

ModeloO que a ativação exige
FRM_FABMODELO = 0
Quantidade Variável
A soma de FRM_PD_PERSOBDEMANDA tem de dar exatamente 100, nenhum produto pode ficar com esse percentual zerado, a soma de FRM_PD_PERCUSTO também tem de dar 100, e nenhum produto pode ficar com percentual de custo zerado. Quatro conferências.
FRM_FABMODELO = 1
Quantidade Fixa
Nenhum produto pode ficar com FRM_PD_QTDSOBDEMANDA zerada. Os percentuais não são conferidos.

A matriz de PRODEQUIV — três exigências na ativação

Esta é a causa mais frequente de Fórmula que não ativa. O produto ou o insumo precisa ter equivalência cadastrada em PRODEQUIV para a unidade indicada:

Sobre o quêUnidade exigidaQuando é exigida
Produtos a fabricarFRM_UNI
unidade de fabricação
Sempre. Sem condição alguma.
Produtos a fabricarFRM_UNIVOL
unidade de volumetria
Quando FRM_USAUNIVOL for 2 ou 3 e FRM_UNIVOL estiver preenchido.
InsumosFRM_UNIVOL
unidade de volumetria
Quando FRM_USAUNIVOL for 1 ou 3 e FRM_UNIVOL estiver preenchido.

A primeira linha não é condicionada a FRM_USAUNIVOL. Ler a matriz como "tudo depende de FRM_USAUNIVOL" leva à conclusão de que uma Fórmula com FRM_USAUNIVOL = 0 dispensa PRODEQUIV. Não dispensa: a equivalência para a unidade de fabricação de cada produto a fabricar é exigida em qualquer configuração, e a Fórmula é recusada na ativação sem que a mensagem aponte a causa de forma óbvia.

Três exigências a mais, já na gravação do cabeçalho

Estas são conferidas assim que você grava ou altera FABFORMULA1, antes mesmo de tentar ativar:

Sobre o quêUnidade exigidaQuando é exigida
Produto em Processo (FRM_PD_CODPROC)FRM_UNISempre que FRM_PD_CODPROC estiver preenchido. O produto precisa também ter PD_UNI3 igual a FRM_UNI.
Produtos a fabricarFRM_UNISempre que a Fórmula já tiver ao menos um produto em FABFORMULA11.
Produtos a fabricarFRM_UNIVOLQuando FRM_USAUNIVOL for diferente de 0 e FRM_UNIVOL estiver preenchido.

Consequência prática da ordem. Como estas três são conferidas na gravação do cabeçalho, alterar FRM_UNI ou FRM_UNIVOL numa Fórmula que já tem produtos exige cadastrar a equivalência nova antes de enviar o PUT.

Exemplo — POST FABFORMULA11 (um produto a fabricar)

{
    "method": "POST",
    "objectType": "TABLE",
    "objectName": "FABFORMULA11",
    "dataFields": [
        { "name": "FRM_COD",              "value": 42 },
        { "name": "FRM_PD_COD",           "value": 138 },
        { "name": "FRM_PD_PERSOBDEMANDA", "value": 100.000000 },
        { "name": "FRM_PD_PERCUSTO",      "value": 100.000000 }
    ]
}

Uma linha por etapa de fabricação. Toda Fórmula precisa de pelo menos um processo — sem nenhum, a ativação é recusada. A chave é (FRM_COD, PRO_COD).

CampoDescrição
FRM_CODCódigo da Fórmula.
PRO_CODCódigo do processo, do cadastro FABPROCESSO.
PRO_ORDOrdem hierárquica de execução. Pode repetir, e é assim que se representam processos concomitantes.
PRO_HORAPREVHoras previstas, em decimal.
PRO_HORAPREVHHoras previstas, no formato de hora. Opcional.
PRO_EXIGEPERDAObrigatoriedade de registrar perda de insumos [0-Não; 1-Sim]. Padrão 0.

A ordem em PRO_ORD é herdada pela Ordem de Produção e determina a sequência de abertura e fechamento dos processos no apontamento.

Os insumos ficam em FABFORMULA3, sempre vinculados a um processo e a um subprocesso. A chave é (FRM_COD, PRO_COD, FRM_PD_COD, SPR_COD).

CampoDescrição
FRM_COD, PRO_CODFórmula e processo, já gravados em FABFORMULA2.
SPR_CODSubprocesso. Compõe a chave e é obrigatório mesmo quando a Fórmula não subdivide a etapa.
FRM_PD_CODCódigo do produto insumo.
FRM_PD_UNIUnidade do insumo. O par (FRM_PD_COD, FRM_PD_UNI) precisa existir em PRODEQUIV.
FRM_QTDUNIPREVQuantidade unitária prevista — por unidade produzida.
FRM_QTDTOTPREVQuantidade total prevista.
FRM_APONTAMENTOComportamento no apontamento. Domínio no bloco seguinte.
FRM_LE_CODLocal de estoque de onde o insumo sai. Opcional.
FRM_ORDOrdem de utilização do insumo dentro do processo. Opcional.
FRM_PERCPercentual do insumo para volumetria. Opcional.
FRM_PERCPERDAPercentual de perda prevista. Opcional.

O domínio de FRM_APONTAMENTO

Decide se o insumo é consumido automaticamente na Ordem de Produção e em que momento. A lista completa, incluindo os valores disponíveis na sua instalação, está na view FAB_VIEW_APTOINSUMO:

ValorSignificadoQuando o consumo acontece
0ManualSó por chamada explícita de apontamento de insumo.
1Automático do PrevistoNa abertura do processo, pela quantidade reservada.
2Conforme o ProduzidoNo fechamento do processo, proporcional ao que foi produzido.
3Conforme Lotes — Iniciais e ComplementaresNenhum consumo automático. Exige que o produto controle lote, e só é oferecido em instalações específicas.
4Conforme Lotes — SequenciaisNenhum consumo automático. Mesmas condições do valor 3.

Só os valores 1 e 2 disparam consumo automático. Insumo gravado com 3 ou 4 se comporta como Manual na Ordem de Produção: nada é consumido sozinho. O detalhe está na página de Apontamento.

Os valores 1 e 2 são ambos automáticos, mas consomem em momentos diferentes. Tratá-los como equivalentes é o erro que mais confunde o fluxo de apontamento. O detalhe está na página de Apontamento.

Usar FRM_APONTAMENTO = 2 em qualquer insumo restringe o cabeçalho. A Fórmula não pode ter mais de um produto a fabricar, e não pode estar com FRM_APTPRODANTESPROC = 0. As duas conferências rodam na ativação.

Calcular a quantidade do insumo por volumetria

Quando a Fórmula trabalha com unidade de volumetria, a função FAB_FNC_CALCVOLUMETRIAINSUMO calcula a quantidade unitária prevista de um insumo a partir de um percentual volumétrico. Ela recebe seis parâmetros, nesta ordem:

ParâmetroDescrição
P_PERCENTUALPercentual volumétrico do insumo em relação ao produto fabricado.
P_UNIVOLUMETRIASigla da unidade de volumetria usada como base.
P_CODPRODUTOCódigo do produto fabricado.
P_UNIPRODUTOSigla da unidade do produto fabricado na Fórmula.
P_CODINSUMOCódigo do insumo cuja quantidade será calculada.
P_UNIINSUMOSigla da unidade do insumo. Define também as casas decimais do arredondamento.

-9999 é valor sentinela, não quantidade. Quando o insumo não tem equivalência cadastrada em PRODEQUIV para a unidade de volumetria informada, a função devolve -9999 e a chamada tem sucesso — não há mensagem de erro. Gravar esse número em FRM_QTDUNIPREV é aceito sem nenhuma reclamação e deixa a Fórmula com quantidade inválida. Teste o retorno contra -9999 antes de usá-lo, e cadastre a equivalência que falta.

O cálculo parte de uma unidade do produto fabricado: o resultado é a quantidade do insumo por unidade produzida, não pela quantidade total da Fórmula.

Insumos alternativos (FABFORMULA31)

Um insumo pode ter substitutos, com ordem de preferência. A chave é (FRM_COD, PRO_COD, FRM_PD_COD, FRM_PD_CODA, SPR_COD), e a linha aponta para o insumo já gravado em FABFORMULA3.

CampoDescrição
FRM_PD_CODACódigo do produto insumo alternativo.
FRM_PREFERENCIAOrdem preferencial entre os alternativos.
FRM_QTDUNIPREVQuantidade unitária prevista do alternativo — pode diferir da do insumo original.

Estes conjuntos são opcionais e podem ser gravados em qualquer ordem entre si, desde que o processo correspondente já exista. Todos, exceto FABFORMULA51 e FABFORMULA32, apontam direto para FABFORMULA2.

TabelaO que guardaCampos além da chave
FABFORMULA4 Tipos de RH previstos por processo TRH_COD (tipo de RH) · FRM_QTD (quantidade de pessoas) · FRM_HORAPREV e FRM_HORAPREVH (horas previstas de trabalho)
FABFORMULA5 Máquinas programáveis do processo MAQ_COD · FRM_PRIORIDADE (preferência de sugestão entre máquinas do mesmo tipo) · FRM_HORAPREV e FRM_HORAPREVH (horas previstas de uso)
FABFORMULA51 Setup de máquina previsto MSU_COD (motivo do setup) · FRM_HORAPREV e FRM_HORAPREVH (horas previstas de parada). Depende de FABFORMULA5.
FABFORMULA6 Ferramentas do processo FER_PD_COD (produto ferramenta) · FER_QTD (quantidade necessária)
FABFORMULA8 Especificações do produto EPD_COD · PRO_COD (opcional: em branco, a especificação vale para a Fórmula toda) · EPD_TXT, PRO_INFORMACOES, EPD_INFORMACOES e EPD_ORDIMP
FABFORMULA32 Produto × fabricante da Fórmula PD_COD e CF_COD. O par precisa existir em PRODFABRICANTE; consulte-o pela view FAB_VIEW_PRODUTOFABRICANTE.

Estes complementos são incompatíveis com dois tipos de Fórmula. Uma Fórmula de Produção em Terceiros (FRM_TIPO = 2) não pode ter máquinas, RH nem ferramentas. Uma Fórmula Genérica (FRM_PRODUCAODIA = 2) não pode ter nada disso, nem insumos, nem produtos a fabricar, nem plano de análise. As conferências rodam na ativação — ver a tabela de erros.

O plano de análise descreve os ensaios de qualidade que o produto fabricado precisa passar. É opcional; quando existe, é ele que a Ordem de Produção usa para gerar o plano do lote.

Campo em FABFORMULA7Descrição
FRM_COD, FRM_ITMFórmula e número do item da análise. O item é numerado por quem grava.
FRM_ANALISEDescrição da análise.
FRM_ESPECIFICACAOEspecificação — o resultado esperado.
FRM_METODOMétodo da análise.
RHM_CODFuncionário responsável, do cadastro FABPESSOA1.

Cada item pode ter um cronograma em FABFORMULA71, para análises repetidas ao longo da validade:

Campo em FABFORMULA71Descrição
FRM_COD, FRM_ITMApontam para o item já gravado em FABFORMULA7.
FRM_ORDOrdem do período dentro do cronograma.
FRM_PERIODICIDADEPeríodo, em meses, contado a partir da fabricação.

O uso do plano no dia a dia da produção — gerar o plano do lote e registrar os resultados — está na página de Documentos e Encerramento.

Antes de mudar o status, chame FAB_PRC_VALIDARFORMULA. Ela aplica exatamente a mesma validação que roda na ativação, mas não altera nada: serve para descobrir o que falta sem mexer no status.

{
    "method": "PATCH",
    "objectType": "PROCEDURE",
    "objectName": "FAB_PRC_VALIDARFORMULA",
    "params": [
        { "name": "P_FRM_COD", "value": "42" }
    ]
}

Ela recusa na primeira inconsistência. As verificações não são acumuladas numa lista: a mensagem mostra um problema por vez. Corrija e chame de novo, até a chamada passar sem recusa. Não há retorno de sucesso — o resultado é a ausência de recusa.

São trinta e oito conferências, distribuídas em três blocos:

BlocoQuantasQuando se aplica
Conferências gerais21Em toda Fórmula.
Compatibilidade com a Produção do Dia9Somente quando FRM_PRODUCAODIA = 1.
Compatibilidade com a Fórmula Genérica8Somente quando FRM_PRODUCAODIA = 2.

As trinta e oito estão listadas por inteiro na seção Validações e erros, com a mensagem de cada uma.

Os nove da Produção do Dia governam a ativação, não a execução. Eles decidem se a Fórmula pode ser ativada declarando-se compatível com a Produção do Dia. Não têm efeito sobre o fluxo depois de ativa — esse está na página de Produção do Dia.

Ativar é alterar FRM_STATUS de 2 para 1 por um PUT em FABFORMULA1. É essa alteração que dispara a validação completa no servidor.

{
    "method": "PUT",
    "objectType": "TABLE",
    "objectName": "FABFORMULA1",
    "dataFields": [
        { "name": "FRM_STATUS", "value": 1 }
    ],
    "where": [
        { "type": "field", "name": "FRM_COD", "key": true, "value": 42 }
    ]
}
StatusSignificadoO que se pode fazer
0InativaFórmula desativada; não gera Ordem de Produção nova.
1AtivaPronta para gerar Ordem de Produção. Não é editável neste estado.
2Em EdiçãoEstado inicial e único estado editável.

Se a validação recusar, a Fórmula permanece em 2 e nada é alterado. Corrija o que a mensagem apontar e envie o PUT de novo.

Com a Fórmula ativa, siga para Ordem de Produção: Criação e Preparação.

Uma Fórmula ativa não aceita alteração. O caminho é sempre este, na ordem:

  1. Voltar o status para 2PUT em FABFORMULA1 com FRM_STATUS = 2.
  2. Editar o cabeçalho e as tabelas filhas que precisar.
  3. Conferir com FAB_PRC_VALIDARFORMULA.
  4. Devolver o status para 1, o que dispara a validação completa.

Não envie FRM_DATAATUALIZA nas suas requisições. Deixe o campo fora do corpo, tanto na inclusão quanto na alteração. Para alterar a Fórmula, use o ciclo de status acima.

Fórmula fora de FRM_STATUS = 2 recusa a alteração com "A Fórmula N não está com o Status em ‘Em Edição’". É a mensagem que indica que o primeiro passo do ciclo foi pulado.

Editar não desfaz Ordens de Produção já geradas. Elas guardaram a estrutura prevista no momento em que nasceram. A alteração vale para as Ordens criadas dali em diante.

Para partir de uma Fórmula existente em vez do zero, FAB_PRC_DUPLICARFORMULA cria uma cópia com código novo, já em FRM_STATUS = 2.

{
    "method": "PATCH",
    "objectType": "PROCEDURE",
    "objectName": "FAB_PRC_DUPLICARFORMULA",
    "params": [
        { "name": "P_FRM_COD", "value": "42" }
    ]
}
O que aconteceDetalhe
Doze tabelas são copiadasFABFORMULA1, FABFORMULA2, FABFORMULA3, FABFORMULA31, FABFORMULA32, FABFORMULA4, FABFORMULA5, FABFORMULA51, FABFORMULA6, FABFORMULA7, FABFORMULA71 e FABFORMULA8.
FABFORMULA11 não é copiadaA cópia nasce sem nenhum produto a fabricar. Informe-os antes de tentar ativar — ver o aviso abaixo.
O código da cópiaÉ o maior FRM_COD existente mais um. Não é informado por você nem devolvido pela chamada.
O status da cópia2, "Em Edição". É o estado correto para ajustar antes de ativar.

Informe os produtos a fabricar na cópia antes de ativar. Sem eles, os percentuais não são conferidos e a equivalência da unidade de fabricação não tem sobre o que ser exigida — a Fórmula ativa vazia de produtos e não gera Ordem de Produção alguma. Grave FABFORMULA11 logo depois de duplicar.

Como descobrir o código da cópia. A chamada não devolve o número. Consulte o maior FRM_COD de FABFORMULA1 logo em seguida, com a mesma ressalva de concorrência do Passo 2: se outro integrador criar uma Fórmula entre a duplicação e a consulta, o maior código passa a ser o dele. Serialize as duas operações quando isso for possível.

Código de origem inexistente não produz erro. A chamada termina normalmente e nada é criado. Confira sempre se a cópia apareceu antes de seguir.

FAB_RES_CUSTOFORMULA responde quanto custaria produzir determinada quantidade, devolvendo a estrutura completa que a Ordem de Produção teria — sem criar nada. Nenhuma Ordem é criada, nenhum estoque é reservado e nenhum saldo é movimentado.

{
    "method": "GET",
    "objectType": "PROCEDURE RESULT",
    "objectName": "FAB_RES_CUSTOFORMULA",
    "params": [
        { "name": "P_CODIGO", "value": "42" },
        { "name": "P_FL_COD", "value": "1" },
        { "name": "P_ST_COD", "value": "1" },
        { "name": "P_LE_COD", "value": "1" },
        { "name": "P_QTD",    "value": "100.000000" }
    ],
    "limit": 50
}

São dez parâmetros; os cinco últimos são opcionais:

ParâmetroDescrição
P_CODIGOCódigo cujo significado depende de P_QTDREF — ver o aviso abaixo.
P_FL_CODEmpresa ou filial da simulação.
P_ST_CODSetor ou centro de custo.
P_LE_CODLocal de estoque.
P_QTDQuantidade a produzir, na unidade de fabricação da Fórmula.
P_DATAData usada na busca dos preços de custo. Opcional, padrão hoje.
P_QTDREFDefine o que P_CODIGO representa [0-Fórmula de Fabricação; 1-Matéria Prima Principal; 2-Produto Fabricado]. Opcional, padrão 0.
P_PROGRAMACAOData e hora de início da programação dos processos simulados. Opcional, padrão nulo.
P_TBP_CODTabela de preço usada no custo dos insumos. Opcional, padrão 1.
P_RECURSAOExpandir em cascata a Fórmula dos insumos que também são fabricados. Opcional, padrão 1, que expande.

O retorno é heterogêneo: filtre por TABELA_NOME antes de interpretar qualquer coluna. Cada linha representa um registro de uma tabela diferente da Ordem de Produção simulada, e as colunas que não pertencem à linha corrente vêm vazias. Os valores possíveis são FABORDPRO1 (cabeçalho), FABORDPRO11 (produtos a fabricar), FABORDPRO2 (processos), FABORDPRO3 (insumos previstos), FABORDPRO3SUB (insumos de subprodutos), FABORDPRO4 (mão de obra), FABORDPRO5 e FABORDPRO51 (máquinas e setups) e FABORDPRO8 (informações complementares). A coluna RESULTADO_ID agrupa as linhas de uma mesma execução.

O result set pode ser grande. Uma Fórmula com muitos processos e insumos, com recursão ligada, produz muitas linhas. Use limite na requisição quando for apenas conferir o cabeçalho.

Esta rotina é irmã de FAB_PRC_GERAROPFORMULA: mesmos parâmetros iniciais, mas aquela cria a Ordem de Produção. Use esta para conferir o custo antes, e aquela para efetivar — ver Criação e Preparação.

Validações e erros

As mensagens abaixo são as que o servidor devolve. Nas que mencionam um código, o N é substituído pelo número da Fórmula. Algumas vêm precedidas do prefixo interno DBMATENCAO,OPERACAO|, que antecede o texto da mensagem — descarte-o ao exibir para o usuário final.

Na gravação e na alteração — dezessete conferências

Estas rodam a cada POST ou PUT em FABFORMULA1, antes de qualquer tentativa de ativação:

MensagemCausaO que fazer
A Fórmula N não está com o Status em "Em Edição".Alteração numa Fórmula que não está em FRM_STATUS = 2.Volte o status para 2 antes de editar — Passo 11.
A Fórmula N deve ser inserida com o status "Em Edição".Inclusão com FRM_STATUS = 1.Inclua com 2 ou omita o campo, e ative depois.
A Matéria Prima Principal N está inativa no cadastro.FRM_PD_COD aponta para produto com PD_STATUS diferente de 1.Ative o produto no cadastro, ou escolha outro.
Ao usar "Preço de Custo para Insumo" como "Preço de Tabela (1)" é necessário informar uma "Tabela de Preços".FRM_TPPRC = 1 sem TBP_COD.Informe TBP_COD.
Somente deve ser informado uma "Tabela de Preços" quando o campo "Preço de Custo para Insumo" contiver "Preço de Tabela (1)".TBP_COD informado com FRM_TPPRC diferente de 1.Deixe TBP_COD nulo.
Ao usar "Preço de Custo para Produto Fabricado" como "Preço de Tabela (1)" é necessário informar uma "Tabela de Preços".FRM_TPPRC2 = 2 sem TBP_COD2.Informe TBP_COD2.
Somente deve ser informado uma "Tabela de Preços" quando o campo "Preço de Custo para Produto Fabricado" contiver "Preço de Tabela (1)".TBP_COD2 informado com FRM_TPPRC2 diferente de 2.Deixe TBP_COD2 nulo.
A Sugestão de Lote "Prefixo da Máquina/Data/Sequencia/OP." não é compatível com a Finalidade da Produção "OP de Fracionamento/Embalagem"FRM_SUGESTAOLOTE = 1 com FRM_FINALIDADE = 1.Escolha outro método de sugestão de lote, ou outra finalidade.
O Produto em Processo N está inativo no cadastro.FRM_PD_CODPROC aponta para produto inativo.Ative o produto, ou deixe o campo nulo.
O Produto em Processo N não tem Unidade de Equivalencia configurada para U.Falta equivalência do Produto em Processo para FRM_UNI, ou PD_UNI3 do produto é diferente de FRM_UNI.Cadastre a equivalência em PRODEQUIV e confira PD_UNI3 no produto.
Não existe Unidade de Equivalencia "U" configurada para o Produto a Fabricar.Falta equivalência de um produto de FABFORMULA11 para FRM_UNI.Cadastre a equivalência — ver a matriz do Passo 4.
É necessário informar uma "Unidade de Volumetria".FRM_USAUNIVOL diferente de 0 com FRM_UNIVOL vazio.Informe FRM_UNIVOL.
Não existe Unidade de Equivalencia "U" configurada para o Produto a Fabricar.Falta equivalência de um produto de FABFORMULA11 para FRM_UNIVOL.Cadastre a equivalência da unidade de volumetria.
Esta fórmula não utiliza a "Unidade de Volumetria".FRM_USAUNIVOL = 0 com FRM_UNIVOL preenchido.Limpe FRM_UNIVOL, ou mude FRM_USAUNIVOL.
O Produto em Processo N não tem o "Tipo de Produto SPED" configurado como "Produto em Processo (3)".O produto apontado por FRM_PD_CODPROC tem outro tipo SPED.Ajuste o Tipo de Produto no cadastro, ou escolha outro produto.
A Fórmula N não tem a finalidade de "O.P. de Produção". Não deve ser informado Produto em Processo.FRM_PD_CODPROC preenchido com FRM_FINALIDADE diferente de 0.Limpe FRM_PD_CODPROC, ou mude a finalidade para 0.
O "Produto em Processo" só deve ser informado em casos onde o "Apontamento do Produto Fabricado" ocorra no "Término dos Processos".FRM_PD_CODPROC preenchido com FRM_APTPRODANTESPROC fora de 0 e 3.Use FRM_APTPRODANTESPROC igual a 0 ou 3, ou limpe o Produto em Processo.

Na ativação — vinte e uma conferências gerais

Estas valem para toda Fórmula, qualquer que seja o tipo:

MensagemCausa e o que fazer
A soma dos "Percentuais sob demanda" do(s) produto(s) a fabricar da Fórmula N é diferente de 100%.Com FRM_FABMODELO = 0, a soma de FRM_PD_PERSOBDEMANDA em FABFORMULA11 precisa dar exatamente 100.
É necessário informar o "Percentual sob demanda" do(s) produto(s) a fabricar da Fórmula N.Com FRM_FABMODELO = 0, algum produto está com FRM_PD_PERSOBDEMANDA zerado.
A soma dos "Percentuais de distribuição do Custo" da Fórmula N é diferente de 100%.Com FRM_FABMODELO = 0, a soma de FRM_PD_PERCUSTO precisa dar 100.
A configuração dos "Percentuais de distribuição do Custo" da Fórmula N possui produto(s) com percentual zerado.Com FRM_FABMODELO = 0, algum produto está com FRM_PD_PERCUSTO igual a zero.
É necessário informar a "Quantidade sob demanda" do(s) produto(s) a fabricar da Fórmula N.Com FRM_FABMODELO = 1, algum produto está com FRM_PD_QTDSOBDEMANDA zerada.
Os produtos a fabricar P da Formula N devem ter a Quantidade e a Unidade de validade do lote preenchidas em conjunto (ambas ou nenhuma).Em FABFORMULA11, FRM_PD_QTDVALLOTE e FRM_PD_UNIVALLOTE foram preenchidos pela metade. A mensagem lista os produtos.
A Fórmula N não tem processos informados.Nenhuma linha em FABFORMULA2. Grave ao menos um processo — Passo 5.
A Fórmula N utiliza Sugestão de Lote por Matéria Prima Principal, porém a mesma não foi definida.FRM_SUGESTAOLOTE em 3, 8 ou 9 com FRM_PD_COD nulo. Informe a matéria prima principal.
A Fórmula N utiliza "Sugestão de Lote por Matéria Prima Principal", recurso NÃO compatível com a "Criação do lote na Geração da OP"FRM_SUGESTAOLOTE em 3, 8 ou 9 com FRM_MOMSUGESTAOLOTE = 1. Use FRM_MOMSUGESTAOLOTE = 0.
A Fórmula N utiliza reserva Amostras para a Qualidade. A Sugestão de Lote não pode variar por apontamento.FRM_QTDTESTE maior que zero com um método de sugestão de lote por apontamento (1, 4, 6, 8, 10 ou 12). Escolha o método equivalente por OP.
A Matéria Prima da Fórmula N não foi configurada como insumo.FRM_PD_COD está preenchido mas o produto não aparece em FABFORMULA3. Inclua-o como insumo.
Para usar o Comportamento de Apontamento "Conforme o Produzido (2)" em algum insumo, a Fórmula N não pode ter mais de um Produto a Fabricar.Algum insumo está com FRM_APONTAMENTO = 2 e a Fórmula tem mais de uma linha em FABFORMULA11.
Para usar o Comportamento de Apontamento "Conforme o Produzido (2)" em algum insumo, a Fórmula N não pode estar configurada com "Apontar Produto Acabado" = "Somente ao término dos Processos (0)".Algum insumo está com FRM_APONTAMENTO = 2 e o cabeçalho está com FRM_APTPRODANTESPROC = 0.
Existem produtos a fabricar na Fórmula N que não tem a equivalência para a Unidade de Volumetria "U". Produtos: ...Falta equivalência em PRODEQUIV para FRM_UNI. Exigida sempre — ver a matriz do Passo 4. A mensagem lista os produtos.
Existem produtos a fabricar na Fórmula N que não tem a equivalência para a Unidade de Volumetria "U". Produtos: ...Falta equivalência para FRM_UNIVOL. Só é exigida com FRM_USAUNIVOL em 2 ou 3.
Existem insumos na Fórmula N que não tem a equivalência para a Unidade de Volumetria "U". Insumos: ...Falta equivalência dos insumos para FRM_UNIVOL. Só é exigida com FRM_USAUNIVOL em 1 ou 3.
É necessário informar um Produto em Processo para a Fórmula N.A instância usa Produto em Processo e a Fórmula tem FRM_FINALIDADE = 0 com FRM_PD_CODPROC nulo.
Para ser "Produção em Terceiros", a Fórmula "N" não pode ter mais de um Processo de Fabricação.FRM_TIPO = 2 com mais de uma linha em FABFORMULA2.
Para ser "Produção em Terceiros", a Fórmula "N" não pode ter Máquinas.FRM_TIPO = 2 com linhas em FABFORMULA5.
Para ser "Produção em Terceiros", a Fórmula "N" não pode ter Recursos Humanos.FRM_TIPO = 2 com linhas em FABFORMULA4.
Para ser "Produção em Terceiros", a Fórmula "N" não pode ter Ferramentas.FRM_TIPO = 2 com linhas em FABFORMULA6.

Na ativação — nove conferências da Produção do Dia

Aplicam-se somente quando FRM_PRODUCAODIA = 1. Elas governam a ativação da Fórmula declarada compatível com a Produção do Dia, não a execução do fluxo:

MensagemCausa
Para ser compatível com a "Produção do Dia", a Fórmula N deve ter o Apontamento de Insumos definido como "Manual".FRM_APTINSUFIMPROC diferente de 0.
Para ser compatível com a "Produção do Dia", a Fórmula N deve ter o Comportamento para o Apontamento de Insumos definido como "Manual".Algum insumo com FRM_APONTAMENTO diferente de 0.
Para ser "Produção do Dia", a Fórmula "N" não pode ter mais de um Produto Fabricado.Mais de uma linha em FABFORMULA11.
Para ser "Produção do Dia", a Fórmula "N" não pode ter mais de um Processo de Fabricação.Mais de uma linha em FABFORMULA2.
Para ser "Produção do Dia", a Fórmula "N" não pode ter Máquinas.Linhas em FABFORMULA5.
Para ser "Produção do Dia", a Fórmula "N" não pode ter Recursos Humanos.Linhas em FABFORMULA4.
Para ser "Produção do Dia", a Fórmula "N" não pode ter Ferramentas.Linhas em FABFORMULA6.
Para ser "Produção do Dia", a Fórmula "N" não pode ter Plano de Análise.Linhas em FABFORMULA7.
O produto P já existe na fórmula F.Um produto a fabricar desta Fórmula já está em outra Fórmula ativa e também marcada para Produção do Dia. A mensagem lista os pares produto–Fórmula.

Na ativação — oito conferências da Fórmula Genérica

Aplicam-se somente quando FRM_PRODUCAODIA = 2:

MensagemCausa
Já existe uma Fórmula de Fabricação definida como "Generica".Outra Fórmula ativa já está com FRM_PRODUCAODIA = 2. Só pode haver uma.
Para ser "Genérica", a Fórmula "N" não pode ter Produto Fabricado.Linhas em FABFORMULA11.
Para ser "Genérica", a Fórmula "N" não pode ter mais de um Processo de Fabricação.Mais de uma linha em FABFORMULA2.
Para ser "Genérica", a Fórmula "N" não pode ter Insumos.Linhas em FABFORMULA3.
Para ser "Genérica", a Fórmula "N" não pode ter Máquinas.Linhas em FABFORMULA5.
Para ser "Genérica", a Fórmula "N" não pode ter Recursos Humanos.Linhas em FABFORMULA4.
Para ser "Genérica", a Fórmula "N" não pode ter Ferramentas.Linhas em FABFORMULA6.
Para ser "Genérica", a Fórmula "N" não pode ter Plano de Análise.Linhas em FABFORMULA7.

Termos desta página

Subprocesso
Subdivisão de um processo, usada para agrupar insumos dentro da mesma etapa. Compõe a chave de FABFORMULA3 junto com a Fórmula, o processo e o produto, e por isso precisa ser informado mesmo quando a Fórmula não subdivide a etapa. O cadastro é FABSUBPROCESSO.
Insumo alternativo
Produto que pode substituir um insumo previsto, com ordem de preferência e quantidade própria. Fica em FABFORMULA31, sempre vinculado ao insumo original de FABFORMULA3.
Volumetria
Unidade auxiliar usada para expressar a proporção dos insumos por volume em vez de por peso ou por unidade. O cabeçalho declara se a Fórmula usa volumetria (FRM_USAUNIVOL) e qual é a unidade (FRM_UNIVOL). Cada produto ou insumo envolvido precisa ter equivalência cadastrada para essa unidade.
Sugestão de lote e de série
Regra que o sistema usa para compor automaticamente o número de lote e o número de série do produto fabricado, em vez de exigir que sejam digitados. A Fórmula escolhe o método (FRM_SUGESTAOLOTE, FRM_SUGESTAOSERIE) e o momento em que a sugestão acontece (FRM_MOMSUGESTAOLOTE, FRM_MOMSUGESTAOSERIE): no apontamento ou já na criação da Ordem de Produção. Os domínios completos estão em FAB_VIEW_SUGESTAOLOTE e FAB_VIEW_SUGESTAOSERIE.
Plano de análise
Conjunto de ensaios de qualidade que o produto fabricado precisa passar, com especificação, método e responsável. Fica em FABFORMULA7; o cronograma de repetições ao longo da validade fica em FABFORMULA71. É a partir dele que a Ordem de Produção gera o plano do lote.
Fórmula genérica
Fórmula sem produto a fabricar, sem insumos e sem complementos, declarada com FRM_PRODUCAODIA = 2. Serve de estrutura mínima para Ordens de Produção que não seguem uma receita específica. Só pode existir uma ativa por instância.
"Conforme o Produzido"
Comportamento de apontamento de insumo (FRM_APONTAMENTO = 2) em que o consumo é calculado proporcionalmente ao que foi efetivamente produzido, e lançado no fechamento do processo. Distingue-se de "Automático do Previsto" (valor 1), que consome a quantidade reservada já na abertura.

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áginaO que da Fórmula ela usa
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 É de uma Fórmula ativa que a Ordem de Produção nasce. A estrutura gravada aqui — processos, insumos, mão de obra, máquinas — é copiada para a Ordem no momento da geração.
Ordem de Produção: Apontamento FRM_APONTAMENTO de cada insumo decide o que é consumido automaticamente e em que momento. FRM_MODELOAPTRH decide qual das duas rotinas de mão de obra a Ordem aceita. A sugestão de série decide se o produto apontado sai com número de série.
Ordem de Produção: Documentos e Encerramento FRM_APTPRODANTESPROC, FRM_APTINSUFIMPROC e FRM_APTNOTATERCEIROS governam quando a nota sai sozinha e quando exige chamada. O plano de análise gravado aqui é a base do plano do lote.
Produção do Dia Só Fórmulas que passam nas nove conferências adicionais podem ser declaradas compatíveis com a Produção do Dia.
Cadastro de Produto É lá que se cadastram as equivalências de unidade em PRODEQUIV, o controle de lote e de número de série, e o Tipo de Produto SPED — três pré-requisitos que a Fórmula confere.

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 Fórmulas já cadastradas, as views do módulo entregam a estrutura pronta: FAB_VIEW_FORMULA_FABRICACAO traz o cabeçalho com os domínios já traduzidos para texto, FAB_VIEW_FORMULA traz a Fórmula desdobrada em produtos, processos e insumos, e FAB_VIEW_FORMULA_PRODUTO relaciona Fórmula e produto a fabricar.

Com a Fórmula ativa, o próximo passo é Ordem de Produção: Criação e Preparação.