Base de conhecimento
Encontre respostas para suas dúvidas em quatro fontes de conhecimento diferentes ao mesmo tempo, simplificando o processo de pesquisa.

Cross Segmento - TOTVS Backoffice Linha Protheus - ADVPL - Definir a revisão a ser alterada na rotina automática MATA200

Dúvida
Estamos implementando a automatização de alguns processos e entre eles o de manutenção de estruturas utilizando a rotina automática MATA200. Verificamos na documentação do TDN e não localizamos forma de repassar para a rotina automática qual a revisão do produto está sendo alterada no momento da chamada da rotina. No exemplo que testamos, precisamos alterar a revisão 001 de um produto que atualmente está na revisão 002 (B1_REVATU).
Existe alguma variável que pode ser repassada para a rotina para esta implementação?

Ambiente
Cross Segmento - TOTVS Backoffice (Linha Protheus) – ADVPL – Todas as versões. 

Solução
Quando o processo de alteração da estrutura é realizado por ExecAuto, a rotina define a revisão automaticamente de acordo com a revisão atual do produto(B1_REVATU), porém a variável cRevisao, que guarda a revisão a qual irá processar, possui escopo Private e, portanto, é possível altera-la em qualquer momento, através de um ponto de entrada, após ela ter sido definida. 
No exemplo de ExecAuto a seguir, estou alterando a estrutura do produto PA-001, e a revisão atual deste produto é a '002'. O componente MP-003 está somente na revisão '001', então para que a alteração deste componente ocorra na revisão '001', defino o escopo da revisão, informando os campos G1_REVINIG1_REVFIM, e utilizo o ponto de entrada MTA200 para definir qual será a revisão do processo:

#Include 'Protheus.ch'
#Include 'TBICONN.ch'

User Function altMT200()
Local aCab := {}
Local aGets := {}
Local aItens := {}
PRIVATE lMsErroAuto := .F.

PREPARE ENVIRONMENT EMPRESA '99' FILIAL '01'

aCab := {{"G1_COD","PA-001 ",NIL},;
{"G1_QUANT",1,NIL},;
{"NIVALT","S",NIL},;
{"ATUREVSB1","N",NIL}}

aadd(aGets,{"G1_COD","PA-001 ",NIL})
aadd(aGets,{"G1_COMP","MP-001 ",NIL})
aadd(aGets,{"G1_TRT",Space(3),NIL})
aadd(aGets,{"G1_QUANT",1,NIL})
aadd(aGets,{"G1_PERDA",0,NIL})
aadd(aGets,{"G1_INI",dDataBase,NIL})
aadd(aGets,{"G1_FIM",CTOD("31/12/49"),NIL})
aadd(aGets,{"G1_REVINI",'001',NIL})
aadd(aGets,{"G1_REVFIM",'002',NIL})
aadd(aItens,aGets)

aGets := {}
aadd(aGets,{"G1_COD","PA-001 ",NIL})
aadd(aGets,{"G1_COMP","MP-003 ",NIL})
aadd(aGets,{"G1_TRT",Space(3),NIL})
aadd(aGets,{"G1_QUANT",5,NIL})
aadd(aGets,{"G1_PERDA",0,NIL})
aadd(aGets,{"G1_INI",dDataBase,NIL})
aadd(aGets,{"G1_FIM",CTOD("31/12/49"),NIL})
aadd(aGets,{"G1_REVINI",'001',NIL})
aadd(aGets,{"G1_REVFIM",'001',NIL})
aadd(aItens,aGets)

ConOut("Teste de Alteração")
ConOut("Inicio: "+Time())

MSExecAuto({|x,y,z| mata200(x,y,z)},aCab,aItens,4)

If lMsErroAuto
MostraErro()
Else
ConOut("Alterado com sucesso: "+Time())
EndIf

ConOut("Fim: "+Time())

RESET ENVIRONMENT

Return
#Include 'Protheus.ch'

User Function MTA200()
Local cOpc := PARAMIXB
Local lRet := .T.

cRevisao := '001'

Return lRet
Esse artigo foi útil?
Usuários que acharam isso útil: 0 de 0

0 Comentários

Por favor, entre para comentar.
X Fechar

Olá ,

Há pendência referente a um de seus produtos contratados para a empresa ().

Entre em contato com o Centro de Serviços TOTVS para tratativa.

Ligue! 4003-0015 opção 4 e 9 ou registre uma solicitação para CST – Cobrança – Verificação de pendências financeiras . clique aqui.

TOTVS

X Fechar

Olá ,

Seu contato não está cadastrado no Portal do Cliente como um perfil autorizado a solicitar consultoria telefônica.

Por gentileza, acione o administrador do Portal de sua empresa para: (1)configurar o seu acesso ou (2)buscar um perfil autorizado para registro desse atendimento.

Em caso de dúvidas sobre a identificação do contato administrador do Portal, ligue (11) 4003-0015, opção 7 e, em seguida, opção 4 para buscar o suporte com o time de Assessoria ao Portal do Cliente. . clique aqui.

TOTVS

X Fechar

Olá ,

Para o atendimento de "Consultoria Telefônica" você deverá estar de acordo com o Faturamento.

TOTVS

X Fechar

Olá,

Algo inesperado ocorreu, e o usuario nao foi reconhecido ou você nao se encontra logado

Por favor realize um novo login

Em caso de dúvidas, entre em contato com o administrador do Portal de Clientes de sua empresa para verificação do seu usuário, ou Centro de Serviços TOTVS.

Ligue! 4003-0015 opção 4 e 9 ou registre uma solicitação para CST – Cadastros . clique aqui.

TOTVS

Chat _

Preencha os campos abaixo para iniciar o atendimento:

Chat _