Árvore de páginas


01. DADOS GERAIS

Produto:

TOTVS Backoffice

Linha de Produto:

Linha Protheus

Segmento:

Serviços

Módulo:

TOTVS Backoffice (Linha Protheus) - Ativo Fixo (SIGAATF)

Função:ATFA050 - AF050FPR
País:Brasil
Ticket:Interno
Requisito/Story/Issue:DSERCTR1-39974


02. SITUAÇÃO/REQUISITO

O ponto de entrada AF050FPR permite a seleção de determinados ativos a serem desconsiderados no Cálculo Mensal de depreciação.

Atenção


Os exemplos utilizados nesse documento são meramente ilustrativos.

IMPORTANTE !!!


Os impactos causados pela utilização do ponto de entrada são de total responsabilidade do cliente que o implementou.

Este PE pode ser executado via PROCEDURE ou ADVPL, se for executado o calculo de depreciação sem procedure utiliza-se o PE em ADVPL, agora se for executado o calculo de depreciação com PROCEDURE deve ser utilizado o PE via PROCEDURE 



03. SOLUÇÃO

Explicação e contextualização sobre o uso do PE.


Ponto de entrada quando o Cálculo de Depreciação é realizada por procedures. Detalhe que para ser utilizada, esta procedure AF050FPR deve ser codificada/desenvolvida na linguagem nativa do SGBD utilizado.  Se utiliza ORACLE, codificar em ORACLE, se MSSQLSERVER codificar em SQLSERVER e se POSTGRES codificar em POSTGRES.

O exemplo abaixo está em Oracle.


Procedimento para utilizar a procedure AF050FPR ou qualquer outro Ponto de Entrada em procedure.

  • Instalar o pacote principal de procedure e verificar se o ponto de Entrada foi criada, atentando-se para o parâmetro MV_DROPPE.
  • Este deve estar parametrizado com "F" para que não se excluam os Pontos de Entradas.


Observe que essa procedure é sempre instalada no banco:


Obs: observe que o PE é sempre executada na chamada da procedure principal ATF001 da seguinte forma:

Chamada do PE via SQL
AF050FPR_11_T1 (vcFilial , vcN3_CBASE , vcN3_ITEM , vcN3_TIPO , vcN3_SEQ , IN_DATADEP , vcCalcula );

Exemplo em PROCEDURE:


Atenção

Importante se atentar que em procedure deve-se codificar, na linguagem do banco de  Dados.


Se codificado em ADVPL:

Exemplo em ADVPL
User Function AF050FPR()

	Local lRet := .F.
	Local cChave := Paramixb[1]
	Local aChave := {}

	// Monta array para itens que não serão depreciados
	// CBASE CITEM
	AADD(aChave, "100003 03 " )
	AADD(aChave, "100005 05 " )
	AADD(aChave, "111111 11 " )

	If Ascan(aChave, cChave) # 0
		lRet := .T.
		Alert("Ponto de entrada AF050FPR() executado")
	EndIf

Return lRet


04. DEMAIS INFORMAÇÕES



Contextualização PE

Evento de Chamada do PE via ADVPL
If ExistBlock("AF050FPR")
	If ExecBlock("AF050FPR",.F.,.F.,{cChave})
		DbSelectarea(cAliasSn3)
		(cAliasSn3)->( DbSkip() )
		Loop
	EndIf
EndIf
Evento de Chamada do PE via PROCEDURE
AF050FPR_11_XX (vcFilial , vcN3_CBASE , vcN3_ITEM , vcN3_TIPO , vcN3_SEQ , IN_DATADEP , vcCalcula );



Parâmetros e Retorno


Parâmetros em ADVPL:

ParâmetrosTipoDescrição
cChave - PARAMIXB[1]CaractereChave retornada para utilização


Parâmetros em PROCEDURE:

ParâmetrosTipoDescrição
IN_FILIALCaractereFilial utilizada
IN_CBASECaractereCódigo base
IN_ITEMCaractereItem do Código Base
IN_TIPOCaractereTipo do bem
IN_SEQCaractereSequencia da inclusão do bem
IN_DATACaractereData da depreciação
OUT_RESULTCaractereResultado retornado da procedure. Se "0" pula o registro, Se "1" não


Retorno do ponto de entrada ADVPL e PROCEDURE:

ModoRetornoTipo
PROCEDUREOUT_RESULTCaractere
ADVPLlRetLógico


05. ASSUNTOS RELACIONADOS

  • Não se aplica.





  • Sem rótulos