Validar se campo existe com FieldPos | Ti Responde 008

No vídeo de hoje, iremos responder a dúvida em como validar se um campo existe via AdvPL usando a função FieldPos.

Hoje, a dúvida foi feita pelo grande Rodrigão, onde, ele tinha um campo que estava criado na base de testes, e ainda não estava em produção, então como ele precisava compilar o fonte, como fazer a validação se o campo existia para tratar esse cenário.

Com isso em mente, é necessário usar a classe FieldPos logo após dar um DbSelectArea na tabela, caso exista a informação, virá a posição do campo na estrutura.

E abaixo o código fonte desenvolvido para exemplificar:

//Bibliotecas
#Include 'Totvs.ch'
 
/*/{Protheus.doc} User Function zVid08
Função de exemplo demonstrando o uso da FieldPos
@author Atilio
@since 28/01/2022
@version 1.0
@type function
/*/
 
User Function zVid08()
    Local aArea := GetArea()
    
    DbSelectArea("SB1")

    //Verifica se o campo existe
    If FieldPos("B1_X_CAMPO") > 0
        /* Aqui da para fazer a customização caso o campo exista*/

    Else
        Help(, , 'Atenção - Dicionário', , 'O campo [B1_X_CAMPO] não foi encontrado!', 1, 0, , , , , , {'Contate o Administrador do Sistema'})
    EndIf

    RestArea(aArea)
Return

Bom pessoal, por hoje é só.

Abraços e até a próxima.

Dan Atilio (Daniel Atilio)
Especialista em Engenharia de Software pela FIB. Entusiasta de soluções Open Source. E blogueiro nas horas vagas.

Deixe uma resposta