Á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:

Image Removed

Fluxo resumido do processo:

Image Added

Observações:

A chamada da contabilização 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)

03. TELA XXXXX

Outras Ações / Ações relacionadas

...

  • 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.

Image Added
Print do ponto descrito no fonte ATFA050


  • Função A050Calc(ATFA050) - Após execução da rotina via procedure (Chamada da ExecuteSP), chamar a contabilização da depreciação.

    Verificar a possibilidade de chamar as funções CTATFDADOS(CTBATF) e CTATFCTB(CTBATF) com a opção 02 - Depreciação.

    Deve ser respeitado o parâmetro "Mostra Lançamento?" (mv_par01), informado pelo usuário.

Image Added
Print do ponto descrito no fonte ATFA050

Bloco de código
languagedelphi
themeEmacs
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. 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>