Olá, tudo bem?
Existem algumas situações em que você não quer dar determinado acesso para vendedores externos da sua empresa. Por exemplo:
Vendedor A não pode visualizar interações do Vendedor B
Nem pedidos, muito menos clientes.
Para isso, cada módulo do sistema tem uma função que pode ser utilizada para criar uma variável que armazena o código do vendedor. Veja:
User Function SIGAFAT() Public cVendFAT := u_RetVend() Return
Você cria uma variável pública que guarda o código do vendedor, para ser utilizada em quaisquer pontos de entrada de filtros do Protheus. Então imagine que em determinado PE (Ponto de Entrada), você coloque:
...WHERE A1_VEND1 = '" + cVendFAT + "' ...
Um exemplo da função u_RetVen() pode ser:
User Function RetVend()
Local aArea := GetArea()
Local cVend := ""
dbSelectArea("SA3")
dbSetOrder(7)
If dbSeek(xFilial("SA3") + RetCodUsr())
cVend := SA3->A3_COD
Endif
dbSetOrder(1)
RestArea(aArea)
Return(cVend)
Crie um fonte com todos os módulos que queira fazer filtros globais. É possível fazer funções com SIGAFAT, SIGAOMS, SIGAFIN e por aí vai.
De acordo com sua necessidade, você vai criando as variáveis públicas.
Espero que seja útil a dica.
Abs.
