CONTEÚDO

  1. Visão Geral
  2. Exemplo de utilização
  3. Tela XXX
    1. Outras Ações / Ações relacionadas
  4. Tela XXX
    1. Principais Campos e Parâmetros
  5. Tabelas utilizadas


01. VISÃO GERAL

Esse estudo visa detalhar as alterações necessárias na rotina de Cálculo de Depreciação (ATFA050) para melhora de performance no processamento. 

Hoje já existe no sistema a opção de executar o cálculo da depreciação via procedure, porém esta opção só está disponível quando o cliente seleciona a opção "Não contabiliza" na tela de parâmetros da rotina.

Ou seja, somente o fato de instalar a procedure via configurador não garante que a rotina será executada via procedure. Esta particularidade não é de conhecimento de todos os clientes.

Portanto, foi definido que o trabalho para ganho de performance na rotina ATFA050, será executar o cálculo da depreciação via procedure sempre que essa estiver instalada.

02. EXEMPLO DE UTILIZAÇÃO

Neste passo, será verificada a melhora de performance da rotina ATFA050 quando executada via procedure.

O teste será feito no mesmo e com a mesma quantidade de registros.

Resultado dos testes:

O processamento com procedure apresentou uma melhora de 79% no cálculo de depreciação com 300 ativos.

EXECUÇÃO DA ROTINA COM PROCEDURE

Hoje para executar a rotina de apuração de resultados com procedure são necessários dois passos:

  1. Passo 1: Instalar a procedure via configurador:


2. Passo 2: Executar a rotina com a opção: "Não Contabiliza".

Obs.: Documentação de apoio


Este tratamento pode ser visto neste trecho do código do fonte ATFA050.
Só executa via procedure se mv_par01 = 3 (opção "Não Contabiliza")

NOVA REGRA DE PROCESSAMENTO DA ROTINA

De maneira resumida o novo processo só mudará quando a rotina for executada com a procedure instalada e com a opção de contabilização ativada.

Na execução deste cenário, o sistema deve executar o cálculo via procedure e chamar a contabilização offline logo após o término do processamento.

Fluxo resumido do processo:

A chamada da contabilização offline deve ser feita somente para o processo de depreciação.

Esta funcionalidade já existe no fonte CTBATF - Contabilização Offline do Ativo Fixo.

Deve ser verificada a possibilidade de  chamar as funções diretamente do fonte CTBATF.

Caso não seja possível devido a exibição de telas ou outras situações, devem ser criadas funções específicas no fonte ATFA050.


SUGESTÕES DE ALTERAÇÕES NO CÓDIGO FONTE (ATFA050)



Print do ponto descrito no fonte ATFA050



Print do ponto descrito no fonte ATFA050

Exemplo de implementação:


		/* ####  Exemplo de Implementação  ####  */
		If mv_par01 < 3
			cRotAtF 	:= "02" // Contabiliza somente Depreciação
			cAlsTabReg	:= FunName()+"_"+AllTrim(SM0->M0_CODIGO)+"_"+StrTran(AllTrim(xFilial("SN4"))," ", "_")
			dDtInicial  := Substr(Dtos(dDatabase),1,6)+"01" 
			dDtFinal    := Dtos(dDataBase)
			nConsidFil  := mv_par06
			aSelFil		:= {}
			aTmpFil		:= {}
			nAtvJaClas  := 2 // Considera somente ativos já classificados

			If mv_par06==1
				aSelFil := LoadSelFil(mv_par07,mv_par08) // Implementar Função
			EndIf
			
			//Definição de Quais Processos do Ativo Fixo serão contabilizados na Execução desta Rotina
			CTATFDADOS(cRotATF,@cAlsTabReg,dDtInicial,dDtFinal,nConsidFil,aSelFil,aTmpFil,nAtvJaClas)

			nIniLote 	:= 0
			nFinLote 	:= 0
			nQuebraPrc 	:= 2 // Não quebra por Processo
			nAglutLanc  := mv_par02
			nMostraLanc := mv_par01
			lUsaFlag	:= GETMV("MV_CTBFLAG",.F.,.F.)
			//Função de contabilização dos registros pendentes de contabilização do ambiente Ativo Fixo.
			CTATFCTB(cRotATF, cAlsTabReg ,nIniLote, nFinLote, nQuebraPrc, nAglutLanc, nMostraLanc, lUsaFlag, nConsidFil)
		EndIf





03. TELA XXXXX

Outras Ações / Ações relacionadas

AçãoDescrição
Inclua a ação Inclua a descrição relacionada
Inclua a ação Inclua a descrição relacionada
Inclua a ação Inclua a descrição relacionada

04. TELA XXXXX

Principais Campos e Parâmetros

CampoDescrição
Inclua o campo Inclua a descrição relacionada
Inclua o campo Inclua a descrição relacionada
Inclua o campo Inclua a descrição relacionada



05. TABELAS UTILIZADAS

<!-- esconder o menu --> 


<style>
div.theme-default .ia-splitter #main {
    margin-left: 0px;
}
.ia-fixed-sidebar, .ia-splitter-left {
    display: none;
}
#main {
    padding-left: 10px;
    padding-right: 10px;
    overflow-x: hidden;
}

.aui-header-primary .aui-nav,  .aui-page-panel {
    margin-left: 0px !important;
}
.aui-header-primary .aui-nav {
    margin-left: 0px !important;
}
</style>