CONTEÚDO
- Visão Geral
- Exemplo de utilização
- 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âmetro | Tipo | Descrição | Obrigatório | Default |
---|---|---|---|---|
MV_PAR01 | Numérico | Importa pedidos de venda? 1-Sim; 2-Não. | X | 1 |
MV_PAR02 | Numérico | Importa previsão de vendas? 1-Sim; 2-Não. | X | 1 |
MV_PAR03 | Numérico | Importa plano mestre? 1-Sim; 2-Não. | X | 1 |
MV_PAR04 | Numérico | Importa empenhos de projeto? 1-Sim; 2-Não. | X | 1 |
MV_PAR05 | Data | Data inicial? (passar em branco - será utilizada a data inicial da demanda) | X | " " |
MV_PAR06 | Data | Data final? (passar em branco - será utilizada a data final da demanda) | X | " " |
MV_PAR07 | Caractere | De produto? | X | " " |
MV_PAR08 | Caractere | Até produto? | X | "ZZZZZZZZZZZZZZZ" |
MV_PAR09 | Caractere | De tipo de material? | X | " " |
MV_PAR10 | Caractere | Até tipo de material? | X | "ZZ" |
MV_PAR11 | Caractere | De grupo de material? | X | " " |
MV_PAR12 | Caractere | Até grupo de material? | X | "ZZZZ" |
MV_PAR13 | Caractere | De documento PV/PMP? | X | |
MV_PAR14 | Caractere | Até documento PV/PMP? | X | |
MV_PAR15 | Numérico | Considera pedidos com bloqueio de crédito? 1-Sim; 2-Não. | X | |
MV_PAR16 | Numérico | Desconta Pedido de venda da previsão? 1-Colocados; 2-Faturados; 3-Ambos; 4-Não. | X | |
MV_PAR17 | Numérico | Periodicidade. 1-Diário; 2-Semanal; 3-Quinzenal; 4-Mensal; 5-Trimestral; 6-Semestral. | X | |
MV_PAR18 | Numérico | Direção. 1-Para frente; 2-Ambas. | X | |
MV_PAR19 | Numérico | Abre tela com registros que não serão importados? 2-Não | X | 2 (obrigatório) |
MV_PAR20 | Numérico | Considera Data? 1-Entrega; 2-Faturamento | X | |
MV_PAR21 | Numérico | Utiliza armazém origem? 1-Sim;2-Não | X | |
MV_PAR22 | Caractere | De armazém? | X | " " |
MV_PAR23 | Caractere | Até 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âmetro | Tipo | Descrição | Obrigatório | Default |
---|---|---|---|---|
VB_FILIAL | Caractere | Filial da demanda a ser atualizada. | X | |
VB_CODIGO | Caractere | Código da demanda a ser atualizada. | X | |
VB_DTINI | Data | Data inicial da demanda. | X | |
VB_DTFIM | Data | Data 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âmetro | Tipo | Descrição | Obrigatório | Default |
---|---|---|---|---|
1 | Caractere | Código da filial da demanda processada | ||
2 | Caractere | Código da demanda processada. | ||
3 | Caractere | Resultado do processamento da demanda |
02. EXEMPLO DE UTILIZAÇÃO
#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.