Árvore de páginas

Carregando...


CONTEÚDO

  1. Visão Geral
  2. Exemplo de utilização
  3. Conteúdos Relacionados

01. VISÃO GERAL

Permitir execução automática da opção Atualizar Demandas, do programa PCPA36 - Demandas do MRP, onde é efetuada a importação de uma ou mais demandas, em um mesmo processo, com a mesma parametrização. O processamento é baseado em filtros, que são os mesmos das perguntas padrões da opção Importar, do mesmo programa, e na lista de todas as demandas selecionadas.

A execução automática do programa PCPA136Atu recebe três parâmetros:


Parâmetro 1 Array com as informações dos filtros a serem considerados no processamento, de acordo com as perguntas padrões da opção Importar do programa PCPA136 - Demandas do MRP.


ParâmetroTipoDescriçãoObrigatórioDefault
MV_PAR01NuméricoImporta pedidos de venda? 1-Sim; 2-Não.X1
MV_PAR02NuméricoImporta previsão de vendas? 1-Sim; 2-Não.X1
MV_PAR03NuméricoImporta plano mestre? 1-Sim; 2-Não.X1
MV_PAR04NuméricoImporta empenhos de projeto? 1-Sim; 2-Não.X1
MV_PAR05DataData inicial? (passar em branco - será utilizada a data inicial da demanda)X" "
MV_PAR06DataData final? (passar em branco - será utilizada a data final da demanda)X" "
MV_PAR07CaractereDe produto?X" "
MV_PAR08CaractereAté produto?X"ZZZZZZZZZZZZZZZ"
MV_PAR09Caractere

De tipo de material?

X" "
MV_PAR10CaractereAté tipo de material?X"ZZ"
MV_PAR11

Caractere

De grupo de material?X" "
MV_PAR12CaractereAté grupo de material?X"ZZZZ"
MV_PAR13CaractereDe documento PV/PMP? X
MV_PAR14CaractereAté documento PV/PMP? X
MV_PAR15NuméricoConsidera pedidos com bloqueio de crédito? 1-Sim; 2-Não.X
MV_PAR16NuméricoDesconta Pedido de venda da previsão? 1-Colocados; 2-Faturados; 3-Ambos; 4-Não.X
MV_PAR17NuméricoPeriodicidade. 1-Diário; 2-Semanal; 3-Quinzenal; 4-Mensal; 5-Trimestral; 6-Semestral.X
MV_PAR18NuméricoDireção. 1-Para frente; 2-Ambas.X
MV_PAR19NuméricoAbre tela com registros que não serão importados?  2-NãoX2 (obrigatório)
MV_PAR20NuméricoConsidera Data? 1-Entrega; 2-FaturamentoX
MV_PAR21NuméricoUtiliza armazém origem? 1-Sim;2-NãoX
MV_PAR22CaractereDe armazém? X" "
MV_PAR23CaractereAté armazém?X"ZZ"



Importante

Se algum dos parâmetros não for enviado no array, ou for enviado com o tipo ou tamanho do conteúdo fora do especificado, será considerado o último valor utilizado na execução manual da opção Atualizar Demandas, do programa PCPA136 - Demandas do MRP;
Se for enviado algum parâmetro fora do range acima, este será desconsiderado;
A manutenção das demandas do MRP atualizadas via ExecAuto devem ser realizadas por meio da rotina padrão de Demandas do MRP (PCPA136).


Parâmetro 2 Array com as informações das demandas que deverão ser atualizadas.


ParâmetroTipoDescriçãoObrigatórioDefault
VB_FILIALCaractereFilial da demanda a ser atualizada.X
VB_CODIGOCaractereCódigo da demanda a ser atualizada.X
VB_DTINIDataData inicial da demanda.X
VB_DTFIMDataData final da demanda.X


Parâmetro 3 Array de retorno com os resultados do processamento (não deverá ser acrescentado conteúdo no envio).


ParâmetroTipoDescriçãoObrigatórioDefault
1CaractereCódigo da filial da demanda processada

2CaractereCódigo da demanda processada.

3CaractereResultado do processamento da demanda

02. EXEMPLO DE UTILIZAÇÃO

Exemplo
#INCLUDE 'TOTVS.CH'
#INCLUDE 'PROTHEUS.CH'
#INCLUDE 'PARMTYPE.CH'
#INCLUDE "RWMAKE.CH"
 
User Function upcpa136()
Local aAutoMsg    := {}
Local aDemandas   := {}
Local aGets       := {}
Local aParams     := {}
Local lMsErroAuto := .F.
Local nIndex      := 0

// Seta job para empresa e filial desejadas caso não seja chamada via menu do Protheus
If !(Type("cFilAnt") == "C" .and. TCIsConnected())
    RPCSetEnv("T1","D MG 01 ",,,'PCP') //https://tdn.totvs.com/x/z-xn
EndIf
 
aadd(aParams,{"MV_PAR01",                  1})//Importa pedidos de venda?    - 1-Sim; 2-Não.
aadd(aParams,{"MV_PAR02",                  1})//Importa previsão de vendas?  - 1-Sim; 2-Não.
aadd(aParams,{"MV_PAR03",                  1})//Importa plano mestre?        - 1-Sim; 2-Não.
aadd(aParams,{"MV_PAR04",                  1})//Importa empenhos de projeto? - 1-Sim; 2-Não.
aadd(aParams,{"MV_PAR05",                " "})//Data inicial?	             - Range inicial de Data.
aadd(aParams,{"MV_PAR06",                " "})//Data final?	                 - Range final de Data.
aadd(aParams,{"MV_PAR07",                " "})//De produto?                  - Range inicial de produto.
aadd(aParams,{"MV_PAR08",  "ZZZZZZZZZZZZZZZ"})//Até produto?                 - Range final de produto.
aadd(aParams,{"MV_PAR09",                " "})//De tipo de material?         - Range inicial de tipo de produto. (B1_TIPO)
aadd(aParams,{"MV_PAR10",               "ZZ"})//Até tipo de material?        - Range final de tipo de produto.   (B1_TIPO)
aadd(aParams,{"MV_PAR11",                " "})//De grupo de material?        - Range inicial de grupo de produto.(B1_GRUPO)
aadd(aParams,{"MV_PAR12",             "ZZZZ"})//Até grupo de material?       - Range final de grupo de produto.  (B1_GRUPO)
aadd(aParams,{"MV_PAR13",                " "})//De documento PV/PMP?         - Range inicial de documentos.
aadd(aParams,{"MV_PAR14",        "ZZZZZZZZZ"})//Até documento PV/PMP?        - Range final de documentos.
aadd(aParams,{"MV_PAR15",                  2})//Considera PV Bloq. Crédito?  - Considera pedidos com bloqueio de crédito? 1-Sim; 2-Não.
aadd(aParams,{"MV_PAR16",                  4})//Desconta PV da Previsão?     - Desconta PV da previsão. 1-Colocados;2-Faturados;3-Ambos;4-Não.
aadd(aParams,{"MV_PAR17",                  1})//Periodicidade                - 1-Diário;2-Semanal;3-Quinzenal;4-Mensal;5-Trimestral;6-Semestral.
aadd(aParams,{"MV_PAR18",                  2})//Direção                      - 1-Para frente; 2-Ambas.
aadd(aParams,{"MV_PAR19",                  2})//Exibe inconsistências?       - Abre tela com registros que não serão importados? 1-Sim; 2-Não 
aadd(aParams,{"MV_PAR20",                  1})//Considera Data?              - 1-Entrega; 2-Faturamento
aadd(aParams,{"MV_PAR21",                  1})//Utiliza armazém origem?      - 1-Sim;2-Não
aadd(aParams,{"MV_PAR22",                " "})//De armazem?                  - Range inicial de armazém.
aadd(aParams,{"MV_PAR23",               "ZZ"})//Até armazem?                 - Range ifinal de armazém.    

//Indicar quais demandas serão atualizadas
 aGets := {}
 aadd(aGets, {"VB_FILIAL" ,cFilAnt   })
 aadd(aGets, {"VB_CODIGO" ,"AUTOMA-101"   })
 aadd(aGets, {"VB_DTINI"  ,"01/12/24"})
 aadd(aGets, {"VB_DTFIM"  ,"31/12/24"})
 aadd(aDemandas,aGets)
 
 aGets := {}
 aadd(aGets, {"VB_FILIAL" ,cFilAnt    })
 aadd(aGets, {"VB_CODIGO" ,"AUTOMA-102"    })
 aadd(aGets, {"VB_DTINI"  ,"01/12/24"})
 aadd(aGets, {"VB_DTFIM"  ,"31/12/24"})
 aadd(aDemandas,aGets)

MSExecAuto({|x,y,z| PCPA136Atu(x,y,z)},aParams,aDemandas,aAutoMsg) //Atualiza Demandas
 
If lMsErroAuto
    Alert("Erro")
    MostraErro()
Else      
	If Len(aAutoMsg) > 0
        For nIndex := 1 to Len(aAutoMsg)
             Conout(nIndex,aAutoMsg[nIndex,1],aAutoMsg[nIndex,2],aAutoMsg[nIndex,3])
        next nIndex
    EndIf     
	MsgInfo("Processamento efetuado com sucesso","OK")
EndIf
     
Return .T.
  

03. CONTEÚDOS RELACIONADOS