Ponto de entada TKFILCONT

Pessoal o TDN e muito confuso sobre este ponto de entrada. Começa com uma variável com valor lógico e depois atribui uma expressão e retorna esta expressão. Podem me ajudar ? Preciso apenas filtrar os contatos, trazer apenas os ativos na tela do call center em tele vendas.

Fonte é bem simples, deveria ser simples. URL do TDN: https://tdn.totvs.com/display/public/PROT/TKFILCONT+-+Filtrar+os+Contatos

User Function TKFILCONT() Local _lRet := .T.

_lRet := U5_ATIVO = '1'

Alert("Passou pelo PE: TKFILCONT")

Return _lRet

Olá,

O ponto de entrada retorna um booleano.

O exemplo do TDN atribui uma expressão ADVPL que tem como retorno um valor booleano, a ideia é exemplificar que você pode retornar esse valor como .T. ou como .F. conforme certas condições:


User Function TKFILCONT()
Local _lRet := .F.
Alert("Passou pelo PE: TKFILCONT")// Irá filtrar somente os contatos da cidade do Rio de Janeiro e do Sexo feminino.
_lRet := U5_EST = 'RJ' .AND. U5_SEXO = '2'
Return _lRet

Ou seja, no exemplo do TDN, o ponto de entrada retornará verdadeiro somente caso o estado seja RJ e o sexo 2.

Seu exemplo também está correto:


User Function TKFILCONT()
Local _lRet := .T.

_lRet := U5_ATIVO = '1'

Alert("Passou pelo PE: TKFILCONT")

Return _lRet

A diferença que você vai retornar verdadeiro somente conforme o registro estar ativo. Dê preferência a comparar strings usando dois sinais de igualdade:


_lRet := U5_ATIVO == '1'

Dessa forma a comparação é feita "por completo" e não existem a possibilidade de retornar verdadeiro conforme uma string estar contida em outra.

Caso o ponto de entrada não for chamado, significa que o trecho que você deseja efetuar esse filtro, não chama esse ponto de entrada, aí você poderia verificar a utilização de outro ponto de entrada ou solicitar uma melhoria para que esse PE seja chamado nesse novo trecho.