GetArea()No recibe argumentos y retorna un array con Alias(), IndexOrd() y Recno().
Guía AdvPLaArea := GetArea() // ... procesamiento ... RestArea(aArea)Conserva alias, orden y registro antes de navegar por tablas y devuelve al llamador el mismo contexto de trabajo.
Una rutina AdvPL que selecciona alias, cambia órdenes o mueve registros puede alterar el entorno que el código llamador espera seguir utilizando. GetArea() captura el alias activo, el orden seleccionado y el registro actual; RestArea() restaura ese conjunto. Cuando se manipula un alias conocido, conserva tanto el área general como el área específica. Restaura primero el alias manipulado y al final el área general, pues la última área restaurada queda activa. Los ejemplos actuales también presentan FWGetArea() y FWRestArea() como alternativas del Framework; confirma su disponibilidad en la LIB y utiliza de forma consistente el par adoptado por el proyecto.
aArea := GetArea() // ... procesamiento ... RestArea(aArea)GetArea()No recibe argumentos y retorna un array con Alias(), IndexOrd() y Recno().
Alias->(GetArea())Captura un área específica sin convertirla definitivamente en el área activa de la rutina.
RestArea(aArea)Recibe el array de GetArea() y restaura alias, orden y registro. La última restauración determina el área activa.
GetArea() retorna un array con el alias, el orden y el número de registro actuales. RestArea() recompone el entorno guardado.
#Include "TOTVS.ch"
User Function ExConsultaCliente()
Local aAreaAnterior := GetArea()
Local cNombreCliente := ""
DbSelectArea("SA1")
SA1->(DbSetOrder(1))
If SA1->(DbSeek(xFilial("SA1") + "000001"))
cNombreCliente := SA1->A1_NOME
EndIf
RestArea(aAreaAnterior)
Return cNombreClienteLa consulta utiliza SA1 sin dejar su contexto activo para el llamador.
#Include "TOTVS.ch"
User Function ExValidaProducto()
Local aAreaAnterior := GetArea()
Local aAreaSB1 := SB1->(GetArea())
Local lEncontrado := .F.
DbSelectArea("SB1")
SB1->(DbSetOrder(1))
lEncontrado := SB1->(DbSeek(xFilial("SB1") + "000001"))
SB1->(RestArea(aAreaSB1))
RestArea(aAreaAnterior)
Return lEncontradoSe restauran SB1 y el entorno general del llamador.
#Include "TOTVS.ch"
User Function ExAreaFramework()
Local aAreaAnterior := FWGetArea()
Local aAreaSC5 := SC5->(FWGetArea())
DbSelectArea("SC5")
SC5->(DbSetOrder(1))
SC5->(DbGoTop())
FWRestArea(aAreaSC5)
FWRestArea(aAreaAnterior)
ReturnSe aplica el mismo patrón con las funciones del Framework disponibles en la LIB homologada.
© 2026 Usina.BR. Todos los derechos reservados. TOTVS, Protheus, Microsiga y sus respectivos logotipos son marcas de sus titulares. Guía AdvPL es independiente y utiliza citas limitadas, atribuidas y justificadas por fines educativos. Consulta los Términos de Uso. Términos de Uso