Nesse documento vamos explicar como criar filtros para o Banco de Conhecimento. No exemplo a seguir vamos filtrar para que o usuário tenha acesso apenas aos conhecimentos adicionados por ele. Para esse exemplo criamos o campo ACB_CODUSR com a propriedade de VISUALIZAR e no inicializador padrão, usamos a função PSWID() para gravar o código do usuário que efetuou a inclusão do conhecimento.
Para filtrar o browse da rotina de banco de conhecimento (FATA340/MPDOCTAB) utilizamos o ponto de entrada MPFILBRW conforme exemplo abaixo.
#INCLUDE "PROTHEUS.CH" User Function MPFILBRW() Local cFilter as CHARACTER cFilter:= 'ACB_CODUSR = __cUserId' return cFilter
- Ponto de entrada disponível a partir da LIB 20260117.
Para filtrar o GRID da opção de vinculo do banco de conhecimento existente nas "Outras Ações" das rotinas utilizamos o ponto de entrada MSDOCFIL, conforme exemplo abaixo.
User Function MSDOCFIL()
Local aArea := GetArea()
Local lRet := .F.
Local nRecno := PARAMIXB[1]
AC9->(dbGoTo(nRecno))
DbSelectArea("ACB")
dbSetOrder(1)
DBSEEK(xFilial("ACB") + AC9->AC9_CODOBJ)
If ACB_CODUSR = __cUserId
lRet := .T.
Endif
RestArea(aArea)
Return(lRet)
Para filtrar a consulta padrão chamada no GRID da opção de vinculo do banco de conhecimento existente nas "Outras Ações" das rotinas, deve-se efetuar os passos abaixo:
- Criar uma nova consulta padrão com as mesmas características da consulta ACBOBJ;
- Adicionar o filtro abaixo na consulta padrão:
ACB_CODUSR = __cUserId - Associar a nova consulta ao campo AC9_CODOBJ.
- Não recomendamos a adição do filtro diretamente na consulta ACBOBJ pois o mesmo será excluído no processo de migração de release.