ADVPL - Ponto de entrada em MVC

ADVPL - Ponto de entrada em MVC
Author: Eurai
Inclusão: 28/08/2021
Alteração: 04/09/2021

 

Segue abaixo a um exemplo de PE em MVC para o cadastro de produto, me pediram esse exemplo a um tempo atrás.

No PE MVC, é recebido no parãmetro um array com os objetos e valores da classe. Com esses valores é possível recuperar o model (modelo) e o ponto a ser executado.

Existem diversos pontos para realizar a customização, Antes da confirmação do modelo, pós confirmação do modelo, dentro da transação (TTS), fora da transação (TTS), etc. 

Neste exemplo, trago 3 pontos como exemplos.

 

#INCLUDE "TOTVS.CH"
#INCLUDE 'FWMVCDEF.CH'

/*/{Protheus.doc} MATA010
Ponto de Entrada do Cadastro de Produto.

@type		function
@author		Eurai Rapelli
@since 		2021.08.28

@obs		http://tdn.totvs.com/display/public/PROT/ADV0041_PE_MVC_MATA010_P12
/*/
User Function ITEM()
Local aParam		:= PARAMIXB
Local xRet			:= .T.

Private oUAObj     	:= Nil
Private cIdPonto   	:= ''
Private cIdModel   	:= ''
Private cClasse    	:= ''
Private cCRLF 		:= CRLF


Begin Sequence



If aParam <> NIL

	oUAObj      := aParam[1]
	cIdPonto   	:= aParam[2]
	cIdModel   	:= IIf( oUAObj <> NIL, oUAObj:GetId(), aParam[3] )
	cClasse    	:= IIf( oUAObj <> NIL, oUAObj:ClassName(), '' )

	
	
	If cIdPonto == 'MODELVLDACTIVE'


	ElseIf cIdPonto == 'MODELPOS'

		If !(xRet := fModelPos())
			Break
		Endif

	
	ElseIf cIdPonto == 'MODELCOMMITTTS'

		
	Endif




Endif



End Sequence


Return( xRet )


/*/{Protheus.doc} fModelPos
Validacao do Modelo

@type		function
@author		Eurai Rapelli
@since 		2021.08.28

@obs		http://tdn.totvs.com/display/public/PROT/ADV0041_PE_MVC_MATA010_P12
/*/
Static Function fModelPos()
Local lRet 		:= .T.



Begin Sequence



If oUAObj:GetOperation() == MODEL_OPERATION_INSERT .OR. oUAObj:GetOperation() == MODEL_OPERATION_UPDATE
	//Inserçao ou alteração

Endif


End Sequence



Return( lRet )






 

 

 

 

 

Gostou? Compartilhe com seus amigos e deixe um comentário! 😎

Um abraço, e até a próxima  

 

 

 

 

 

Esse conteúdo te ajudou? Ajude o canal com doação
Compartilhar
Comentários