Boa tarde.
Não ficou muito claro para mim a tua dúvida, mas vou responder algumas coisas que talvez ajudem.
Resposta 1 : Cada rotina tem seus pontos entrada e alguns deles são utilizados para fazer a validação antes da gravação dos dados na tabela.
Resposta 2: Se quer fazer a validação sobre alguma opção selecionada na tela, deve utilizar as variáveis de memória.
Exemplo:
Cadastro de clientes
Inclusão ou Alteração
if(M->A1_LC>0) //M->Indica uma variável de memória, ou seja, o dado digitado pelo usuário (nem todos os campos apresentam essa variável)
.T.
Else
.F.
EndIf
Para identificar as variáveis de memória em uma tela de cadastro utilizo o zSearch desenvolvido pelo Terminal de Informação:
https://terminaldeinformacao.com/2024/05/25/definindo-um-atalho-do-teclado-com-a-setkey-maratona-advpl-e-tl-437/