Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

...

Na opção Operações da Ordem na janela de manutenção de Ordens de Produção, irá mostrar as informações referente as operações da ordem de produção, porém os campos Data Inicial, Hora Inicial, Data Término e Hora Final, somente serão visualizadas quando há a integração APS x Protheus ou quando a empresa utiliza o módulo de Chão de Fábrica (MV_INTSFC = 1), no momento da alocação dos splits.

 Exemplo Execauto MATA650

EXECAUTO MATA650


Informações importantes do execauto:Observação:

1.  Ao sair do MATA650 são processadas todas as OPs que ainda não tiveram os empenhos e Ops intermediárias gerados, independente se a ordem de produção foi gerada pela rotina manual ou pelo execauto. Para não gerar os empenho e OPs intermediárias das OPs geradas pelo execauto é preciso atualizar os empenhos e Ops intermediárias gerados, independente se a ordem de produção foi gerada pela rotina manual ou pelo execauto. Para não gerar os empenho e OPs intermediárias das OPs geradas pelo execauto é preciso atualizar o campo C2_BATCH da OP em questão para S, na rotina específica.


Variáveis de controle do execauto:

Existem algumas variáveis que podem ser passadas para o execauto para determinar um comportamento específico da rotina:

1. AUTEXPLODE - Indica se deverá gerar as OP's intermediárias e SCs no final do processamento. Valores aceitos:

  • S - Sim. Irá gerar as OP's intermediárias e SCs no final do processamento.
  • Diferente de S ou não existir - Não irá gerar as OP's intermediárias e SCs no final do processamento.


2. GERAOPI - Indica se deverá gerar OP do produto intermediário a partir da OP do produto principal. Valores aceitos:

  • S - Sim. Irá gerar OP do produto intermediário.
  • Diferente de S - Não irá gerar OP do produto intermediário.
  • Não existir - Irá considerar o valor do parâmetro MV_GERAOPI.

Quando utilizada essa variável irá sobrepor o valor do parâmetro MV_GERAOPI.


3. GERASC - Indica de deverá gerar Solicitação de Compra a partir da inclusão da ordem de produção. Valores aceitos:

  • S - Sim. Irá gerar solicitação de compra a partir da inclusão da OP.
  • Diferente de S - Não irá gerar solicitação de compra.
  • Não existir - Irá considerar o valor do parâmetro MV_GERASC.

Quando utilizada essa variável irá sobrepor o valor do parâmetro MV_GERASC.


4. GERAEMP - Indica se deverá gerar os empenhos. Valores aceitos:

  • N - Não. Não irá gerar os empenhos para a ordem de produção. A geração dos empenhos será feita posteriormente e manualmente pelo MATA380/MATA318 - Empenhos.
  • Diferente de N ou não existir - Irá gerar os empenhos.

Esta variável somente é considerada quando a variável AUTEXPLODE está como S - Sim.

Ao estar parametrizado para não gerar os empenhos, o campo C2_BATCH da OP em questão é atualizado para S, na rotina específica.

...

Bloco de código
languagephp
#INCLUDE 'protheus.ch'
#INCLUDE 'parmtype.ch'
#INCLUDE 'TBICONN.CH'

User Function Tmata650()
local aArea         := GetArea()
Local aDados        := {}
Local cItem         := "01"         // Item
Local cNum          := "000001"     // Numero da OP
Local cProduto      := "Produto-01" // Produto
Local cSeq          := "001"        // Sequencia
Local dInicio       := Date()       // Previsao inicio
Local dEmissao      := Date()       // Data de emissao
Local dEntrega      := Date() + 1   // Previsao entrega
Local nOpcao        := 3            // Inclusao = 3 // Alteracao = 4 // Exclusao = 5
Local nQnt          := 1            // Quantidade
Private lMsErroAuto := .F.

PREPARE ENVIRONMENT EMPRESA "99" FILIAL "01" MODULO "PCP"

    //===============================================================//
    //                          INCLUSAO                             //
    //===============================================================//
    If nOpcao == 3         
		aDados :=   {{'C2_FILIAL'   ,xFilial('SC2')     ,NIL},;
                     {'C2_SEQUEN'   ,cSeq               ,NIL},; 
                     {'C2_DATPRI'   ,dInicio            ,NIL},;     
                     {'C2_DATPRF'   ,dEntrega           ,NIL},;
                     {'C2_PRODUTO'  ,cProduto           ,NIL},;
                     {'C2_QUANT'    ,nQnt               ,NIL},;
                     {'AUTEXPLODE'  ,"S"                ,NIL}} 
        
	//===============================================================//
    //                          ALTERACAO                            //
    //===============================================================//
    elseif nOpcao == 4
        aDados :=   {{'C2_FILIAL'   ,xFilial('SC2')     ,NIL},;  
                     {'C2_PRODUTO'  ,cProduto           ,NIL},;          
                     {'C2_NUM'      ,cNum               ,NIL},;         
                     {'C2_QUANT'    ,nQnt               ,NIL},;
                     {'C2_EMISSAO'  ,dEmissao           ,NIL},;
                     {'C2_DATPRI'   ,dInicio            ,NIL},;      
                     {'C2_DATPRF'   ,dEntrega           ,NIL}}

    //===============================================================//
    //                           EXCLUSAO                            //
    //===============================================================// 
    elseif nOpcao == 5
        aDados :=   {{'C2_FILIAL'   ,xFilial('SC2')     ,NIL},;  
                     {'C2_ITEM'     ,cItem              ,NIL},; 
                     {'C2_PRODUTO'  ,cProduto           ,NIL},;  
                     {'C2_NUM'      ,cNum               ,NIL},;
                     {'C2_SEQUEN'   ,cSeq               ,NIL}}
    Endif

    //===============================================================//
    //     Se alteracao(4) ou exclusao(5), deve-se posicionar no     //
    //     registro da SC2 antes de executar a rotina automatica     //
    //===============================================================//
    If nOpcao == 4 .Or. nOpcao == 5
            SC2->(DbSetOrder(1)) 
            SC2->(DbSeek(xFilial("SC2")+cNum+cItem+cSeq)) //FILIAL + NUM + ITEM + SEQUEN + ITEMGRD
    EndIf

    Begin Transaction

    MsExecAuto({|x, y|Mata650(x,y)},aDados,nOpcao)
    If !lMsErroAuto
            ConOut("operacao realizada com sucesso! " +Time()) 
    Else
        aErro := GetAutoGRLogMostraErro()
        Conout("Nao foi possivel realizar operacao" +Time())
        DisarmTransaction()
    EndIf
        
    End Transaction
    RestArea (aArea)
    

RESET ENVIRONMENT
 
Return Nil

...