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étodo | Para que serve aqui | Exemplo 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:
- Obter o próximo código (
method: GETemFABFORMULA1) — oFRM_CODé informado por você, não gerado pelo servidor. - Criar o cabeçalho (
method: POSTemFABFORMULA1). Ele nasce comFRM_STATUS = 2, "Em Edição". - Informar os produtos a fabricar (
method: POSTemFABFORMULA11). - Informar os processos (
method: POSTemFABFORMULA2). - Informar os insumos (
method: POSTemFABFORMULA3) e, se houver, os alternativos emFABFORMULA31. - Informar os complementos de cada processo — mão de obra, máquinas, setups, ferramentas, especificações e fabricantes.
- Conferir a consistência (
method: PATCHemFAB_PRC_VALIDARFORMULA). Passo opcional, mas é o que evita descobrir os problemas um a um na ativação. - Ativar (
method: PUTemFABFORMULA1) alterandoFRM_STATUSpara1. É 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:
- Verbos de escrita nos objetos.
POSTePUTprecisam estar habilitados para as tabelasFABFORMULA*que você vai gravar, ePATCHparaFAB_PRC_VALIDARFORMULAeFAB_PRC_DUPLICARFORMULA. A lista de verbos efetivamente liberados aparece no dicionário da sua instância. - Os cadastros de apoio referenciados pela Fórmula, mantidos pela operação dentro do ERP: unidades e equivalências, produtos, processos, subprocessos, linha de produção, locais de estoque, tipos de RH, máquinas, motivos de setup, especificações de produto e funcionários responsáveis pelas análises.
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:
| Cadastro | Onde é referenciado | Observaçã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_UNIVOL | Unidade de fabricação e unidade de volumetria. |
Produtos (PROD) | FRM_PD_COD, FRM_PD_CODPROC, FABFORMULA11, FABFORMULA3, FABFORMULA6 | Precisam estar ativos (PD_STATUS = 1). Ver Cadastro de Produto. |
Processo (FABPROCESSO) | FABFORMULA2.PRO_COD | Cada etapa de fabricação é um processo cadastrado. |
Subprocesso (FABSUBPROCESSO) | FABFORMULA3.SPR_COD | Compõe a chave do insumo. Obrigatório mesmo quando a Fórmula não subdivide o processo. |
Linha de produção (FABLINHAPRODUCAO) | FABFORMULA1.LPR_COD | Campo obrigatório do cabeçalho. |
Local de estoque (LOCEST) | FRM_LE_COD, FRM_LE_CODAM, FABFORMULA3.FRM_LE_COD | Local do produto fabricado, das amostras e de cada insumo. |
Tipo de RH (FABTIPORH) | FABFORMULA4.TRH_COD | Só se a Fórmula prevê mão de obra. |
Máquina (FABMAQUINA1) | FABFORMULA5.MAQ_COD | Só se a Fórmula prevê máquina programável. |
Motivo de setup (FABMOTIVOSETUP) | FABFORMULA51.MSU_COD | Só se a Fórmula prevê setup. |
Especificação de produto (FABPRODESP) | FABFORMULA8.EPD_COD | Só se a Fórmula tem especificações. |
Funcionário (FABPESSOA1) | FABFORMULA7.RHM_COD | Responsável por cada item do plano de análise. |
Tabela de preço (TABPRECO1) | TBP_COD, TBP_COD2 | Obrigatória apenas nas configurações de custo que a exigem — ver o Passo 3. |
Fabricante (PRODFABRICANTE) | FABFORMULA32 | O 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:
| Campo | Descrição |
|---|---|
FRM_COD | Código da Fórmula, obtido no Passo 2. |
FRM_DES | Descrição da Fórmula. |
FRM_UNI | Unidade de fabricação. Campo central: é a unidade para a qual todo produto a fabricar precisa ter equivalência. |
FRM_QTDMIN | Quantidade mínima recomendada. |
FRM_QTDTESTE | Quantidade destinada a teste de qualidade. Maior que zero restringe os métodos de sugestão de lote aceitos. |
FRM_DATA | Data de cadastro da Fórmula. |
FRM_TPPRC | Origem 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_COD | Local de estoque do produto fabricado. |
LPR_COD | Linha de produção da fábrica. |
FRM_PRODUCAODIA | Participação na Produção do Dia [0-Não; 1-Sim; 2-Fórmula Genérica]. |
FRM_APTINSUFIMPROC | Gerar Nota Fiscal de insumos ao fim do processo [0-Não; 1-Sim]. |
FRM_MOMSUGESTAOLOTE | Momento da sugestão do lote [0-No Apontamento; 1-Na Criação da OP]. |
FRM_MOMSUGESTAOSERIE | Momento da sugestão da série [0-No Apontamento; 1-Na Criação da OP]. |
FRM_USAUNIVOL | Uso da unidade de volumetria [0-Não usar; 1-Insumo; 2-Fabricado; 3-Ambos]. |
FRM_FABMODELO | Modelo 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:
| Campo | Padrão | Observação |
|---|---|---|
FRM_STATUS | 2 | "Em Edição". É o único valor aceito na inclusão — ver o aviso abaixo. |
FRM_TIPO | 1 | Tipo de produção [1-Própria Interna; 2-Própria em Terceiros; 3-Para Terceiros]. |
FRM_FINALIDADE | 0 | Finalidade [0-OP de Produção; 1-OP de Fracionamento/Embalagem]. |
FRM_APTPRODANTESPROC | 0 | Momento do apontamento do produto acabado — ver a tabela do próximo bloco. |
FRM_TPPRC2 | 0 | Preço de custo do produto fabricado [0-Custo Total da O.P.; 1-Custo dos Insumos; 2-Preço de Tabela]. |
FRM_SUGESTAOLOTE | 0 | Método de sugestão de lote. Domínio completo em FAB_VIEW_SUGESTAOLOTE. |
FRM_SUGESTAOSERIE | 0 | Método de sugestão de série. Domínio completo em FAB_VIEW_SUGESTAOSERIE. |
FRM_UNIVALLOTE | 3 | Unidade da validade do lote [1-Dias; 2-Semanas; 3-Meses; 4-Anos]. |
FRM_EXIGEPERDA | 0 | Obrigatoriedade de registrar perda de produto acabado [0-Não; 1-Sim]. |
FRM_MODELOAPTRH | 0 | Modelo 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:
| Valor | Significado | Efeito no fluxo da Ordem de Produção |
|---|---|---|
0 | Somente ao término dos Processos | O produto só é apontado depois que todos os processos estiverem fechados. |
1 | Apontar antes do término | O apontamento do produto é aceito com processos ainda abertos. |
2 | Apontar e gerar NF antes do término | Além de apontar antes, a Nota Fiscal do produto acabado sai junto. |
3 | Apontar e gerar NF no término do último Processo | Apontamento e nota saem automaticamente quando o último processo fecha. |
4 | Apontar, 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ê informar | Então |
|---|---|
FRM_TPPRC = 1 | TBP_COD é obrigatório. Com qualquer outro valor de FRM_TPPRC, TBP_COD precisa ficar nulo. |
FRM_TPPRC2 = 2 | TBP_COD2 é obrigatório. Com qualquer outro valor de FRM_TPPRC2, TBP_COD2 precisa ficar nulo. |
FRM_USAUNIVOL diferente de 0 | FRM_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 = 1 | FRM_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:
| Ordem | Tabela | O que guarda | Depende de estar gravado |
|---|---|---|---|
| 1 | FABFORMULA1 | Cabeçalho da Fórmula | — |
| 2 | FABFORMULA11 | Produtos a fabricar | FABFORMULA1 |
| 3 | FABFORMULA2 | Processos da Fórmula | FABFORMULA1 |
| 4 | FABFORMULA3 | Insumos, por processo e subprocesso | FABFORMULA2 · PRODEQUIV · FABSUBPROCESSO |
| 5 | FABFORMULA31 | Insumos alternativos | FABFORMULA3 |
| 6 | FABFORMULA4 | Tipos de RH previstos | FABFORMULA2 |
| 7 | FABFORMULA5 | Máquinas programáveis do processo | FABFORMULA2 |
| 8 | FABFORMULA51 | Setup de máquina previsto | FABFORMULA5 |
| 9 | FABFORMULA6 | Ferramentas do processo | FABFORMULA2 |
| 10 | FABFORMULA8 | Especificações do produto | FABFORMULA2, quando PRO_COD for informado |
| 11 | FABFORMULA32 | Produto × fabricante | PRODFABRICANTE |
| 12 | FABFORMULA7 | Plano de análise | FABFORMULA1 · FABPESSOA1 |
| 13 | FABFORMULA71 | Cronograma do plano de análise | FABFORMULA7 |
Uma linha por produto que a Fórmula produz. A chave é (FRM_COD, FRM_PD_COD).
| Campo | Descrição |
|---|---|
FRM_COD | Código da Fórmula. |
FRM_PD_COD | Código do produto a fabricar. |
FRM_PD_PERSOBDEMANDA | Percentual sob demanda da quantidade a fabricar. Exigido quando FRM_FABMODELO = 0. |
FRM_PD_QTDSOBDEMANDA | Quantidade sob demanda. Exigida quando FRM_FABMODELO = 1. |
FRM_PD_PERCUSTO | Percentual de distribuição do custo entre os produtos. Padrão 0. |
FRM_PD_QTDVALLOTE e FRM_PD_UNIVALLOTE | Validade específica do lote deste produto. Nulos, valem os valores do cabeçalho. Preencha os dois ou nenhum. |
Os percentuais dependem de FRM_FABMODELO
| Modelo | O que a ativação exige |
|---|---|
FRM_FABMODELO = 0Quantidade 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 = 1Quantidade 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 exigida | Quando é exigida |
|---|---|---|
| Produtos a fabricar | FRM_UNIunidade de fabricação | Sempre. Sem condição alguma. |
| Produtos a fabricar | FRM_UNIVOLunidade de volumetria | Quando FRM_USAUNIVOL for 2 ou 3 e FRM_UNIVOL estiver preenchido. |
| Insumos | FRM_UNIVOLunidade 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 exigida | Quando é exigida |
|---|---|---|
Produto em Processo (FRM_PD_CODPROC) | FRM_UNI | Sempre que FRM_PD_CODPROC estiver preenchido. O produto precisa também ter PD_UNI3 igual a FRM_UNI. |
| Produtos a fabricar | FRM_UNI | Sempre que a Fórmula já tiver ao menos um produto em FABFORMULA11. |
| Produtos a fabricar | FRM_UNIVOL | Quando 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).
| Campo | Descrição |
|---|---|
FRM_COD | Código da Fórmula. |
PRO_COD | Código do processo, do cadastro FABPROCESSO. |
PRO_ORD | Ordem hierárquica de execução. Pode repetir, e é assim que se representam processos concomitantes. |
PRO_HORAPREV | Horas previstas, em decimal. |
PRO_HORAPREVH | Horas previstas, no formato de hora. Opcional. |
PRO_EXIGEPERDA | Obrigatoriedade 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).
| Campo | Descrição |
|---|---|
FRM_COD, PRO_COD | Fórmula e processo, já gravados em FABFORMULA2. |
SPR_COD | Subprocesso. Compõe a chave e é obrigatório mesmo quando a Fórmula não subdivide a etapa. |
FRM_PD_COD | Código do produto insumo. |
FRM_PD_UNI | Unidade do insumo. O par (FRM_PD_COD, FRM_PD_UNI) precisa existir em PRODEQUIV. |
FRM_QTDUNIPREV | Quantidade unitária prevista — por unidade produzida. |
FRM_QTDTOTPREV | Quantidade total prevista. |
FRM_APONTAMENTO | Comportamento no apontamento. Domínio no bloco seguinte. |
FRM_LE_COD | Local de estoque de onde o insumo sai. Opcional. |
FRM_ORD | Ordem de utilização do insumo dentro do processo. Opcional. |
FRM_PERC | Percentual do insumo para volumetria. Opcional. |
FRM_PERCPERDA | Percentual 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:
| Valor | Significado | Quando o consumo acontece |
|---|---|---|
0 | Manual | Só por chamada explícita de apontamento de insumo. |
1 | Automático do Previsto | Na abertura do processo, pela quantidade reservada. |
2 | Conforme o Produzido | No fechamento do processo, proporcional ao que foi produzido. |
3 | Conforme Lotes — Iniciais e Complementares | Nenhum consumo automático. Exige que o produto controle lote, e só é oferecido em instalações específicas. |
4 | Conforme Lotes — Sequenciais | Nenhum 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âmetro | Descrição |
|---|---|
P_PERCENTUAL | Percentual volumétrico do insumo em relação ao produto fabricado. |
P_UNIVOLUMETRIA | Sigla da unidade de volumetria usada como base. |
P_CODPRODUTO | Código do produto fabricado. |
P_UNIPRODUTO | Sigla da unidade do produto fabricado na Fórmula. |
P_CODINSUMO | Código do insumo cuja quantidade será calculada. |
P_UNIINSUMO | Sigla 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.
| Campo | Descrição |
|---|---|
FRM_PD_CODA | Código do produto insumo alternativo. |
FRM_PREFERENCIA | Ordem preferencial entre os alternativos. |
FRM_QTDUNIPREV | Quantidade 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.
| Tabela | O que guarda | Campos 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 FABFORMULA7 | Descrição |
|---|---|
FRM_COD, FRM_ITM | Fórmula e número do item da análise. O item é numerado por quem grava. |
FRM_ANALISE | Descrição da análise. |
FRM_ESPECIFICACAO | Especificação — o resultado esperado. |
FRM_METODO | Método da análise. |
RHM_COD | Funcionário responsável, do cadastro FABPESSOA1. |
Cada item pode ter um cronograma em FABFORMULA71, para análises repetidas ao longo da validade:
| Campo em FABFORMULA71 | Descrição |
|---|---|
FRM_COD, FRM_ITM | Apontam para o item já gravado em FABFORMULA7. |
FRM_ORD | Ordem do período dentro do cronograma. |
FRM_PERIODICIDADE | Perí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:
| Bloco | Quantas | Quando se aplica |
|---|---|---|
| Conferências gerais | 21 | Em toda Fórmula. |
| Compatibilidade com a Produção do Dia | 9 | Somente quando FRM_PRODUCAODIA = 1. |
| Compatibilidade com a Fórmula Genérica | 8 | Somente 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 }
]
}
| Status | Significado | O que se pode fazer |
|---|---|---|
0 | Inativa | Fórmula desativada; não gera Ordem de Produção nova. |
1 | Ativa | Pronta para gerar Ordem de Produção. Não é editável neste estado. |
2 | Em Edição | Estado 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:
- Voltar o status para
2—PUTemFABFORMULA1comFRM_STATUS = 2. - Editar o cabeçalho e as tabelas filhas que precisar.
- Conferir com
FAB_PRC_VALIDARFORMULA. - 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 acontece | Detalhe |
|---|---|
| Doze tabelas são copiadas | FABFORMULA1, FABFORMULA2, FABFORMULA3, FABFORMULA31, FABFORMULA32, FABFORMULA4, FABFORMULA5, FABFORMULA51, FABFORMULA6, FABFORMULA7, FABFORMULA71 e FABFORMULA8. |
FABFORMULA11 não é copiada | A 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ópia | 2, "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âmetro | Descrição |
|---|---|
P_CODIGO | Código cujo significado depende de P_QTDREF — ver o aviso abaixo. |
P_FL_COD | Empresa ou filial da simulação. |
P_ST_COD | Setor ou centro de custo. |
P_LE_COD | Local de estoque. |
P_QTD | Quantidade a produzir, na unidade de fabricação da Fórmula. |
P_DATA | Data usada na busca dos preços de custo. Opcional, padrão hoje. |
P_QTDREF | Define o que P_CODIGO representa [0-Fórmula de Fabricação; 1-Matéria Prima Principal; 2-Produto Fabricado]. Opcional, padrão 0. |
P_PROGRAMACAO | Data e hora de início da programação dos processos simulados. Opcional, padrão nulo. |
P_TBP_COD | Tabela de preço usada no custo dos insumos. Opcional, padrão 1. |
P_RECURSAO | Expandir 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:
| Mensagem | Causa | O 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:
| Mensagem | Causa 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:
| Mensagem | Causa |
|---|---|
| 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:
| Mensagem | Causa |
|---|---|
| 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
FABFORMULA3junto 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 deFABFORMULA3. - 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 emFAB_VIEW_SUGESTAOLOTEeFAB_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 emFABFORMULA71. É 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" (valor1), 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ágina | O 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.