Como resolver os warnings do ModelDef e ViewDef

Hoje vou mostrar como resolver aqueles warnings de função nunca usada em fontes em MVC.

Se você desenvolve códigos MVC em AdvPL, já deve ter percebido que as funções estáticas ModelDef e ViewDef não são chamadas em nenhum lugar.

O motivo disso, é que nesse paradigma de programação, quem controla as chamadas é a uma camada mais abaixo, via StaticCall, por isso não precisamos nos preocupar em chamar as funções.

Porém em algumas versões do Protheus, ao compilar, no VSCode é exibido aquela mensagem de função nunca chamada (function never called).

Para resolvermos isso, é simples, a lógica seria mais ou menos assim:

  • Na sua User Function, crie uma variável numérica, com o conteúdo por exemplo, igual a 1
  • No fim dela, antes do Return, adicione um “dumb test”, testando se essa variável é igual a 0
  • Dentro desse dumb, adicione as chamadas da ViewDef e da ModelDef

Então basicamente, o que fizemos foi criar uma variável com um conteúdo específico, e adicionar um if que nunca terá a condição como verdadeira, então nunca entrará dentro do conteúdo.

Abaixo um exemplo (note a variável nIgnore):

User Function zTSTA04()
	Local aArea   := GetArea()
	Local oBrowse
	Local nIgnore := 1
	Private aRotina := {}

	//Definicao do menu
	aRotina := MenuDef()

	//Instanciando o browse
	oBrowse := FWMBrowse():New()
	oBrowse:SetAlias(cTabPai)
	oBrowse:SetDescription(cTitulo)
	oBrowse:DisableDetails()
	oBrowse:DisableReport()

	//Ativa a Browse
	oBrowse:Activate()

	//Tratativa para ignorar warnings de ViewDef e ModelDef nunca chamados
	If nIgnore == 0
		ModelDef()
		ViewDef()
	EndIf

	RestArea(aArea)
Return Nil

Bom pessoal, por hoje é só.

Abraços e até a próxima.

Dan (Daniel Atilio)
Cristão de ramificação protestante. Especialista em Engenharia de Software pela FIB, graduado em Banco de Dados pela FATEC Bauru e técnico em informática pelo CTI da Unesp. Entusiasta de soluções Open Source e blogueiro nas horas vagas. Autor e mantenedor do portal Terminal de Informação.

2 Responses

  1. Marco Nagoa - Conectar disse:

    Pois é rapaz, boa idéia, grato!

Deixe uma resposta

Terminal de Informação