Árvore de páginas

Carregando...

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:ATFA380
País:Brasil
Ticket:Interno
Requisito/Story/IssueDSERCTR1-46748

02. DESCRIÇÃO

O ponto de entrada AF380VLIN é utilizado para realizar a validação de cada linha da grade na rotina de Acerto do Valor Recuperável. Ele permite que sejam aplicadas regras de negócio específicas para verificar e controlar os dados inseridos ou ajustados na grade.

Funcionamento:

  • Executado durante a interação com a grade, avaliando cada linha antes de prosseguir.
  • Permite que o desenvolvedor implemente validações personalizadas, garantindo que os valores e informações preenchidos atendam aos critérios esperados.

Benefícios:

  • Validação Dinâmica: Assegura a consistência e a integridade dos dados inseridos na grade.
  • Customização: Flexibilidade para adaptar o comportamento do sistema às necessidades específicas de cada cliente ou processo.

Este ponto de entrada é essencial para cenários onde os dados ajustados na rotina de Acerto do Valor Recuperável demandam validações rigorosas ou customizadas antes da confirmação.

03. DEMAIS INFORMAÇÕES


Manipulação de PE no sistema
lRet := ExecBlock( "AF380VLIN", .F., .F.,{oGetD:aHeader,oGetD:aCols,nInc,nOpc,lEfetiva } )
Exemplo de PE
#Include 'Protheus.ch'

//Exemplo de ponto de entrada para validar linha na exportacao ou importacao

User Function AF380VLIN()

	Local aHeaVLin := ParamIXB[1]
	Local aColsVLin := ParamIXB[2]
	Local nLinAt := ParamIXB[3]
	Local nOpc := ParamIXB[4]
	Local lEfetiva_ := ParamIXB[5]
	Local lRet := .T.
	Local cQuery := ""
	Local aArea := GetArea() 
	Local cAliasQry := CriaTrab(,.F.)
	Local nPosBem := aScan( aHeaVLin, {|x| Upper( AllTrim( x[2] ) ) == "NJ_BEM" } )

	Local nPosItBem := aScan( aHeaVLin, {|x| Upper( AllTrim( x[2] ) ) == "NJ_ITBEM" } )

	If nOpc == 7 .And. lEfetiva_ .And. nPosBem > 0 .And. nPosItBem > 0

		//importacao com efetivacao tem que validar se bem ja nao esta em outra simulacao

	  	cQuery := " SELECT NI_STATUS FROM "
		cQuery += " SNI000 SNI, SNJ000 SNJ "
		cQuery += " WHERE " 		
		cQuery += "  NI_STATUS = '1' "
		cQuery += " AND SNI.D_E_L_E_T_ = ' ' "
		cQuery += " AND NI_FILIAL = NJ_FILIAL "
		cQuery += " AND NI_PROC = NJ_PROC "   
		cQuery += " AND SNJ.D_E_L_E_T_ = ' ' "

		dbUseArea(.T., "TOPCONN", TcGenQry(,, cQuery ), cAliasQry, .T.,.F. )

		If (cAliasQry)->( !Eof() ) //se encontrado retorna .F. para chamador 
		   (cAliasQry)->( DbCloseArea() )
		   //MsgInfo("Bem : "+aColsVLin[nLinAt, nPosBem]+"/"+aColsVLin[nLinAt, nPosItBem]+" - encontrado em outra simulacao, Arquivo nao pode ser importado.")
		   lRet := .F.
		EndIf

	EndIf

	RestArea(aArea)

Return(lRet)

Importante !!

  • Observa-se que a utilização do PE e os impactos dele no sistema são de responsabilidade do cliente.
  • Os exemplos utilizados nessa documentação são apenas para fins de demonstração, cada cliente deve verificar qual comportamento deseja realizar de acordo com o escopo do ponto de entrada.

04. ASSUNTOS RELACIONADOS

  • Não se aplica.