Imprimi Página | Fechar janela

MATA215 - Refaz Acumulados

Impresso de: Helpfacil - Portal do conhecimento
Nome do Forum: ADVPL
Descrição do Forum: Dúvidas sobre a programação em ADVPL
URL:http://www.helpfacil.com.br/display_topic_threads.asp?ForumID=1&TopicID=43336
Data da Impressão: sábado, 20 de abril de 2024 at 07:41


Topico: MATA215 - Refaz Acumulados

Postado por: AVIANA86
Assunto: MATA215 - Refaz Acumulados
Data Postagem: segunda-feira, 27 de julho de 2020 at 14:28

Boa tarde, pessoal!

Vi no TDN uma fomra de automatizar uma rotina chamada refazer acumuldados. Lá tem até a sintax que deve ser usada, mas como sou novo nessa ferramenta gostaria da orientação de você para implementar essa função.

Programa Fonte:
MATA215.PRX
Sintaxe:
MATA215 - Refaz Acumulados ( PARAMIXB ) --> Nil

Retorno:
Nil(nulo)
Nil
Observações
Esta função pode ser executada através de uma rotina automática.



No exemplo abaixo, existe a preparação do ambiente para rodar esta rotina,
que é feita através do comando Prepare Environment.

// aemp[1] = Empresa (Caracter)
// aemp[2] = Filial (Caracter)
// Administrador = Através de qual usuário irá executar a rotina. (Caracter)
// senha = Senha do usuário (Caracter)

PREPARE ENVIRONMENT EMPRESA aemp[1] ;
FILIAL aemp[2] ;
USER ‘Administrador‘ ;
PASSWORD ‘senha‘ ;
TABLES "SA1","SB2","SC0","SC6","SC7","SC9","SD1","SD4","SE2","VCB" ;
MODULO "EST"


Exemplos
User Function jobm215()Local PARAMIXB := .T.           Local aemp := {"99","01"}PREPARE ENVIRONMENT EMPRESA aemp[1] Filial aemp[2] USER ‘Administrador‘ PASSWORD ‘senha‘ TABLES "SA1","SB2","SC0","SC6","SC7","SC9","SD1","SD4","SE2","VCB" MODULO "EST"MSExecAuto({|x| mata215(x)},PARAMIXB)RESET ENVIRONMENTReturn Nil

Parâmetros:
Nome               Tipo               Descrição               Default               Obrigatório               Referência     
PARAMIXB               Lógico               Caso a rotina seja rodada em batch(.T.), senão (.F.)                              X                    
Caso fique ruim para entender, segue o link:
https://tdn.totvs.com/display/public/mp/MATA215+-+Refaz+Acumulados


Respostas:

Postado Por: EMERSON.EN
Data Postagem: segunda-feira, 27 de julho de 2020 at 15:28

a implementação é como mostrado abaixo:

User Function jobm215()

Local PARAMIXB := .T. // aqui precisa ser .T. para indicar para a rotina que é execução automática
Local aEmp := {‘99‘,‘01‘} // empresa e filial onde será executada a rotina

     RpcClearEnv() // fecha algum ambiente aberto anteriormente
     RpcSetType(3) // indica que é uma execução automática, portando não deve consumir licenças
     RpcSetEnv(aEmp[1], aEmp[2], , ‘EST‘) // prepara o ambiente no módulo estoque para a empresa indicada no vetor aEmp
     OpenSxs() // abre o dicionário de dados
     InitPublic() // inicia as variáveis públicas
     SetsDefault() // configura os valores default (set dele, set century, etc)

     // executa automaticamente o procedimento, sem que haja
     // necessidade de interação com o usuário
     MSExecAuto({|x| mata215(x)}, PARAMIXB)

Return


pra executar você pode criar um job diretamente no ini, ou um schedule pelo configurador.




Imprimir Página | Fechar Janela