Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

...

  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 melhorar a performance em seu 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" é selecionada 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 procedurepor ela.

Esta particularidade não é de conhecimento de todos os clientes e isso acaba gerando insatisfação com a performance da rotina.

PortantoDessa forma, 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 esta estiver instalada.

02. EXEMPLO DE UTILIZAÇÃO

ESTIMATIVA DO GANHO DE PERFORMANCE COM PROCEDURE

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

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

...

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

  1. Passo 1: Instalar a procedure via configurador:

...

NOVA REGRA DE PROCESSAMENTO DA ROTINA

A regra atual gera um problema para o cliente, pois por estar com a procedure instalada ele imagina que já está utilizando a rotina por ela.

Porém, se o parâmetro mv_par01 estiver configurado diferente de 3 (mv_par01<>3), a rotina é executada pelo ADVPL padrão.

Portanto, deve ser criada uma regra para, caso a procedure esteja instalada, sempre executar a rotina por ela.

A alteração deve ser feita no ponto após a execução da rotina via procedure. Se o cliente escolheu contabilizar (mv_par01<3), deve ser chamada a contabilização dos itens depreciados.

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:

Observações:

A chamada da contabilização offline deve ser feita somente para o processo de depreciação. Não deve contabilizar inclusões e outros movimentos, por exemplo.

Esta funcionalidade já existe no fonte CTBATF - Contabilização Offline do Ativo Fixo (Tipo de Função 02 - Depreciação).

Deve ser verificada a possibilidade de  chamar as funções de contabilização 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, baseadas nas funções do CTBATF.

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

  • Função ValidSP(ATFA050) - Retirar a validação do parâmetro mv_par01

    Dessa forma, sempre que a procedure estiver instalada, a rotina será executada por ela.

...


Print do ponto descrito no fonte ATFA050
Exemplo de implementação:


code
Bloco de código
languagedelphi
themeEclipseEmacs
firstline1
titleExemplo de Implementação
linenumberstrue
		/* ####  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. 

...

Outras Ações / Ações relacionadas

...

TABELAS UTILIZADAS

  • SN1 - Ativo Imobilizado  
  • SN3 - Saldos e Valores  
  • SN4 - Movimentações do Ativo Fixo  
  • CT2 - Lançamentos Contábeis  

04. TELA XXXXX

Principais Campos e Parâmetros

...

Card documentos
InformacaoUse esse box para destacar informações relevantes e/ou de destaque.
TituloIMPORTANTE!

...


HTML
<!-- 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>