01. DADOS GERAIS

Produto:

Linha de Produto:

Segmento:

Módulo:

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:

Benefícios:

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


lRet := ExecBlock( "AF380VLIN", .F., .F.,{oGetD:aHeader,oGetD:aCols,nInc,nOpc,lEfetiva } )
#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)
  • 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