Home

Linha Microsiga Protheus

Páginas filhas
  • MATA650 - Cadastro de Ordem de Produção

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.
Abrangências:Microsiga Protheus 11 , Protheus 10
Versões:Protheus 11
Compatível Países:Todos
Sistemas Operacionais:Todos
Compatível às Bases de Dados:Todos
Nível de Acesso:Nível 1 (Acesso Clientes)
Idiomas:Português (Brasil)Todos

 

Descrição: 

...

cadastramento de Ordens de Produção

...

que é um documento que inicia o processo de fabricação do produto

...

relacionando todos os componentes e as etapas de fabricação determinadas

...

por sua estrutura

...

, além disso, é essencial na geração das requisições dos materiais.

Importante:

...

o sistema administra as OPs

...

de sua geração ao seu término. A ordem de produção pode ser

...

incluída manualmente, OPs por Pedidos de Venda

...

(através da geração de OPs) e por ponto de pedido

...

(através do MRP

...

- projeção de estoque). 
É possível identificar as OPs incluídas manualmente e as geradas automaticamente

...

por meio de seus códigos.

As OPs são referenciadas nas atualizações e consultas através da seguinte composição de código

...

:

Número da OP + Item + Sequência.

As atualizações das OPs são efetuadas pela informação das movimentações internas (baixa). Uma OP é encerrada

...

quando o sistema detecta uma movimentação do Tipo Produção para o valor total da OP

...

ou quando a soma de movimentações do Tipo Produção totaliza a quantidade original da OP.

O custeio de uma OP é calculado através da soma dos custos dos componentes por nível

...

até o nível do produto pai.

É possível visualizar o andamento do processo de execução das OPs através da opção

...

Gráfico

...

 na janela de manutenção de Ordens de Produção.

Quando uma ordem de produção é

...

incluída, o sistema verifica automaticamente tudo o que é necessário para que esta produção possa ser executada e efetua o empenho de todos os materiais necessários conforme determinado em sua estrutura.

 

Programa fonte: MATA650.PRX

 

Sintaxe: MATA650 - Cadastro de Ordem de Produção ( aRotAuto, nOpcAuto ) --> Nil

 

Retorno: Nil (Nulo)

 

Observações:

...

 O parâmetro AUTEXPLODE, demonstrado no exemplo abaixo, é preenchido na execução da rotina automática para definir se as

...

OPs intermediárias e as solicitações de compras, que ainda não foram geradas, devem ser geradas automaticamente ou não.

...

Para cadastros manuais, é apresentada uma mensagem ao sair do ambiente de cadastro da Ordem de Produção

...

perguntando se as

...

OPs intermediárias e as solicitações de compras devem ser geradas.

O segundo parâmetro da

...

rotina Mata650 refere-se as opções de execução

...

considerando os seguintes critérios:

1 = Pesquisa

2 = Visualização

3 = Inclusão

4 = Alteração

5 = Exclusão

 

Bloco de código
themeMidnight
languagedelphi
titleExemplo
linenumberstrue
#Include '"Protheus.ch'"
#include "rwmake.ch"
#include "TbiConn.ch"

User Function Tmata650()
Local aMATA650		:= {}		//-Array com os campos
//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
//³ 3 - Inclusao     ³
//³ 4 - Alteracao    ³
//³ 5 - Exclusao     ³
//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
Local nOpc	    		:= 5
Private lMsErroAuto 	:= .F.

PREPARE ENVIRONMENT EMPRESA "01" FILIAL "0101"

aMata650  := {  {'C2_FILIAL'   ,"0101"				,NIL},;
				{'C2_PRODUTO'  ,"PROD001        "   	,NIL},;			  
				{'C2_NUM'      ,"000097"				,NIL},;			  
				{'C2_ITEM'     ,"01"					,NIL},;			  
				{'C2_SEQUEN'   ,"002"					,NIL}}				
				
ConOut("Inicio  : "+Time())

//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
//³ Se alteracao ou exclusao, deve-se posicionar no registro     ³
//³ da SC2 antes de executar a rotina automatica                 ³
//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
If nOpc == 4 .Or. nOpc == 5
	SC2->(DbSetOrder(1)) // FILIAL + NUM + ITEM + SEQUEN + ITEMGRD
	SC2->(DbSeek(xFilial("SC2")+"000097"+"01"+"002"))
EndIf
	
msExecAuto({|x,Y| Mata650(x,Y)},aMata650,nOpc)
If !lMsErroAuto
	ConOut("Sucesso! ")
Else
	ConOut("Erro!")
	MostraErro()
EndIf

ConOut("Fim  : "+Time())

RESET ENVIRONMENT

Return Nil

...