A importância do GetArea e RestArea

Hoje vou falar sobre a importância de se usar GetArea e RestArea em suas customizações.

O recurso FWGetArea serve para fazer um backup do que está vindo do Protheus, e o FWRestArea serve para restaurar esse backup.

Imagine o seguinte contexto, você é um pizzaiolo, e está preparando uma pizza, de repente do nada entra um garçom correndo e te pergunta “Chef, tem catupiry ainda?”, ai você para o que está fazendo, vai verificar, volta e fala, ó tem sim, ai quando você vai continuar sua pizza, ela era de qual sabor? Tinha borda recheada? Tinha alguma observação (como retirar cebolas)?

Basicamente é isso que acontece com o Protheus, imagine que você está cadastrando um produto, ai ele passa por um ponto de entrada (garçom vindo correndo), ai nesse ponto de entrada você faz várias validações (procurar catupiry), quando você acaba, o Protheus espera que você continue o que estava fazendo no mesmo ponto em que parou (continuar a pizza).

Por isso, quando criamos a função, precisamos falar, ó Protheus estamos pegando o sistema assim (preparando uma pizza de calabresa), ai você faz suas tratativas, e depois fala, ó Protheus pode continuar onde você estava (acabando de preparar a pizza de calabresa).

Do contrário, pode acontecer bugs e coisas, do tipo, Protheus, ó estamos pegando o sistema assim (preparando a pizza de calabresa), ó Protheus acabamos, pode continuar seu strogonoff de frango.

Por isso jovens, o indicado é sempre usarmos FWGetArea e FWRestArea em nossas customizações, e se soubermos o alias que iremos manipular, usar apontando para ele também, por exemplo, abaixo um ponto de entrada no cadastro de produtos. Notem que é criado dois FWGetArea, um geral e um específico da SB1, e depois é voltado o backup deles com FWRestArea.

User Function A010TOK()
	Local aArea    := FWGetArea()
	Local aAreaSB1 := SB1->(FWGetArea())
	Local lRet     := .T.
	
	//Aqui suas customizações
	
	FWRestArea(aAreaSB1)
	FWRestArea(aArea)
Return lRet

Uma observação importante pessoal, é que as funções GetArea e RestArea ganharam uma revisão e se tornaram as funções FWGetArea e FWRestArea. Então tentem sempre utilizar a versão mais atual das funções, que nesse caso é a FWGetArea e FWRestArea pois elas podem receber melhorias de performance, correções, entre outras coisas.

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. Wanderson Fernandes de Souza disse:

    Boa Dica Daniel,

    Abraço…

Deixe uma resposta