Estou construindo um filtro com o ponto de entrada MT110QRY, onde o objetivo é fazer com que os solicitantes vejam apenas as solicitações realizadas por eles. A lógica é ir na tabela SAI, verificar se o usuário logado está cadastrado como solicitante e, se positivo, filtrar. O cQuery está retornando " C1_FILIAL='02' AND C1_SOLICIT='willian.galvao' ". Eu já verifiquei que o dbseek está retornando .T. e que existe o registro 'willian.galvao' na SC1, como C1_SOLICIT. A filial correta também é a 02. Na prática, quando eu acesso a rotina, o filtro não está sendo aplicado. Alguma ideia sobre o motivo ou como corrigir?
User Function MT110QRY()
Local cQuery
Local cSolicit := UsrRetName(RetCodUsr())
DbSelectArea("SAI")
SAI->(DbSetOrder(2))
IF (Dbseek(xFilial("SAI")+RetCodUsr()))
cQuery := " C1_FILIAL='"+xFilial("SC1")+"' AND C1_SOLICIT='"+cSolicit+"' "
ENDIF
SAI->(dbCloseArea())
Return cQuery
William, você depurou o ponto de entrada e verificou se ele está sendo chamado corretamente? Você está trabalhando na rotina MATA110 certo?
— Daniel Mendes 17 de Aug de 2022Sim, Daniel. Eu depurei pelo VSCode e chamei o PE na rotina certa. Essa especificação foi alterada: antes eu fiz um fonte que verificava se o usuário era COMPRADOR e então não executava o filtro, para todos os outros usuário ele filtrava só as solicitações em que o usuário era solicitante. Esse primeiro fonte funcionou normalmente. Quando eu recebi a alteração na especificação e mudei a lógica, ele não executa o filtro.
— William Galvão 17 de Aug de 2022